🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sources.hp48
Article #20

v07i001: eche_cf - Echelon reducing v1.0, Part01/01

#20
From: Carlos Ferraro
Date: Mon, 07 Sep 1992 23:33
199 lines
8636 bytes
Checksum: 4002671969 (verify with brik -cv)
Submitted-by: Carlos Ferraro <carlos@fy.chalmers.se>
Posting-number: Volume 7, Issue 1
Archive-name: eche_cf/part01

BEGIN_DOC eche.doc
Hi everybody !

Here's a very good echelon-reducing program, with following facilities:

1) It handles standard HP48 matrices and gives the answer also as a std. matrix .
2) It is designed to produce the least possible "round-off" error
   ( global truncation error) in order not only to get the answers as
   beautiful as possible, but, what's more important, to have the possibility
   of applying ->Q to every element with the program  FM->Q , wich is also
   posted.
3) The program is very fast - most of it are "intelligent" tests.
   Worst case of running time is aprox. 1 second plus as many seconds as rows are in the matrix!

Usage:  Just press Eche when having a matrix at level 1 you want to reduce.

Optionals: If you have my directory SYMB for handling symbolic matrices called symmat_cf ,
	   you could also download the following programs : FM->Q and AplyPrg
      	   (the last one you should recognize  but ATTENTION
	   this is the new version and it should be at HOME , not at SYMB !!
	   Drop the old one and store the new one. OBS!! I have the SYMB directory
	   in a directory called MATH, change this part in FM->Q if you don't !!)

programs	Checksums	and	bytes :

Eche		# 9997h			944.5
FM->Q		# 82Fh			51.5
AplyPrg		# E497h			441

Of course, this are the values once you have done ASC-> to all of them !!

EXAMPLES:

In: [[ 1 1 1 1 12]		Press Eche and out comes	[[ 1 0 2 -3 7]
     [ 1 2 0 5 17]		after 3 seconds			 [ 0 1 -1 4 5]
     [ 3 2 4 -1 31 ]]						 [ 0 0 0 0 0 ]]


In: [[ 1 2 3 ]			Press Eche and out comes	[[ 1 0 -1 ]
     [ 4 5 6 ]			after 3 seconds			 [ 0 1 2 ]
     [ 7 8 9 ]]							 [ 0 0 0 ]]


In: [[ 10 2 3 ]			Press Eche and out comes	[[ 1 0 0 ]
     [ 4 5 6 ]			after 0.4 seconds		 [ 0 1 0 ]
     [ 7 8 9 ]]							 [ 0 0 1 ]]



In: [[ 10 2 3 ]			Press Eche and out comes	[[ 1 0 0 ]
     [ 4 5 6 ]			after 4.5 seconds		 [ 0 1 0 ]
     [ 7 8 9 ]							 [ 0 0 1 ]
     [ 1 2 5 ]]							 [ 0 0 0 ]]



In:  [[ 11 4 7 1 ]		Press Eche and out comes	[[ 1 0 0 .20000... ]
      [ 2 5 8 2 ]		after 4 seconds			 [ 0 1 0 6.9333... ]
      [ 3 6 9 5 ]]						 [ 0 0 1 -4.133... ]]

Now press FM->Q and you'll get	{{ 1 0 0 '1/5' }	after 1.7 seconds !!
				 { 0 1 0 '104/15' }
				 { 0 0 1 '-(62/15) }}


END_DOC
Download this as as Eche :

BEGIN_ASC eche.asc
%%HP: T(2)A(R)F(.);
"D9D20E163278BF19C2A29C2A247A20B21309C2A24B2A24B2A24B2A24B2A21C43
2D6E201044D6E201025D6E201034D6E201014D6E201005D6E201015D6E2010A5
D6E2010B4D6E201045E1632B7FC178BF13CE228B9C19C2A2279E1AFE22D9D20E
B3A145632D6E20103497632DCC02B21305BF22D9D20EB3A145632D6E20103497
632DCC0245632D6E20102597632DCC02B21305DF223CE22D6E201025D6E20103
4279E1AFE22D9D20D6E201044EDFB1F1AA1B21305BF224B2A25DF223CE223392
05990000000000010EBBE1AFE22D9D209C2A2D6E2010250A132D6E2010E4D6E2
01034900D19C2A2387C145632D6E20101497632B4402C423233032D6E201005D
6E201025CFCE1D6E201015D6E201034EBBE1387E1D5032D9D204B2A245632D6E
2010A597632DCC0233032D6E2010A5F1AA1339205990000000000010EBBE1D6E
201015D6E201034EBBE1387E1D5032D9D209C2A2D6E20101576BA145632D6E20
101597632DCC02D6E201005D6E2010250A132D6E2010943CE229C2A2063C1AFE
22D9D20D6E201014D6E2010946C7D1D6E2010156C7D178BF1F1AA13CE2278BF1
9C2A2D9AE1AFE22D9D203CE22D6E2010A5F1AA1D5CE1AFE22D9D2045632D6E20
10A597632DCC02D6E20109445632D6E2010B497632DCC02B21305BF228DBF15D
F22B21305BF22D9D208DBF145632D6E2010A597632DCC02D6E20109445632D6E
2010B497632DCC029C2A2472C1B21305DF22B21305DF22C4232B2130496323CE
22D6E2010A5F1AA1339205990000000000010D5CE1AFE22D9D203CE22D6E2010
05D6E2010B4D9AE1AFE22D9D20D6E201014D6E2010056C7D1D6E201014D6E201
005D6E201014D6E2010B46C7D1D6E2010A550FA178BF145632D6E20104597632
DCC02704D1DBBF1D6E2010B4DBBF1704D1B21305BF22D9D20D6E201014D6E201
005D6E201014D6E2010056C7D1D6E2010A550FA178BF145632D6E20104597632
DCC02704D1B21305DF2245632D6E20101497632DCC029C2A2D6E2010250A132D
6E2010A43CE22D6E2010A4D6E201005D9AE1AFE22D9D20D6E201014D6E2010A4
6C7D178BF1D6E2010156C7D1D6E201045EEDA190DA1B21305BF22D6E2010455D
F22C4232D6E201025387C145632D6E20101497632DCC029C2A2D6E20100576BA
145632D6E20100597632DCC029C2A25D2C1B21305DF22B2130496329C2A2D6E2
010250A132D6E2010E4D6E201014D6E2010E46C7D160DD1C423247A20D6E2010
25D6E201034B2130900D1B21305BF22D9D20BECF1D6E201025CD2D1B21305DF2
2EF53293632B21307999"
END_ASC

BYTES: #9997h 936

BEGIN_UU eche.uue
begin 644 eche
M2%!(4#0X+46=+>!A(X?[D2PJR:)"IP(K,9`L*K2B0BLJM*)"*RK!--+F`@%$
M;2X0(-7F`@%#;2X0$-3F`@%0;2X0$-7F`@%:;2X0L-3F`@%4'C:R]QR'^S'L
M(KC)D2PJ<NFA[R*=+>`[&E0VTN8"`4-Y-M+,("LQ4/LBG2W@.QI4-M+F`@%#
M>3;2S"!4-M+F`@%2>3;2S"`K,5#](L,NTN8"`5)M+A`P))<>^B[2V0)M+A!`
MY/T;'ZJQ$@.U+T(K*M4O,NPB,RE0F0``````$."['OHNTMD"R:+2Y@(!4J`Q
MTN8"`4YM+A`PE``=R:(R>!Q4-M+F`@%!>3:R1"!,,C(#(VTN$`#5Y@(!4OSL
MT>8"`5%M+A`PY+L>@^?1!2.=+4`K*E0VTN8"`5IY-M+,(#,PTN8"`5H?JC&3
M`I4)```````!ONO1Y@(!46TN$##DNQZ#Y]$%(YTMD"PJ;2X0$'6V&E0VTN8"
M`5%Y-M+,(&TN$`#5Y@(!4J`QTN8"`4G#+I(L*F##H>\BG2W0Y@(!06TN$)!D
M?!UM+A`097P=A_OQH1K#+G*X'\FBTJD>^B[2V0+#+M+F`@%:'ZK1Q1[Z+M+9
M`E0VTN8"`5IY-M+,(&TN$)!$92-M+A"PE&<CS0RR$@.U+X*]']4OLA(#M2_2
MV0+8^T%E(VTN$*"59R/-#-+F`@%)5#;2Y@(!2WDVTLP@R:)")QPK,5#](BLQ
M4/TB3#*R$@.4-C+L(FTN$*#UH1HS*5"9```````0T,4>^B[2V0+#+M+F`@%0
M;2X0L-2I'OHNTMD";2X0$-3F`@%0QM?1Y@(!06TN$`#5Y@(!06TN$+!D?!UM
M+A"@5?`:A_M!92-M+A!`E6<CS0QR0!V]^]'F`@%+O?MQ0!TK,5#[(ITMT.8"
M`4%M+A``U>8"`4%M+A``97P=;2X0H%7P&H?[064C;2X00)5G(\T,<D`=*S%0
M_2)4-M+F`@%!>3;2S"#)HM+F`@%2H#'2Y@(!2L,NTN8"`4IM+A``U:D>^B[2
MV0)M+A`0U.8"`4K&UW&X'VTN$!!E?!UM+A!`Y=X:":VQ$@.U+]+F`@%4U2_"
M)"-M+A`@-7@<5#;2Y@(!07DVTLP@R:+2Y@(!4&>K064C;2X0`)5G(\T,DBPJ
MU<*Q$@/5+[(2`Y0VDBPJ;2X0(`4:(VTN$.#4Y@(!06TN$.!D?!T&W<$D(W0J
LT.8"`5)M+A`PM!(#"="Q$@.U+]+9`NO\T>8"`5+<TK$2`]4OXE\C.3:R$@.R
`
end
sum -r/size 31443/1323 section (from "begin" to "end")
sum -r/size 30070/944 entire input file
END_UU


Now download this as AplyPrg :

BEGIN_ASC AplyPrg.asc
%%HP: T(2)A(R)F(.);
"D9D20E1632DBBF13CE2278BF168BC13F2A2279E1AFE22D9D2084E2040D414458
484E20403595D42484E2030D4D8C4041A1B21305DF2278BF18B9C14B2A21C432
D6E20200527D6E20201416D6E201035D6E20203437E1632D8732D9D20D6E2020
05279C2A2279E18A732D9D20C9432D9D20E163284E2040548734F693632B2130
45632D6E2020052797632DCC02B21305DF22D6E20200527ED2A2279E18A732D9
D20C9432D9D20E163284E2070642734F6C6364793632B213045632D6E2020052
797632DCC02B21305DF22B21305DF223CE22D6E202014169C2A26C7D168BC1D1
3A2D9AE1AFE22D9D20D6E202014169C2A2387C145632D6E2020141697632DCC0
2D6E20103545632D6E2020343797632DCC029C2A245632D6E20103597632DCC0
2B21305BF22D9D20D6E202014169C2A26C7D18B9C145632D6E2020343797632D
CC02B21305DF229C2A2D6E2010350A132D6E201094D6E20201416D6E2010946C
7D11C432D6E20203436E16329C2A2D6E202034370A132D6E2010A4D6E2020343
6D6E2010A46C7D1D6E20200527EB3A1C4232EF532D6E20203437387C1C4232D6
E201035387C1EF53293632B2130794E"
END_ASC


BYTES: #E497h 429.5

BEGIN_UU AplyPrg.uue
begin 644 AplyPrg
M2%!(4#0X+46=+>!A([W[,>PBA_MAN!SSHB*7'OHNTMD"2"Y`T!1$A83D`@13
M64U"2"XPT-3(!!0:*S%0_2*'^X&;'+2B$DPC;2X@`"77Y@("06%M+A`PU>8"
M`D-S'C;2>".=+=#F`@)0<LFB(I<>J#?2V0*<--+9`AXV@N0"!$5X0V\Y-K(2
M`U0VTN8"`E!R>3;2S"`K,5#](FTN(``EYRTJ<NF!>B.=+<!)(YTMX&$C2"YP
M8"0W],8V1I=C(RLQ0&4C;2X@`"679R/-#+(2`]4OLA(#U2\R[")M+B`0%)8L
M*L;78;@<':/2J1[Z+M+9`FTN(!`4EBPJ@\=!92-M+B`0%)9G(\T,TN8"`5-4
M-M+F`@)#<WDVTLP@R:)"92-M+A`PE6<CS0RR$@.U+]+9`FTN(!`4EBPJQM>!
MFQQ4-M+F`@)#<WDVTLP@*S%0_2+)HM+F`@%3H#'2Y@(!26TN(!`4UN8"`4G&
MUQ%,(VTN(#`TYF$CR:+2Y@("0W.@,=+F`@%*;2X@,#36Y@(!2L;7T>8"`E!R
AOJ/!)"/^-=+F`@)#<X/'P20C;2X0,#5X'/XUDF,C*S$`
`
end
sum -r/size 42078/628 section (from "begin" to "end")
sum -r/size 6647/438 entire input file
END_UU

Finally download this as FM->Q :

BEGIN_ASC fmxq.asc
%%HP: T(0)A(R)F(.);
"D9D20E1632C9432D9D20E1632D13A2AE3C14C9F1684C193632B213084E207014
07C69705277693632B2130F280"
END_ASC

BYTES: #82Fh 43

BEGIN_UU fmXq.uue
begin 644 fmXq
M2%!(4#0X+46=+>!A(YPTTMD"'C;2,2KJPT&<'X;$D6,C*S&`Y`('07!L>5!R
&9SDVLA(#
`
end
sum -r/size 46911/93 section (from "begin" to "end")
sum -r/size 40095/51 entire input file
END_UU
Technical Details
Message-ID: <1992Sep7.233345.22880@seq.uncwil.edu>
Path: arc1-ca.pugleaf.net!sparky!uunet!seq!spell

Show Full Headers
Complete Article Headers
Newsgroups: comp.sources.hp48
Path: arc1-ca.pugleaf.net!sparky!uunet!seq!spell
From: Carlos Ferraro <carlos@fy.chalmers.se>
Subject:  v07i001:  eche_cf - Echelon reducing v1.0, Part01/01
Message-ID: <1992Sep7.233345.22880@seq.uncwil.edu>
Followup-To: comp.sys.hp48
Sender: spell@seq.uncwil.edu (Chris Spell)
Organization: Univ. of North Carolina @ Wilmington
Date: Mon, 7 Sep 1992 23:33:45 GMT
Approved: spell@seq.uncwil.edu
Lines: 203