I use a programming language called MANTIS, which
happens to be a product that I've worked on for a
number of years. For programs that don't involve a
lot of terminal or file i/o, it resembles BASIC.
00010 |GAUSS ELIMINATION FOR SIMULTANEOUS LINEAR EQUATIONS
00011 | GIVEN SQUARE MATRIX A AND VECTOR B, DETERMINE X IN AX=B
00020 DO OBTAIN_EQUATIONS
00040 FOR I=1 TO N-1
00050 .DO PIVOT
00060 .DO ELIMINATE
00070 END
00080 DO SOLUTION
00090 STOP
00100 |------------------------------
00110 ENTRY OBTAIN_EQUATIONS
00111 .BIG A(5,6):N=5:N1=N+1
00112 .A(1,1)=2,0,1,1,2,260
00113 .A(2,1)=1,1,2,2,1,340
00114 .A(3,1)=1,1,3,0,0,255
00115 .A(4,1)=2,1,1,4,0,435
00116 .A(5,1)=1,0,1,1,3,225
00230 EXIT
00240 |------------------------------
00250 ENTRY PIVOT
00260 .|PERFORM PARTIAL PIVOTING
00270 .MAX=ABS(A(I,I)):|FIND LARGEST COEF. TO PIVOT ON
00280 .L=I
00290 .FOR M=I+1 TO N
00300 ..IF ABS(A(M,I))>MAX
00310 ...MAX=ABS(A(M,I))
00320 ...L=M
00330 ..END
00340 .END
00350 .IF MAX=0
00360 ..SHOW"NO SOLUTION":WAIT:STOP
00361 .ELSE
00362 ..DO SWAP(I,L)
00370 .END
00380 EXIT
00390 |------------------------------
00400 DO SWAP(I,L)
00410 ENTRY SWAP(I,L)
00420 .IF I<>L
00430 ..FOR SWAPI=I TO N1
00440 ...TEMP=A(I,SWAPI)
00450 ...A(I,SWAPI)=A(L,SWAPI)
00460 ...A(L,SWAPI)=TEMP
00470 ..END
00480 .END
00490 EXIT
00500 |------------------------------
00510 ENTRY ELIMINATE
00520 .FOR K=I+1 TO N
00530 ..MULTIPLIER=-A(K,I)/A(I,I)
00540 ..FOR J=I+1 TO N1
00550 ...A(K,J)=A(K,J)+MULTIPLIER*A(I,J)
00560 ..END
00570 .END
00580 EXIT
00590 |------------------------------
00600 ENTRY SOLUTION
00610 .BIG X(N)
00620 .FOR I=N TO 1 BY-1
00630 ..BACKSOL=A(I,N1)
00640 ..FOR K=I+1 TO N
00650 ...BACKSOL=BACKSOL-A(I,K)*X(K)
00660 ..END
00670 ..X(I)=BACKSOL/A(I,I)
00680 ..SHOW I;"IS";X(I)
00690 .END
00700 .WAIT
00710 EXIT