# # 3.bc -- compute values of trigonometric functions to an arbitrary # number of digits for all multiples of 1 degree using only # basic arithmetic operations and square roots # # (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule # scale=67 s00=0 c00=1 s45=sqrt(2)/2 c45=s45 s30=0.5 c30=sqrt(3)/2 s15=sqrt(0.5-0.5*c30) c15=sqrt(0.5+0.5*c30) s36=sqrt((5-sqrt(5))/8) c36=sqrt((3+sqrt(5))/8) s72=2*s36*c36 c72=c36^2-s36^2 s18=sqrt(0.5-0.5*c36) c18=sqrt(0.5+0.5*c36) s09=sqrt(0.5-0.5*c18) c09=sqrt(0.5+0.5*c18) s03=s18*c15-c18*s15 c03=c18*c15+s18*s15 s06=s15*c09-c15*s09 c06=c15*c09+s15*s09 s12=s30*c18-c30*s18 c12=c30*c18+s30*s18 s21=s30*c09-c30*s09 c21=c30*c09+s30*s09 s24=s15*c09+c15*s09 c24=c15*c09-s15*s09 s27=s45*c18-c45*s18 c27=c45*c18+s45*s18 s33=s45*c12-c45*s12 c33=c45*c12+s45*s12 s39=s30*c09+c30*s09 c39=c30*c09-s30*s09 s42=s30*c12+c30*s12 c42=c30*c12-s30*s12 s=3.1415926535/180 c=sqrt(1-s*s) s=s-(4*s*s*s-3*s+s03)/(12*s*s-3) s=s-(4*s*s*s-3*s+s03)/(12*s*s-3) s=s-(4*s*s*s-3*s+s03)/(12*s*s-3) s=s-(4*s*s*s-3*s+s03)/(12*s*s-3) s=s-(4*s*s*s-3*s+s03)/(12*s*s-3) s=s-(4*s*s*s-3*s+s03)/(12*s*s-3) s01=s c=c-(4*c*c*c-3*c-c03)/(12*c*c-3) c=c-(4*c*c*c-3*c-c03)/(12*c*c-3) c=c-(4*c*c*c-3*c-c03)/(12*c*c-3) c=c-(4*c*c*c-3*c-c03)/(12*c*c-3) c=c-(4*c*c*c-3*c-c03)/(12*c*c-3) c=c-(4*c*c*c-3*c-c03)/(12*c*c-3) c01=c s02=s03*c01-c03*s01 c02=c03*c01+s03*s01 s04=s03*c01+c03*s01 c04=c03*c01-s03*s01 s05=s06*c01-c06*s01 c05=c06*c01+s06*s01 s07=s06*c01+c06*s01 c07=c06*c01-s06*s01 s08=s09*c01-c09*s01 c08=c09*c01+s09*s01 s10=s09*c01+c09*s01 c10=c09*c01-s09*s01 s11=s12*c01-c12*s01 c11=c12*c01+s12*s01 s13=s12*c01+c12*s01 c13=c12*c01-s12*s01 s14=s15*c01-c15*s01 c14=c15*c01+s15*s01 s16=s15*c01+c15*s01 c16=c15*c01-s15*s01 s17=s18*c01-c18*s01 c17=c18*c01+s18*s01 s19=s18*c01+c18*s01 c19=c18*c01-s18*s01 s20=s21*c01-c21*s01 c20=c21*c01+s21*s01 s22=s21*c01+c21*s01 c22=c21*c01-s21*s01 s23=s24*c01-c24*s01 c23=c24*c01+s24*s01 s25=s24*c01+c24*s01 c25=c24*c01-s24*s01 s26=s27*c01-c27*s01 c26=c27*c01+s27*s01 s28=s27*c01+c27*s01 c28=c27*c01-s27*s01 s29=s30*c01-c30*s01 c29=c30*c01+s30*s01 s31=s30*c01+c30*s01 c31=c30*c01-s30*s01 s32=s33*c01-c33*s01 c32=c33*c01+s33*s01 s34=s33*c01+c33*s01 c34=c33*c01-s33*s01 s35=s36*c01-c36*s01 c35=c36*c01+s36*s01 s37=s36*c01+c36*s01 c37=c36*c01-s36*s01 s38=s39*c01-c39*s01 c38=c39*c01+s39*s01 s40=s39*c01+c39*s01 c40=c39*c01-s39*s01 s41=s42*c01-c42*s01 c41=c42*c01+s42*s01 s43=s42*c01+c42*s01 c43=c42*c01-s42*s01 s44=s45*c01-c45*s01 c44=c45*c01+s45*s01 s00 s01 s02 s03 s04 s05 s06 s07 s08 s09 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 s32 s33 s34 s35 s36 s37 s38 s39 s40 s41 s42 s43 s44 s45 c00 c01 c02 c03 c04 c05 c06 c07 c08 c09 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32 c33 c34 c35 c36 c37 c38 c39 c40 c41 c42 c43 c44 c45 s005=sqrt(0.5-0.5*c01) c005=sqrt(0.5+0.5*c01) s=s005/5 c=sqrt(1-s*s) s=s-(((16*s*s-20)*s*s+5)*s-s005)/(((80*s*s-60)*s*s)+5) s=s-(((16*s*s-20)*s*s+5)*s-s005)/(((80*s*s-60)*s*s)+5) s=s-(((16*s*s-20)*s*s+5)*s-s005)/(((80*s*s-60)*s*s)+5) s=s-(((16*s*s-20)*s*s+5)*s-s005)/(((80*s*s-60)*s*s)+5) s=s-(((16*s*s-20)*s*s+5)*s-s005)/(((80*s*s-60)*s*s)+5) s=s-(((16*s*s-20)*s*s+5)*s-s005)/(((80*s*s-60)*s*s)+5) s001=s c=c-((((16*c*c-20)*c*c)+5)*c-c005)/(((80*c*c-60)*c*c)+5) c=c-((((16*c*c-20)*c*c)+5)*c-c005)/(((80*c*c-60)*c*c)+5) c=c-((((16*c*c-20)*c*c)+5)*c-c005)/(((80*c*c-60)*c*c)+5) c=c-((((16*c*c-20)*c*c)+5)*c-c005)/(((80*c*c-60)*c*c)+5) c=c-((((16*c*c-20)*c*c)+5)*c-c005)/(((80*c*c-60)*c*c)+5) c=c-((((16*c*c-20)*c*c)+5)*c-c005)/(((80*c*c-60)*c*c)+5) c001=c