sin 0-45 degrees, inc 1 min, step polynomial 6 degrees
calling GAUSEL.BAS
return from GAUSEL.BAS
ierr =  0.000000000000001 
b array
x^0 -0.00000 00001 51884 02878 03939 58626 
x^1 +0.01745 32927 30975 43916 89149 75959 
x^2 -0.00000 00000 68155 74401 49055 42064 
x^3 -0.00000 08860 86445 68105 91771 59926 
x^4 -0.00000 00000 00732 67338 54120 25908 
x^5 +0.00000 00000 13527 00557 81828 13242 
x^6 -0.00000 00000 00000 71422 13113 25742 
x^7 -0.00000 00000 00000 09046 64787 98417 
input values
 minutes   sin value
 0 	-0.00000 00001 51884 02878 03939 58626 
 1 	+0.00029 08880 56177 71095 21635 20768 
 2 	+0.00058 17762 39588 07373 28671 74269 
 3 	+0.00087 26643 73733 54775 58514 83142 
 4 	+0.00116 35524 34000 62403 34259 32424 
 5 	+0.00145 44403 95775 79848 35477 73988 
 6 	+0.00174 53282 34445 57401 72832 79054 
 7 	+0.00203 62159 25396 46262 62573 17258 
 differences
 0  -0.00000 00001 51884 02878 03939 58626 
 1  +0.00029 08882 08061 73973 25574 79395 
 2  -0.00000 00000 24651 37695 18538 25894 
 3  -0.00000 00000 24613 51180 58655 18733 
 4  +0.00000 00000 00000 00281 81750 03770 
 5  +0.00000 00000 00000 00208 74727 63065 
 6  -0.00000 00000 00000 00000 00115 10554 
 7  -0.00000 00000 00000 00000 00001 62887 
