N := 7; # n := 1; # set n := 1 for first set of solutions n := 2; # set n := 2 for second set of solutions fn := `gb.lp.`.n; fn2 := `c`.n.`.m`; lprint(fn); lprint(fn2); a(6) := A; b(6) := B; c(4) := C; read(fn); eqs := "; vars := { a(0), a(1), a(2), a(3), a(4), a(5), b(0), b(1), b(2), b(3), b(4), b(5), c(0), c(1), c(2), c(3), c(5), c(6) }; ss := solve({eqs[2..7],eqs[9..16],eqs[18..21]},vars); sA := solve(eqs[1],A); sB := solve(eqs[8],B); sC := solve(eqs[17],C); interface(screenwidth=600); writeto(fn2); # lprint(`function T = c`.n); lprint(`function T = c`.n.`(k)`); lprint(`if k(1) == 0`); lprint(` A = `,sA[1],`;`); lprint(`elseif k(1) == 1`); lprint(` A = `,sA[2],`;`); lprint(`end`); lprint(`if k(2) == 0`); lprint(` B = `,sB[1],`;`); lprint(`elseif k(2) == 1`); lprint(` B = `,sB[2],`;`); lprint(`elseif k(2) == 2`); lprint(` B = `,sB[3],`;`); lprint(`elseif k(2) == 3`); lprint(` B = `,sB[4],`;`); lprint(`end`); lprint(`if k(3) == 0`); lprint(` C = `,sC[1],`;`); lprint(`elseif k(3) == 1`); lprint(` C = `,sC[2],`;`); lprint(`end`); lprint(`a = [`); k := 'k': for k from 0 to N-1 do lprint(subs(ss,a(k))); od; lprint(`]';`); lprint(`b = [`); k := 'k': for k from 0 to N-1 do lprint(subs(ss,b(k))); od; lprint(`]';`); lprint(`c = [`); k := 'k': for k from 0 to N-1 do lprint(subs(ss,c(k))); od; lprint(`]';`); lprint(`T = [a;b;c]/sqrt(2);`); writeto(`terminal`); interface(screenwidth=80);