33 "((1 /1)*sin( 2*pi*f*t)+(1 /3)*sin( 6*pi*f*t)+" 34 " (1 /5)*sin(10*pi*f*t)+(1 /7)*sin(14*pi*f*t)+" 35 " (1 /9)*sin(18*pi*f*t)+(1/11)*sin(22*pi*f*t)+" 36 " (1/13)*sin(26*pi*f*t)+(1/15)*sin(30*pi*f*t)+" 37 " (1/17)*sin(34*pi*f*t)+(1/19)*sin(38*pi*f*t)+" 38 " (1/21)*sin(42*pi*f*t)+(1/23)*sin(46*pi*f*t)+" 39 " (1/25)*sin(50*pi*f*t)+(1/27)*sin(54*pi*f*t))";
41 static const T
pi = T(3.141592653589793238462643383279502);
43 const T
f =
pi / T(10);
49 symbol_table.add_constant(
"f",
f);
50 symbol_table.add_constant(
"a",a);
51 symbol_table.add_constants();
57 parser.compile(expr_string,expression);
59 const T delta = (T(4) *
pi) / T(1000);
61 for (
t = (T(-2) *
pi);
t <= (T(+2) *
pi);
t += delta)
63 T result = expression.value();
64 printf(
"%19.15f\t%19.15f\n",
t,result);
70 square_wave<double>();