def step(context): from dcprogs.likelihood import inv, svd from numpy import abs, all, dot, identity for matrix, idealg in zip(context.qmatrices, context.idealgs): occupancies = idealg.final_occupancies kernel = dot( dot(inv(matrix.ff), matrix.fa), dot(inv(matrix.aa), matrix.af) ) kernel = identity(kernel.shape[0]) - kernel U, singvals, V = svd(kernel) try: assert sum(abs(singvals) < context.tolerance) == 1 assert all(dot(occupancies, kernel) < context.tolerance) except: print(matrix) print("Equilibrium: {0}".format(occupancies)) print("Kernel Application: {0}".format(dot(occupancies, kernel))) raise
def step(context): from dcprogs.likelihood import inv, svd from numpy import abs, all, dot, identity for matrix, idealg in zip(context.qmatrices, context.idealgs): occupancies = idealg.final_occupancies kernel = dot(dot(inv(matrix.ff), matrix.fa), dot(inv(matrix.aa), matrix.af)) kernel = identity(kernel.shape[0]) - kernel U, singvals, V = svd(kernel) try: assert sum(abs(singvals) < context.tolerance) == 1 assert all(dot(occupancies, kernel) < context.tolerance) except: print(matrix) print("Equilibrium: {0}".format(occupancies)) print("Kernel Application: {0}".format(dot(occupancies, kernel))) raise
def step(context): from numpy import abs, all, dot, identity from dcprogs.likelihood import inv for idealg, matrix in zip(context.idealgs, context.qmatrices): for scale in context.scales: value = dot(inv(scale * identity(matrix.ff.shape[0]) - matrix.ff), matrix.fa) try: assert all(abs(idealg.laplace_fa(scale) - value) < context.tolerance) except: print(matrix) raise
def step(context): from numpy import abs, all, dot, identity from dcprogs.likelihood import inv for idealg, matrix in zip(context.idealgs, context.qmatrices): for scale in context.scales: value = dot(inv(scale * identity(matrix.ff.shape[0]) - matrix.ff), matrix.fa) try: assert all( abs(idealg.laplace_fa(scale) - value) < context.tolerance) except: print(matrix) raise