output
degrees  sin of degree                                error
 0  0 	-0.00000 00001 51884 02878 03939 58626 	-0.00000 00001 51884 02878 03939 58626 
 0  1 	+0.00029 08880 56177 71095 21635 20768 	-0.00000 00001 48385 71364 42107 76646 
 0  2 	+0.00058 17762 39588 07373 28671 74269 	-0.00000 00001 44924 99387 77472 20944 
 0  3 	+0.00087 26643 73733 54775 58514 83142 	-0.00000 00001 41501 60178 74531 06156 
 0  4 	+0.00116 35524 34000 62403 34259 32424 	-0.00000 00001 38115 27102 70400 57958 
 0  5 	+0.00145 44403 95775 79848 35477 73988 	-0.00000 00001 34765 73659 27267 16828 
 0  6 	+0.00174 53282 34445 57401 72832 79054 	-0.00000 00001 31452 73481 84949 23665 
 0  7 	+0.00203 62159 25396 46262 62573 17258 	-0.00000 00001 28176 00337 13568 73934 
 0  8 	+0.00232 71034 44014 98747 00910 99392 	-0.00000 00001 24935 28124 66332 26974 
 0  9 	+0.00261 79907 65687 68496 38279 20928 	-0.00000 00001 21730 30876 32421 57142 
 0  10 	+0.00290 88778 65801 10686 53467 43439 	-0.00000 00001 18560 82755 89993 33442 
 0  11 	+0.00319 97647 19741 82236 27634 51030 	-0.00000 00001 15426 58058 59288 14294 
 0  12 	+0.00349 06513 02896 42016 18196 18892 	-0.00000 00001 12327 31210 55848 44100 
 0  13 	+0.00378 15375 90651 51057 32586 31092 	-0.00000 00001 09262 76768 43845 38266 
 0  14 	+0.00407 24235 58393 72760 01889 84712 	-0.00000 00001 06232 69418 89514 43336 
 0  15 	+0.00436 33091 81509 73102 54346 17450 	-0.00000 00001 03236 83978 14699 58894 
 0  16 	+0.00465 41944 35386 20849 88720 95796 	-0.00000 00001 00274 95391 50506 07884 
 0  17 	+0.00494 50792 95409 87762 47545 00896 	-0.00000 00000 97346 78732 91061 42024 
 0  18 	+0.00523 59637 36967 48804 90218 49217 	-0.00000 00000 94452 09204 47384 68948 
 0  19 	+0.00552 68477 35445 82354 65978 85126 	-0.00000 00000 91590 62136 01363 87752 
 0  20 	+0.00581 77312 66231 70410 86730 82496 	-0.00000 00000 88762 12984 59841 19591 
 0  21 	+0.00610 86143 04711 98802 99736 92452 	-0.00000 00000 85966 37334 08806 19991 
 0  22 	+0.00639 94968 26273 57399 60166 74370 	-0.00000 00000 83203 10894 67696 59532 
 0  23 	+0.00669 03788 06303 40317 03503 47242 	-0.00000 00000 80472 09502 43806 59557 
 0  24 	+0.00698 12602 20188 46128 17805 98520 	-0.00000 00000 77773 09118 86802 69577 
 0  25 	+0.00727 21410 43315 78071 15824 87552 	-0.00000 00000 75105 85830 43346 73017 
 0  26 	+0.00756 30212 51072 44258 06970 80723 	-0.00000 00000 72470 15848 11826 07970 
 0  27 	+0.00785 39008 18845 57883 69133 55414 	-0.00000 00000 69865 75506 97190 89629 
 0  28 	+0.00814 47797 22022 37434 20350 09892 	-0.00000 00000 67292 41265 65898 21027 
 0  29 	+0.00843 56579 35990 06895 90320 16244 	-0.00000 00000 64749 89706 00962 78787 
 0  30 	+0.00872 65354 36135 95963 91767 53468 	-0.00000 00000 62237 97532 57114 60504 
 0  31 	+0.00901 74121 97847 40250 91645 57834 	-0.00000 00000 59756 41572 16062 80449 
 0  32 	+0.00930 82881 96511 81495 82185 27628 	-0.00000 00000 57304 98773 41866 00238 
 0  33 	+0.00959 91634 07516 67772 51784 19392 	-0.00000 00000 54883 46206 36408 81144 
 0  34 	+0.00989 00378 06249 53698 55734 72773 	-0.00000 00000 52491 61061 94984 44700 
 0  35 	+0.01018 09113 68098 00643 86790 01094 	-0.00000 00000 50129 20651 61983 28262 
 0  36 	+0.01047 17840 68449 76939 45565 84760 	-0.00000 00000 47796 02406 86687 22206 
 0  37 	+0.01076 26558 82692 58086 10777 04612 	-0.00000 00000 45491 83878 79169 75400 
 0  38 	+0.01105 35267 86214 26963 09306 52342 	-0.00000 00000 43216 42737 66301 55645 
 0  39 	+0.01134 43967 54402 74036 86105 55082 	-0.00000 00000 40969 56772 47861 51718 
 0  40 	+0.01163 52657 62645 97569 73923 51280 	-0.00000 00000 38751 03890 52753 03713 
 0  41 	+0.01192 61337 86332 03828 62865 54976 	-0.00000 00000 36560 62116 95325 48326 
 0  42 	+0.01221 70008 00849 07293 69776 45591 	-0.00000 00000 34398 09594 31800 65756 
 0  43 	+0.01250 78667 81585 30867 07449 20342 	-0.00000 00000 32263 24582 16804 14897 
 0  44 	+0.01279 87317 03929 06081 53656 46396 	-0.00000 00000 30155 85456 60001 43478 
 0  45 	+0.01308 95955 43268 73309 20003 49876 	-0.00000 00000 28075 70709 82838 59825 
 0  46 	+0.01338 04582 74992 81970 20600 78832 	-0.00000 00000 26022 58949 75387 52915 
 0  47 	+0.01367 13198 74489 90741 40554 77290 	-0.00000 00000 23996 28899 53295 47390 
 0  48 	+0.01396 21803 17148 67765 04275 07492 	-0.00000 00000 21996 59397 14838 80203 
 0  49 	+0.01425 30395 78357 90857 43596 57440 	-0.00000 00000 20023 29394 98080 85567 
 0  50 	+0.01454 38976 33506 47717 65714 70857 	-0.00000 00000 18076 17959 38133 74875 
 0  51 	+0.01483 47544 57983 36136 20932 36678 	-0.00000 00000 16155 04270 24523 98270 
 0  52 	+0.01512 56100 27177 64203 70216 75184 	-0.00000 00000 14259 67620 58661 74536 
 0  53 	+0.01541 64643 16478 50519 52564 57892 	-0.00000 00000 12389 87416 11413 75982 
 0  54 	+0.01570 73173 01275 24400 52173 98314 	-0.00000 00000 10545 43174 80779 54994 
 0  55 	+0.01599 81689 56957 26089 65421 50698 	-0.00000 00000 08726 14526 49670 98934 
 0  56 	+0.01628 90192 58914 06964 67642 53864 	-0.00000 00000 06931 81212 43795 00057 
 0  57 	+0.01657 98681 82535 29746 79713 57248 	-0.00000 00000 05162 23084 89639 27134 
 0  58 	+0.01687 07157 03210 68709 34434 66267 	-0.00000 00000 03417 20106 72560 85439 
 0  59 	+0.01716 15617 96330 09886 42710 44118 	-0.00000 00000 01696 52350 94977 51802 
 1  0 	+0.01745 24064 37283 51281 59528 07124 	-0.00000 00000 00000 00000 34661 71391 
 2  0 	+0.03489 94967 66962 53891 84060 91016 	+0.00000 00000 64461 56727 24109 09391 
 3  0 	+0.05233 59563 20604 48723 89909 96848 	+0.00000 00000 77660 65451 68723 67239 
 4  0 	+0.06975 64738 08683 82608 33470 28420 	+0.00000 00000 64558 52530 73881 93226 
 5  0 	+0.08715 57427 89133 19878 53296 89532 	+0.00000 00000 41475 02522 72654 18695 
 6  0 	+0.10452 84632 85896 39259 81880 83984 	+0.00000 00000 18242 92119 83539 29182 
 7  0 	+0.12186 93434 05143 15268 99985 15576 	-0.00000 00000 00004 32842 28954 03654 
 8  0 	+0.13917 31009 48689 86189 10340 88108 	-0.00000 00000 11375 58222 14625 75192 
 9  0 	+0.15643 44650 24170 10684 07503 05380 	-0.00000 00000 16060 76216 93550 14086 
 10  0 	+0.17364 81776 51499 15118 20666 71192 	-0.00000 00000 15431 19766 96499 55576 
 11  0 	+0.19080 89953 65176 33645 06242 89344 	-0.00000 00000 11368 47595 45161 98613 
 12  0 	+0.20791 16908 11969 43130 66994 63636 	-0.00000 00000 05789 90579 50428 20768 
 13  0 	+0.22495 10543 43524 94975 74532 97868 	-0.00000 00000 00340 04829 36539 10473 
 14  0 	+0.24192 18956 03448 45901 71972 95840 	+0.00000 00000 03780 73645 67549 21740 
 15  0 	+0.25881 90451 08398 89765 33549 61352 	+0.00000 00000 05878 13530 44561 23728 
 16  0 	+0.27563 73558 22740 92466 57993 98204 	+0.00000 00000 05741 73901 58278 23593 
 17  0 	+0.29237 17047 26299 32014 72469 10196 	+0.00000 00000 03562 59204 97782 14819 
 18  0 	+0.30901 69943 74759 45817 23866 01128 	-0.00000 00000 00187 96592 99068 16053 
 19  0 	+0.32556 81544 52257 87256 34259 74800 	-0.00000 00000 04898 79615 05829 60993 
 20  0 	+0.34202 01433 15706 93617 97325 35012 	-0.00000 00000 09961 79686 43670 79669 
 21  0 	+0.35836 79495 30397 67437 92513 85564 	-0.00000 00000 14902 59910 48864 03848 
 22  0 	+0.37460 65933 96424 73329 93788 30256 	-0.00000 00000 19487 30211 55849 44244 
 23  0 	+0.39073 11284 65477 52360 49719 72888 	-0.00000 00000 23796 23145 71126 16000 
 24  0 	+0.40673 66430 47541 56035 11743 17260 	-0.00000 00000 28258 64740 28116 73080 
 25  0 	+0.42261 82617 07054 01960 87373 67172 	-0.00000 00000 33645 41657 82411 22474 
 26  0 	+0.43837 11467 48057 53249 95182 26424 	-0.00000 00000 41019 88495 32163 14233 
 27  0 	+0.45399 04996 87896 23728 98331 98816 	-0.00000 00000 51650 55427 05751 67540 
 28  0 	+0.46947 15627 18998 11018 93473 88148 	-0.00000 00000 66892 66577 01149 00078 
 29  0 	+0.48480 96201 58287 59550 31802 98220 	-0.00000 00000 88049 43357 21993 24194 
 30  0 	+0.49999 99998 83772 55578 49074 32832 	-0.00000 00001 16227 44421 50925 67167 
 31  0 	+0.51503 80747 57849 56263 81378 95784 	-0.00000 00001 52204 64744 34940 40613 
 32  0 	+0.52991 92640 36871 54881 43479 90876 	-0.00000 00001 96333 40523 24331 60939 
 33  0 	+0.54463 90347 66521 84225 46508 21908 	-0.00000 00002 48505 23996 94328 70172 
 34  0 	+0.55919 29031 62538 60272 31818 92680 	-0.00000 00003 08208 22743 72462 47304 
 35  0 	+0.57357 64359 76333 68167 97807 06992 	-0.00000 00003 74712 41442 82512 05833 
 36  0 	+0.58778 52518 45049 92603 96483 68644 	-0.00000 00004 47423 20312 90575 85994 
 37  0 	+0.60181 50226 25600 94646 76611 81436 	-0.00000 00005 26447 33345 03158 19004 
 38  0 	+0.61566 14747 12237 37085 50202 49168 	-0.00000 00006 13420 90881 37908 43674 
 39  0 	+0.62932 03903 37183 60362 59170 75640 	-0.00000 00007 12653 84907 99853 82638 
 40  0 	+0.64278 76088 53889 11152 18951 64652 	-0.00000 00008 32650 21480 07482 45254 
 41  0 	+0.65605 90280 02438 25651 15876 20004 	-0.00000 00009 88069 02827 09083 44018 
 42  0 	+0.66913 06051 56662 69647 35107 45496 	-0.00000 00012 02195 51735 27625 85189 
 43  0 	+0.68199 83585 52500 37429 95936 44928 	-0.00000 00015 09998 12614 26321 39782 
 44  0 	+0.69465 83684 97145 11606 71238 22100 	-0.00000 00019 61852 17058 92824 77321 
 45  0 	+0.70710 67785 58530 85892 67887 80812 	-0.00000 00026 28016 66547 40555 81291 




   10    word 30
   20   point 15
   30   kill "what4.txt"
   40   print=print+"what4.txt"
   50   ' file ub-g-el.bas     - UBASIC Gaussian Elimination
   60   '
   70   '
   80   print "sin 0-45 degrees, inc 1 min, step polynomial 6 degrees"
   90   dim A(10,10) ' INPUT MATRIX OF COEFFICIENTS (DESTROYED) - shared
  100   dim B(10,1) ' B(MAX,NR) - MATRIX OF CONSTANTS (REPLACED BY SOLUTIONS) - shar
  110   dim Y(10) ' y values from computing poly
  120   dim W(10) ' working values in babbage
  130   dim Stepval(10) '
  140  
  150   Max%=8 ' set size of power array
  160   N%=8
  170   Nr%=1 ' set size of result array
  180   Ierr=1.0*10^(-15)
  190   '
  200  
  210   ' set up a and b arrays with sin -1 to 20 step 3
  220   Deg2rad=#pi/180
  230   for I=1 to 8
  240   Deg=(I*6)-5
  250   Y=sin(Deg2rad*Deg)
  260   B(I,1)=Y ' sets up value array
  270   A(I,1)=1:W=1 ' x^0
  280   for J=2 to 8
  290   W=Deg*W ' makes power of x
  300   A(I,J)=W ' sets into array
  310   next J
  320   next I
  330   '
  340   print "calling GAUSEL.BAS"
  350   gosub *Gausel(Max%,N%,Nr%,Ierr)
  360   print "return from GAUSEL.BAS"
  370   print "ierr = ";Ierr
  380  
  390   print "b array"
  400   for I%=1 to N%
  410   J%=1
  420   print "x^";chr(48+I%-1);" "; 'I%
  430     gosub *Sprint(B(I%,J%))
  440   print
  450   next I%
  460  
  465   '     0123456789012345678901234567890
  466   Ten30=1000000000000000000000000000000
  470   ' calc y for steps 1
  472   print "input values"
  474   print " minutes   sin value"
  480    for I%=0 to 7
  481       Deg=(I%)/60 ' start at 0 minute
  482       T=1:WS=0
  484       for J%=1 to 8
  486         WS=WS+T*B(J%,1)
  488         T=T*Deg
  489       next J%
  490       Stepval(I%)=WS
  492       WS=int(WS*Ten30)/Ten30
  494       Stepval(I%)=WS
  495       print I%,:gosub *Sprint(Stepval(I%)):print
  500    next I%
  510   '
  520   print " differences"
  530   for N%=0 to 7
  540   W(N%)=Stepval(0):print N%;" "; gosub *Sprint(W(N%)):print
  550    for I%=0 to (7-N%)
  560   Stepval(I%)=Stepval(I%+1)-Stepval(I%)
  570   next I%
  580   next N%
  590   '
  600   ' run the machine
  610   print "output"
  620   print "degrees  sin of degree                                error"
  630   for Deg%=0 to 45
  635   for Min%=0 to 59
  636   if ((Deg%<>0) and (Min%<>0)) then goto *Skipprint
  640   print Deg%;Min%,
  650   gosub *Sprint(W(0)):print,
  660   E=W(0)-sin(Deg2rad*Deg%+Deg2rad/60*Min%)
  670   gosub *Sprint(E):print
  672   *Skipprint
  680   for I%=0 to 6
  690   W(I%)=W(I%)+W(I%+1)
  700   next I%
  705   next Min%
  710   next Deg%
  720   print=print
  730   stop
  740   '----------- subroutine gausel ---------------------
  750   ' converted to BASIC from http://www.netlib.org/ieeecss/cascade/gausel.frun
  760  
  770   *Gausel(Max%,N%,Nr%,Ierr)
  780   '      SUBROUTINE GAUSEL (MAX, N, A, NR, B, IERR)
  790   '   FUNCTION              - COMPUTES SOLUTION TO A SET OF SIMULTANEOUS
  800   '                             LINEAR EQUATIONS (DOES NOT GIVE PIVOT OR
  810   '                             DETERMINANT DATA)
  820   '   PARAMETERS  MAX       - MAXIMUM ROW DIMENSION OF B
  830   '               N         - ORDER OF A
  840   '               A(N,N)    - INPUT MATRIX OF COEFFICIENTS (DESTROYED)
  850   '               NR        - NUMBER OF COLUMNS IN B
  860   '               B(MAX,NR) - MATRIX OF CONSTANTS (REPLACED BY SOLUTIONS)
  870   '               IERR      - INTEGER ERROR CODE
  880   '                             = 0   NORMAL RETURN
  890   '                             = 5   INPUT MATRIX IS SINGULAR
  900   '   REQUIRED SUBPROGRAMS  - NONE
  910   '   REQUIRED FUNCTIONS    - DABS
  920   '   AUTHOR/IMPLEMENTER    - R.C. WARD / R.C. WARD
  930   '   LANGUAGE              - FORTRAN (IBM DOUBLE PRECISION)
  940   '      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
  950   '      DIMENSION A(N,N),B(MAX,NR)
  960   ' input
  970   'DIM A(10,10)     ' INPUT MATRIX OF COEFFICIENTS (DESTROYED)
  980   'DIM B(10,1)  ' B(MAX,NR) - MATRIX OF CONSTANTS (REPLACED BY SOLUTIONS)
  990   ' MAX       - MAXIMUM ROW DIMENSION OF B
 1000   ' N         - ORDER OF A
 1010   ' NR        - NUMBER OF COLUMNS IN B
 1020   ' IERR      - INTEGER ERROR CODE
 1030   '           = 0   NORMAL RETURN
 1040   '           = 5   INPUT MATRIX IS SINGULAR
 1050  
 1060   NM1%=N%-1
 1070   if (NM1%=0) goto *Line140
 1080   ' ****
 1090   '     FIND LARGEST REMAINING ELEMENT IN I-TH COLUMN FOR PIVOT
 1100   ' ****
 1110   for I%=1 to NM1%
 1120   BIG=0.0
 1130   for K%=I% to N%
 1140     TERM=abs(A(K%,I%))
 1150     if (TERM>BIG) then
 1160       BIG=TERM
 1170       L%=K%
 1180     endif
 1190   next K%
 1200   if (BIG=0) then goto *Line160
 1210   if (I%<>L%) then
 1220   ' ****
 1230   '     PIVOT ROWS OF A AND B
 1240   ' ****
 1250      for J%=1 to N%
 1260        TEMP=A(I%,J%)
 1270        A(I%,J%)=A(L%,J%)
 1280        A(L%,J%)=TEMP
 1290      next J%
 1300      for J%=1 to Nr%
 1310        TEMP=B(I%,J%)
 1320        B(I%,J%)=B(L%,J%)
 1330        B(L%,J%)=TEMP
 1340      next J%
 1350   endif
 1360   ' ****
 1370   '     STORE PIVOT AND PERFORM COLUMN OPERATIONS ON A AND B
 1380   ' ****
 1390   IP1%=I%+1
 1400   for II%=IP1% to N%
 1410     A(II%,I%)=A(II%,I%)/A(I%,I%)
 1420     X3=A(II%,I%)
 1430     for K%=IP1% to N%
 1440       A(II%,K%)=A(II%,K%)-X3*A(I%,K%)
 1450     next K%
 1460     for K%=1 to Nr%
 1470       B(II%,K%)=B(II%,K%)-X3*B(I%,K%)
 1480    next K%
 1490   next II%
 1500   *Line100
 1510   next I%
 1520   ' 100  CONTINUE
 1530   ' ****
 1540   '     PERFORM BACK SUBSTITUTION
 1550   ' ****
 1560   for IC%=1 to Nr%
 1570   B(N%,IC%)=B(N%,IC%)/A(N%,N%)
 1580   next IC%
 1590   for KK%=1 to NM1%
 1600   I%=N%-KK%
 1610   IP1%=I%+1
 1620   for J%=1 to Nr%
 1630     SUM=B(I%,J%)
 1640     for K%=IP1% to N%
 1650       SUM=SUM-A(I%,K%)*B(K%,J%)
 1660     next K%
 1670     B(I%,J%)=SUM/A(I%,I%)
 1680   next J%
 1690   next KK%
 1700   goto *Line170
 1710   *Line140
 1720   if (A(1,1)=0) goto *Line160
 1730   for J%=1 to Nr%
 1740     B(1,J%)=B(1,J%)/A(1,1)
 1750   next J
 1760  
 1770   goto *Line170
 1780   *Line160
 1790   Ierr=5
 1800   *Line170
 1810        return
 1820      ' END
 1830   end Sub
 1840  
 1850   *Sprint(A)
 1860   local I,J,K,Delta
 1870   ' pretty print
 1880   '       1234567890123456789012345678901234567890
 1890   Delta=0.0000000000000000000000000000000000000001
 1900   if (int(A)<>int(A+Delta)) then A=A+Delta
 1910   if A>=0 then print "+";:else print "-";:endif
 1920   A=abs(A)
 1930   if Int (A)>9 then print "*** overflow ***":return:endif
 1940   print chr(48+int(A));:print ".";
 1950   for I=1 to 30
 1960   A=(A-int(A))*10 ' strip integer part, mpy
 1970   print chr(48+int(A));
 1980   if ((I/5)=int(I/5)) and (I<>35) then print " ";
 1990   next I
 2000   return
 2010   stop