def make_q(new_quest): """ need a new question, make one """ if new_quest: x_alg = Algebra() x_alg.make_question() session['_alg_obj']=pickle.dumps(x_alg,-1) else: x_alg = pickle.loads(session['_alg_obj']) if x_alg.variable['q_type'] == 1: syslog.syslog( "Algebra: New simultaneous equations { Q1: %s, Q2: %s, X = %s, Y = %s } from %s" % ( x_alg.variable['disp1'], x_alg.variable['disp2'], x_alg.variable['x'], x_alg.variable['y'], request.environ['REMOTE_ADDR'] ) ) syslog.syslog("Q1: %s" % (x_alg.variable['disp1'])) syslog.syslog("Q2: %s" % (x_alg.variable['disp2'])) syslog.syslog("X: %s" % (x_alg.variable['x'])) syslog.syslog("Y: %s" % (x_alg.variable['y'])) elif x_alg.variable['q_type'] == 2: syslog.syslog( "Algebra: New expand / simplify { Q: %s, X^2 = %s, XY = %s, Y^2 = %s } from %s" % ( x_alg.variable['exp_question'], x_alg.variable['x_squared'], x_alg.variable['x_y'], x_alg.variable['y_squared'], request.environ['REMOTE_ADDR'] ) ) syslog.syslog("Q: %s" % (x_alg.variable['exp_question'])) syslog.syslog("X^2: %s" % (x_alg.variable['x_squared'])) syslog.syslog("XY: %s" % (x_alg.variable['x_y'])) syslog.syslog("Y^2: %s" % (x_alg.variable['y_squared'])) elif x_alg.variable['q_type'] == 3: syslog.syslog( "Algebra: New heron { (%d,%d,%d), p = %f, A = %s } from %s" % ( x_alg.variable['side'][0], x_alg.variable['side'][1], x_alg.variable['side'][2], x_alg.variable['perm'], x_alg.variable['heron'], request.environ['REMOTE_ADDR'] ) ) return x_alg
from algebra import Algebra from node import Kind def isConnected(const, term): for i in range(len(term.data)): if term.data[i] == const.data[i]: return True return False pos_data = ["1100", "0011"] neg_data = ["1010", "1000", "0010", "0101"] constants = ["0---", "-0--", "--0-", "---0", "1---", "-1--", "--1-", "---1"] algebra = Algebra() algebra.insert_data(pos_data, neg_data, constants, isConnected) algebra.mini_preprocessing_step() algebra.enforce_negative_trace_constraints() algebra.enforce_positive_trace_constraints() print("all done")