def testwithdata(self, dispvars=False): p = self.p d = {} d['header'] = header() d['dims'] = joinlist(bylowerstr(getdims(p)), True) d['params'] = joinlist(bylowerstr(getparams(p)), True) d['optvars'] = joinlist(bylowerstr(getoptvars(p)), True) d['numvars'] = str(len(getoptvars(p))) # jem: making the assumption that optvars order will be sorted like # this. s = '' i = 0 for x in bylowerstr(getoptvars(p)): s += 'outvar %s;\n%s = vars[%d];\n' % (str(x), str(x), i) i += 1 d['namevars'] = s s = joinlist(bylowerstr(getdims(p)) + bylowerstr(getparams(p)), True) d['tsf_args'] = s # jemjemjem. #if dispvars: # d['tsf_args'] = s #// Display the variables. #pm(x->val, x->m, x->n); #pm(y->val, y->m, y->n); writecode(self.outdir, self.skel, 'testwithdata.c', d)
def testfa(self, n): p = self.p d = {} d['header'] = header() d['n'] = n d['params'] = joinlist(bylowerstr(getparams(p)), True) d['optvars'] = joinlist(bylowerstr(getoptvars(p)), True) s = joinlist(bylowerstr(getparams(p)), True) d['fa_args'] = s writecode(self.outdir, self.skel, 'testfa.c', d)
def testba(self, n): p = self.p dt = {} dt['header'] = header() dt['n'] = n dt['params'] = joinlist(bylowerstr(getparams(p)), True) dt['optvars'] = joinlist(bylowerstr(getoptvars(p)), True) print 'Creating method signature.' if getparams(self.p): dt['fb_sig_params'] = ', '.join(['double *%s' % x for x in \ bylowerstr(getparams(self.p))]) dt['fb_sig_params'] += ',' else: dt['fb_sig_params'] = '' dt['fb_args'] = joinlist(bylowerstr(getparams(p)), True) writecode(self.outdir, self.skel, 'testba.c', dt)
def test2p(self, As, bs, cs, m, n, p): dt = {} dt['header'] = header() dt['m'] = value(m) dt['n'] = value(n) dt['p'] = value(p) dt['params'] = joinlist(bylowerstr(getparams(self.p)), True) dt['optvars'] = joinlist(bylowerstr(getoptvars(self.p)), True) print 'Generating code for two phase fast barrier method:' print 'Creating method signature.' if getparams(self.p): dt['fb_sig_params'] = ', '.join(['double *%s' % x for x in \ bylowerstr(getparams(self.p))]) dt['fb_sig_params'] += ',' else: dt['fb_sig_params'] = '' A = nzentries(As) b = nzentries(bs) print 'Generating code for initial feasible point.' s = '' # CVXMOD_WL_t1. t1 = optvar('CM_t1', m, 1) for i in range(m): t = -b[i] for j in range(n): if (i, j) in A: t = t + A[i, j] s += 'CM_t1[%d] = %s;\n' % (i, exprtoC(t)) dt['CM_t1'] = s dt['fb_args'] = joinlist(bylowerstr(getparams(self.p)), True) writecode(self.outdir, self.skel, 'test2p.c', dt)
def test2p(self, As, bs, cs, m, n, p): dt = {} dt['header'] = header() dt['m'] = value(m) dt['n'] = value(n) dt['p'] = value(p) dt['params'] = joinlist(bylowerstr(getparams(self.p)), True) dt['optvars'] = joinlist(bylowerstr(getoptvars(self.p)), True) print 'Generating code for two phase fast barrier method:' print 'Creating method signature.' if getparams(self.p): dt['fb_sig_params'] = ', '.join(['double *%s' % x for x in \ bylowerstr(getparams(self.p))]) dt['fb_sig_params'] += ',' else: dt['fb_sig_params'] = '' A = nzentries(As) b = nzentries(bs) print 'Generating code for initial feasible point.' s = '' # CVXMOD_WL_t1. t1 = optvar('CM_t1', m, 1) for i in range(m): t = -b[i] for j in range(n): if (i,j) in A: t = t + A[i,j] s += 'CM_t1[%d] = %s;\n' % (i, exprtoC(t)) dt['CM_t1'] = s dt['fb_args'] = joinlist(bylowerstr(getparams(self.p)), True) writecode(self.outdir, self.skel, 'test2p.c', dt)