%lsfit.jam (getbezierpoints) ((Touch four Bezier control points).print .touch dot 2 .copy .setcp .touch 2 .copy .drawto .touch 2 .copy .drawto .touch 2 .copy .drawto).cvx .def (cub) (.lsamples .lunit .lcubicbasis .lsolve .lresults).cvx .def (cubpiece) (.lsamples .lunit .lcubicpiecebasis .lsolve .lresults).cvx .def (par) (.lsamples .lunit .lparabolabasis .lsolve .lresults).cvx .def (cir) (.lsamples .langle .lcirclebasis .lsolve .lresults).cvx .def (ell) (.lsamples .langle .lellipsebasis .lsolve .lresults).cvx .def (smc) (.lsamples .larclen .lsmoothbasis .lsolve .lresults).cvx .def (bsc) (.lsamples .larclen .lbsplinebasis .lsolve .lresults).cvx .def (pointslopecurve) (.lsamples .larclen .lpointslope 2 .lfree 4 .lfree .lsolve .lresults).cvx .def (psc) (getbezierpoints pointslopecurve).cvx .def (ic) ((improvecurve).cvx .rept).cvx .def (icf) ((improvecurvefast).cvx .rept).cvx .def (improvecurve) (.ladjust (Max t change = ).print cvtempstring .print ( ).print .lsolve .lresults).cvx .def (improvecurvefast) (.laccel (r = ).print cvtempstring .print ( Max t change = ).print cvtempstring .print ( ).print .lsolve .lresults).cvx .def (cirsamples) (makes samples along a circle. => .) (.exch (nc) .exch .store 0 2 .copy .startsa (mult) [ 0 3.1415926 2 .mul nc .div Complex.Exp ] .store nc 1 .sub (mult ().cvx .arrayforall Complex.Mul 2 .copy .addsa).cvx .rept)/xdef (epc) ((n) .countsamples .store .lsamples .larclen 1 .getz n .getz 1 .getz n .getz .lpointslope 2 .lfree 4 .lfree 3 .lfree 5 .lfree .lsolve 3 (.ladjust .lsolve).cvx .rept 5 (.laccel .lsolve).cvx .rept .lresults).cvx .def #J JJ ^