reduce2.mts_master.s.1 448 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774
  1. 00000010
  2. OPEN (COMPILE SYSFILE INPUT) RESTORE (COMPILE)
  3. 00000030
  4. 00000040
  5. DEFLIST (((COMMENT (LAMBDA (U A) NIL))) FEXPR) 00000050
  6. 00000051
  7. COMMENT (***** DATE OF LAST SYSTEM UPDATE *****) 00000052
  8. 00000053
  9. DEFLIST (((DATE* ( 00000054
  10. 00000055
  11. $$$15-SEP-72 (UM 1-JUNE-73)$
  12. 00000057
  13. ))) SPECIAL) 00000058
  14. 00000059
  15. COMMENT (THE FOLLOWING COMMANDS ARE USED BY THE COMPILER) 00000060
  16. 00000061
  17. OPTIMIZE (T) BPSUSED (T) 00000062
  18. 00000063
  19. COMMENT((R E D U C E P R E P R O C E S S O R F O R L I S P /360))00000090
  20. 00000100
  21. OVOFF NIL 00000110
  22. 00000120
  23. COMMENT ((REDUCE CONVERTOR)) 00000130
  24. 00000140
  25. REMPROP (DEFINE SUBR) 00000150
  26. 00000160
  27. SPECIAL ((NOCMP*)) 00000170
  28. 00000180
  29. (LAMBDA (U) (COMPILE (DEFLIST U (QUOTE EXPR)))) (( 00000190
  30. 00000200
  31. (DEFINE (LAMBDA (U) 00000210
  32. (DEF1 U (QUOTE EXPR)))) 00000220
  33. (DEFEXPR (LAMBDA (U)
  34. (DEF1 U (QUOTE FEXPR))))
  35. 00000230
  36. (DEF1 (LAMBDA (U V) 00000240
  37. (PROG (X Y) 00000250
  38. A (COND ((NULL U) (RETURN Y)) 00000260
  39. ((FLAGP (SETQ X (CAAR U)) (QUOTE LOSE)) (GO B)) 00000270
  40. ((GETD (SETQ X (TRANS X NIL))) 00000280
  41. (PRINT (LIST (QUOTE *****) X (QUOTE REDEFINED))))) 00000290
  42. (SETQ Y (NCONC Y (LIST X))) 00000300
  43. (COND (NOCMP* (DEFLIST (LIST (TRANS (CAR U) T)) V)) 00000310
  44. ((EQ V (QUOTE EXPR)) 00000320
  45. (COM1 X (TRANS (CADAR U) NIL) NIL)) 00000330
  46. (T (COM1 X NIL (TRANS (CADAR U) NIL)))) 00000340
  47. B (SETQ U (CDR U)) (GO A)))) 00000350
  48. 00000360
  49. (TRANS (LAMBDA (U V) 00000370
  50. (COND ((NULL U) NIL) 00000380
  51. ((ATOM U) (COND ((NUMBERP U) U) 00000390
  52. (T 00000400
  53. ((LAMBDA(X) 00000410
  54. (COND (X 00000420
  55. (LIST 00000430
  56. (QUOTE QUOTE) 00000440
  57. X)) 00000450
  58. (T ((LAMBDA (Y) 00000460
  59. (COND (Y Y) 00000470
  60. ((AND V (GET U (QUOTE SPECIAL)))
  61. (LIST (QUOTE GTS) (LIST (QUOTE QUOTE) U))) 00000490
  62. (T U))) 00000500
  63. (GET U (QUOTE NEWNAM)))))) 00000510
  64. (GET U (QUOTE CONSTANT)))))) 00000520
  65. ((ATOM (CAR U)) 00000530
  66. (COND ((EQ (CAR U) (QUOTE QUOTE)) U) 00000540
  67. ((NUMBERP (CAR U)) 00000550
  68. (CONS (CAR U) (MAPTR (CDR U)))) 00000560
  69. ((AND V (EQ (CAR U) (QUOTE SETQ))
  70. (GET (CADR U) (QUOTE SPECIAL))) 00000580
  71. (LIST (QUOTE PTS) (LIST (QUOTE QUOTE) (CADR U)) (TRANS 00000590
  72. (CADDR U) V))) 00000600
  73. (T 00000610
  74. ((LAMBDA(X) 00000620
  75. (COND (X 00000630
  76. (SUBLIS 00000640
  77. (PAIR (CADR X) (MAPTR (CDR U) V)) 00000650
  78. (CADDR X))) 00000660
  79. (T (CONS (TRANS (CAR U) V)
  80. (MAPTR (CDR U) V))))) 00000750
  81. (GET (CAR U) (QUOTE NEWFORM)))))) 00000760
  82. (T (MAPTR U V))))) 00000770
  83. 00000780
  84. (MAPTR (LAMBDA (U V) 00000790
  85. (COND ((ATOM U) (TRANS U V)) 00000800
  86. (T (CONS (TRANS (CAR U) V) (MAPTR (CDR U) V)))))) 00000810
  87. 00000820
  88. (GETD(LAMBDA(U) 00000830
  89. (OR (GET U (QUOTE EXPR)) 00000840
  90. (GET U (QUOTE FEXPR)) 00000850
  91. (GET U (QUOTE SUBR)) 00000860
  92. (GET U (QUOTE FSUBR)) 00000870
  93. (GET U (QUOTE MACRO))))) 00000880
  94. 00000890
  95. )) 00000900
  96. 00000910
  97. (LAMBDA NIL (PROG NIL (DEFLIST (LIST (LIST (QUOTE CONVRT) 00000912
  98. (GET (QUOTE TRANS) (QUOTE SUBR)))) (QUOTE SUBR)))) NIL 00000914
  99. 00000916
  100. (LAMBDA (U) (DEFLIST U (QUOTE EXPR))) (( 00000920
  101. 00000930
  102. (CONSTANT (LAMBDA (U) 00000940
  103. (DEFLIST U (QUOTE CONSTANT)))) 00000950
  104. 00000960
  105. (LOSE (LAMBDA (U) 00000970
  106. (FLAG U (QUOTE LOSE)))) 00000980
  107. 00000990
  108. (NEWFORM (LAMBDA (U) 00001000
  109. (DEFLIST U (QUOTE NEWFORM)))) 00001010
  110. 00001020
  111. (NEWNAM (LAMBDA (U) 00001030
  112. (DEFLIST U (QUOTE NEWNAM)))) 00001040
  113. 00001050
  114. )) 00001060
  115. 00001070
  116. 00001080
  117. (LAMBDA (U) (COMPILE (DEFLIST U (QUOTE EXPR)))) (( 00001090
  118. 00001100
  119. (SUBLIS (LAMBDA (U V) (COND 00001110
  120. ((NULL U) V) 00001120
  121. (T ((LAMBDA (X) (COND 00001130
  122. (X (CDR X)) 00001140
  123. ((ATOM V) V) 00001150
  124. (T (CONS (SUBLIS U (CAR V)) (SUBLIS U (CDR V)))))) 00001160
  125. (SASSOC V U (FUNCTION (LAMBDA NIL NIL)))))))) 00001170
  126. )) 00001180
  127. 00001190
  128. CONSTANT (( 00001200
  129. (**BLANK $$$ $) 00001210
  130. (**COMMA $$$,$) 00001220
  131. (**DOLLAR $$/$/) 00001230
  132. (**ESC $$$?$)
  133. (**LPAR $$$($) 00001250
  134. (**MILLION 1000000) 00001260
  135. (**DASH $$$-$) 00001270
  136. (**DOT $$$.$) 00001280
  137. (**RPAR $$$)$) 00001290
  138. (**SEMICOL $$$;$) 00001300
  139. (**STAR $$$*$) 00001310
  140. (**EMARK $$/$/) 00001320
  141. (**FMARK $$$&$) 00001330
  142. (**QMARK $$$'$) 00001340
  143. (**SMARK $$$"$) 00001350
  144. (**XMARK $$$!$) 00001360
  145. (**EOF EOF) 00001370
  146. (**PLUSS $$$+$) 00001380
  147. (**ENDMSG $$$LEAVING REDUCE ...$) 00001390
  148. )) 00001400
  149. 00001410
  150. NEWNAM (( 00001420
  151. (DIGIT DIGP) 00001430
  152. (EVENP *EVENP) 00001440
  153. (EXPLODE *EXPLODE) 00001450
  154. (LITER LETP) 00001460
  155. (OPEN *OPEN) 00001470
  156. (PAIR PAIRX) 00001471
  157. (PRINC PRIN1) 00001480
  158. (RDS *RDS) 00001500
  159. (SPACES XTAB) 00001510
  160. (WRS *WRS) 00001520
  161. )) 00001530
  162. 00001540
  163. 00001550
  164. NEWFORM (( 00001560
  165. (*APPLY (LAMBDA (U V) (APPLY U V ALIST))) 00001570
  166. (CAAAAR (LAMBDA (U) (CAAR (CAAR U)))) 00001580
  167. (CAAADR (LAMBDA (U) (CAAR (CADR U)))) 00001590
  168. (CAADAR (LAMBDA (U) (CAAR (CDAR U)))) 00001600
  169. (CAADDR (LAMBDA (U) (CAAR (CDDR U)))) 00001610
  170. (CADAAR (LAMBDA (U) (CADR (CAAR U)))) 00001620
  171. (CADADR (LAMBDA (U) (CADR (CADR U)))) 00001630
  172. (CADDAR (LAMBDA (U) (CADR (CDAR U)))) 00001640
  173. (CADDDR (LAMBDA (U) (CADR (CDDR U)))) 00001650
  174. (CDAAAR (LAMBDA (U) (CDAR (CAAR U)))) 00001660
  175. (CDAADR (LAMBDA (U) (CDAR (CADR U)))) 00001670
  176. (CDADAR (LAMBDA (U) (CDAR (CDAR U)))) 00001680
  177. (CDDAAR (LAMBDA (U) (CDDR (CAAR U)))) 00001690
  178. (CDDADR (LAMBDA (U) (CDDR (CADR U)))) 00001700
  179. (CDDDAR (LAMBDA (U) (CDDR (CDAR U)))) 00001710
  180. (CDDDDR (LAMBDA (U) (CDDR (CDDR U)))) 00001720
  181. (DIVIDE (LAMBDA (U V) (CONS (QUOTIENT U V) (REMAINDER U V)))) 00001730
  182. (GENSYM (LAMBDA NIL (GENSYM1 (QUOTE $$$ G$)))) 00001750
  183. (ONEP (LAMBDA (N) (EQUAL N 1))) 00001760
  184. (READCH (LAMBDA NIL (READCH NIL))) 00001770
  185. )) 00001780
  186. 00001790
  187. 00001800
  188. 00001810
  189. COMMENT ((DECLARATION OF SPECIAL AND GLOBAL VARIABLES)) 00001820
  190. 00001830
  191. COMMENT ((THE FOLLOWING ARE EXTENDED SPECIAL VARIABLES)) 00001840
  192. 00001850
  193. SPECIAL ((*S* *S1*)) 00001860
  194. 00001870
  195. COMMENT ((THE FOLLOWING VARIABLES ARE GLOBAL TO ALL FUNCTIONS)) 00001880
  196. 00001890
  197. SPECIAL(( 00001900
  198. IFL* OFL* IPL* OPL* PRI* CRCHAR* SV* MCOND* 00001910
  199. *FORT *ECHO *INT PRECLIS* ORIG* POSN* *NAT YCOORD* 00001920
  200. YMIN* YMAX* *LIST COUNT* *CARDNO ECHO* FORTVAR* 00001930
  201. LLENGTH* PLINE* CURSYM* *MODE MATP* DEFN* 00001940
  202. SEMIC* SYMFG* VARS* TMODE* *SQVAR* PROGRAM* PROGRAML* 00001950
  203. *GCD *EXP *MCD *FLOAT MATCH* *DIV *RAT *SUPER *MSG 00001960
  204. *ALLFAC *NCMP SUBFG* FRLIS1* FRLIS* GAMIDEN* SUB2* 00001970
  205. RPLIS* SUBL* DSUBL* FACTORS* FRASC* VREP* INDICES* 00001980
  206. WTP* SNO* *RAT *OUTP DIAG* 00001990
  207. MCHFG* SYMFG* *ANS *RESUBS *NERO EXLIST* ORDN* 00002000
  208. NAT** 00002001
  209. )) 00002010
  210. 00002020
  211. COMMENT ((THE FOLLOWING VARIABLE IS USED AS A FUNCTIONAL ARGUMENT)) 00002030
  212. 00002040
  213. COMMON ((*PI*)) 00002050
  214. 00002060
  215. REMPROP (F APVAL) 00002070
  216. 00002080
  217. 00002090
  218. COMMENT ((REDUCE FUNCTIONS WITH SYSTEM DEPENDENT PROPERTIES)) 00002100
  219. 00002110
  220. DEFLIST (( 00002120
  221. 00002130
  222. (INIT (LAMBDA NIL (PROG NIL 00002140
  223. (PTS (QUOTE NOCMP*) T) 00002150
  224. (RECLAIM) 00002160
  225. (REMPROP (QUOTE INIT) (QUOTE EXPR)) 00002200
  226. (RETURN (QUOTE ***))))) 00002210
  227. 00002220
  228. ) EXPR) 00002230
  229. 00002240
  230. (LAMBDA (U) (COMPILE (DEFLIST U (QUOTE EXPR)))) (( 00002250
  231. 00002260
  232. (PRINTTY (LAMBDA (U) 00002282
  233. (AND *NAT (PRINT U)))) 00002283
  234. 00002290
  235. (READCH* (LAMBDA NIL 00002300
  236. (SETQ CRCHAR* (READCH NIL)))) 00002310
  237. 00002320
  238. )) 00002330
  239. DEFINE ((
  240. (MKSTRING (LAMBDA (U)
  241. (LIST (QUOTE QUOTE) (COMPRESS (DELETE **SMARK (CDR U))))))
  242. ))
  243. COMMENT ((FUNCTIONS FOR MTS IMPLEMENTATION ONLY))
  244. DEFLIST (((PAUSE NORLIS) (CONT NORLIS)) STAT)
  245. DEFINE ((
  246. (PAUSE (LAMBDA NIL
  247. (PROG (Y Z)
  248. (COND ((BATCH) (RETURN NIL)))
  249. (PRINM (QUOTE ($$$CONT?$)))
  250. (COND ((YORN) (RETURN NIL)))
  251. (COND ((AND IFL* (NOT (EQ IFL* (CAR IPL*))))
  252. (SETQ IPL* (CONS IFL* IPL*))))
  253. (SETQ IFL* NIL)
  254. (SETQ Y *INT)
  255. (SETQ *INT T)
  256. (SETQ Z *ECHO)
  257. (SETQ *ECHO NIL)
  258. (RDS (OPEN (QUOTE GUSER) (QUOTE INPUT)))
  259. (BEGIN1 T)
  260. (SETQ *INT Y)
  261. (SETQ *ECHO Z)
  262. )))
  263. (REDMSG1 (LAMBDA (U V)
  264. (PROG NIL
  265. (PRINM (LIST (QUOTE SHOULD) U (QUOTE BE)
  266. (QUOTE DECLARED) V (QUOTE $$$?$)))
  267. (RETURN (YORN)) )))
  268. (PRINM (LAMBDA (U)
  269. (PROG (V)
  270. (WRS (OPEN (QUOTE SERCOM) (QUOTE OUTPUT)))
  271. (SETQ V U)
  272. A (PRINC (CAR V))
  273. (PRINC **BLANK)
  274. (COND ((SETQ V (CDR V)) (GO A)))
  275. (TERPRI)
  276. (WRS OFL*) )))
  277. (READM (LAMBDA NIL
  278. (PROG (U)
  279. (CLOSE (QUOTE GUSER))
  280. (RDS (OPEN (QUOTE GUSER) (QUOTE INPUT)))
  281. (SETQ U (READ))
  282. (RDS IFL*)
  283. (RETURN U) )))
  284. (YORN (LAMBDA NIL
  285. (PROG (U)
  286. A (SETQ U (READM))
  287. (COND ((EQ U (QUOTE Y)) (RETURN T))
  288. ((EQ U (QUOTE N)) (RETURN NIL)))
  289. (PRINM (QUOTE (ILLEGAL $$$RESPONSE.$ ENTER Y OR N)))
  290. (GO A) )))
  291. ))
  292. 00002340
  293. (LAMBDA (U) (COMPILE (DEFLIST U (QUOTE EXPR)))) (( 00002390
  294. 00002400
  295. (BEGIN (LAMBDA NIL (PROG NIL 00002410
  296. (OVOFF) 00002420
  297. (SETQ NOCMP* T) 00002430
  298. (SETQ *INT (NULL (BATCH)))
  299. (SETQ *ECHO (BATCH))
  300. (*WRS NIL)
  301. (SETQ ORIG* 0) 00002460
  302. (SETP) 00002470
  303. (SETQ *MODE (QUOTE ALGEBRAIC)) 00002480
  304. (COND ((NULL DATE*) (GO A0))) 00002490
  305. (VERBOS NIL) 00002500
  306. (EXCISE T) 00002510
  307. (EXITERR (BATCH))
  308. (EJECT) 00002521
  309. (PRIN1 (QUOTE $$$REDUCE2($)) 00002522
  310. (PRIN1 DATE*) 00002523
  311. (PRIN1 (QUOTE $$$) ...$)) 00002524
  312. (TERPRI) (SETQ DATE* NIL) 00002525
  313. A0 (SETQ IFL* NIL) 00002540
  314. (SETQ OFL* NIL) 00002550
  315. (RETURN (BEGIN1 NIL)))))
  316. 00002580
  317. )) 00002590
  318. 00002600
  319. 00002610
  320. COMMENT ((REDUCE FUNCTIONS DEFINED IN TERMS OF SYSTEM FUNCTIONS 00002620
  321. OF THE SAME NAME)) 00002630
  322. 00002640
  323. COMMENT ((THE FOLLOWING LIST IS USED BY EXPLODN1 DEFINED BELOW)) 00002650
  324. 00002660
  325. DEFLIST (((NASL* (((0 . $$$0$) (1 . $$$1$) (2 . $$$2$) (3 . $$$3$) 00002670
  326. (4 . $$$4$) (5 . $$$5$) (6 . $$$6$) (7 . $$$7$) 00002680
  327. (8 . $$$8$) (9 . $$$9$))))) SPECIAL) 00002690
  328. 00002700
  329. (LAMBDA (U) (COMPILE (DEFLIST U (QUOTE EXPR)))) (( 00002710
  330. 00002720
  331. (*EXPLODE (LAMBDA (U) (COND 00002730
  332. ((NUMBERP U) (EXPLODN U)) 00002740
  333. (T (EXPLODE U))))) 00002750
  334. 00002760
  335. (EXPLODN (LAMBDA (U) (COND 00002770
  336. ((ZEROP U) (LIST (QUOTE $$$0$))) 00002780
  337. ((MINUSP U) (CONS (QUOTE $$$-$) (EXPLODN (MINUS U)))) 00002790
  338. ((NOT (FIXP U)) (LIST 1 2 3 4 5 6 7 8 9 0 1 2)) 00002800
  339. (T (EXPLODN1 U))))) 00002810
  340. 00002820
  341. (EXPLODN1 (LAMBDA (U) (PROG (Z) 00002830
  342. A (COND ((ZEROP U) (RETURN Z))) 00002840
  343. (SETQ Z (CONS (CDR (ASSOC* (REMAINDER U 10) NASL*)) Z)) 00002850
  344. (SETQ U (QUOTIENT U 10)) 00002860
  345. (GO A)))) 00002870
  346. 00002880
  347. (ASSOC* (LAMBDA (U V) 00002890
  348. (COND ((NULL V) NIL) 00002900
  349. ((EQUAL U (CAAR V)) (CAR V)) 00002910
  350. (T (ASSOC* U (CDR V)))))) 00002920
  351. 00002930
  352. (*OPEN (LAMBDA (U V) (PROG2 (OPEN U NIL V) U)))
  353. 00002960
  354. (*RDS (LAMBDA (U) (COND 00002970
  355. ((NULL U) (RDS (QUOTE LISPIN))) 00002980
  356. (T (RDS U))))) 00002990
  357. 00003000
  358. (*WRS (LAMBDA (U)
  359. (PROG NIL
  360. (WRS (QUOTE LISPOUT))
  361. (COND (U (PROG2 (ASA NIL) (WRS U))))
  362. (OTLL (OTLLNG))
  363. (PTS (QUOTE LLENGTH*) (DIFFERENCE (OTLLNG) 7)))))
  364. )) 00003040
  365. 00003050
  366. LOSE ((ASSOC* REMK*))
  367. 00003070
  368. COMMENT ((STANDARD LISP FUNCTIONS NOT DEFINED IN LISP/360)) 00003080
  369. 00003090
  370. 00003100
  371. DEFINE (( 00003110
  372. 00003120
  373. (COMPRESS (LAMBDA (U) 00003130
  374. (PROG2 (COND ((DIGIT (CAR U)) 00003140
  375. (MAP U (FUNCTION (LAMBDA (J) (RNUMB (CAR J)))))) 00003150
  376. (T (MAP U (FUNCTION (LAMBDA (J) (RLIT (CAR J))))))) 00003160
  377. (MKATOM)))) 00003170
  378. 00003180
  379. (GTS (LAMBDA (U) ((LAMBDA (X) (COND 00003190
  380. ((NULL X) (ERROR (LIST (QUOTE GTS) U))) 00003200
  381. (T (CAR X)))) (GET U (QUOTE SPECIAL))))) 00003210
  382. 00003220
  383. (PTS (LAMBDA (U V) (CAR ((LAMBDA (X) (COND 00003230
  384. ((NULL X) (PUT U (QUOTE SPECIAL) (LIST V))) 00003240
  385. (T (RPLACA X V)))) (GET U (QUOTE SPECIAL)))))) 00003250
  386. 00003260
  387. (PUT (LAMBDA (U V W) 00003270
  388. (PROG2 (DEFLIST (LIST (LIST U W)) V) W))) 00003280
  389. 00003290
  390. (*EVAL (LAMBDA (U) ((LAMBDA (X) (COND 00003300
  391. (X (CAR X)) 00003310
  392. (T (EVAL U ALIST)))) 00003320
  393. (GET* U (QUOTE SPECIAL))))) 00003330
  394. 00003340
  395. (PAIRX (LAMBDA (U V) 00003341
  396. (COND ((AND (NULL U) (NULL V)) NIL) 00003342
  397. ((OR (NULL U) (NULL V)) (ERROR (QUOTE (PAIR MISMATCH)))) 00003343
  398. (T (CONS (CONS (CAR U) (CAR V)) (PAIRX (CDR U) (CDR V))))))) 00003344
  399. 00003345
  400. )) 00003350
  401. 00003360
  402. COMMENT ((REDEFINING SOME FUNCTIONS EXCISED FROM THE COMPILER)) 00003370
  403. 00003380
  404. DEFINE (( 00003390
  405. 00003400
  406. (MAP (LAMBDA (U *PI*) 00003410
  407. (PROG NIL 00003420
  408. A (COND ((NULL U) (RETURN NIL))) 00003430
  409. (*PI* U) 00003440
  410. (SETQ U (CDR U)) 00003450
  411. (GO A)))) 00003460
  412. 00003470
  413. (MAPCON (LAMBDA (U *PI*) 00003480
  414. (COND ((NULL U) NIL) 00003490
  415. (T (NCONC (*PI* U) (MAPCON (CDR U) *PI*)))))) 00003500
  416. 00003510
  417. (REVERSE (LAMBDA (U) 00003520
  418. (PROG (V) 00003530
  419. A (COND ((NULL U) (RETURN V))) 00003540
  420. (SETQ V (CONS (CAR U) V)) 00003550
  421. (SETQ U (CDR U)) 00003560
  422. (GO A)))) 00003570
  423. 00003580
  424. (SUBST (LAMBDA (U V W) 00003590
  425. (COND ((NULL W) NIL) 00003600
  426. ((EQUAL V W) U) 00003610
  427. ((ATOM W) W) 00003620
  428. (T (CONS (SUBST U V (CAR W)) (SUBST U V (CDR W))))))) 00003630
  429. 00003640
  430. )) 00003650
  431. 00003660
  432. COMMENT (ARRAY HANDLING ROUTINES) 00003670
  433. 00003680
  434. DEFINE (( 00003690
  435. 00003700
  436. (*ARRAY (LAMBDA (U) 00003710
  437. (MAP U (FUNCTION (LAMBDA (J) 00003720
  438. (PUT (CAAR J) (QUOTE ARRAY) (MKARRAY (CDAR J)))))))) 00003730
  439. 00003740
  440. (MKARRAY (LAMBDA (U) 00003750
  441. (COND ((NULL U) NIL) 00003760
  442. (T (ARLIST (CDR U) (CAR U)))))) 00003770
  443. 00003772
  444. (ARLIST (LAMBDA (U N) 00003774
  445. (COND ((ZEROP N) NIL) (T (CONS (MKARRAY U) (ARLIST U (SUB1 N))))))) 00003776
  446. 00003780
  447. (GETEL (LAMBDA (U) 00003790
  448. (GETEL1 (GET (CAR U) (QUOTE ARRAY)) (CDR U)))) 00003800
  449. 00003810
  450. (GETEL1 (LAMBDA (U V) 00003820
  451. (COND ((NULL V) U) 00003830
  452. (T (GETEL1 (NTH U (ADD1 (CAR V))) (CDR V)))))) 00003840
  453. 00003850
  454. (SETEL (LAMBDA (U V) 00003860
  455. (PROG (X N) 00003870
  456. (SETQ X (REVERSE (CDR U))) 00003880
  457. (SETQ N (CAR X)) 00003890
  458. (SETQ X (GETEL1 (GET (CAR U) (QUOTE ARRAY)) 00003900
  459. (REVERSE (CDR X)))) 00003910
  460. A (COND ((EQUAL N 0) (RETURN (RPLACA X V)))) 00003920
  461. (SETQ N (SUB1 N)) 00003930
  462. (SETQ X (CDR X)) 00003940
  463. (GO A)))) 00003950
  464. 00003960
  465. )) 00003970
  466. 00003980
  467. COMMENT ((I O HANDLING ROUTINES)) 00003990
  468. 00004000
  469. DEFINE (( 00004010
  470. 00004020
  471. (IN (LAMBDA (U) 00004030
  472. (INOUT U (QUOTE INPUT)))) 00004040
  473. 00004050
  474. (OUT (LAMBDA (U) 00004060
  475. (INOUT U (QUOTE OUTPUT)))) 00004070
  476. 00004080
  477. (INOUT (LAMBDA (U V) 00004090
  478. (PROG (ECHO INT) 00004100
  479. (COND ((NOT (ATOMLIS U)) (REDERR (QUOTE (ILLEGAL FILE NAME)))))
  480. (SETQ ECHO *ECHO) 00004110
  481. (SETQ INT *INT) 00004120
  482. A (COND ((NULL U) (GO E)) 00004130
  483. ((EQ V (QUOTE OUTPUT)) (GO C)) 00004140
  484. ((EQ (CAR U) (QUOTE T)) (GO L))) 00004150
  485. (SETQ IFL* (CAR U)) 00004160
  486. (COND ((MEMBER IFL* IPL*) (GO B))) 00004170
  487. (OPEN IFL* V) 00004180
  488. (SETQ IPL* (CONS IFL* IPL*)) 00004190
  489. B (RDS IFL*) 00004200
  490. (SETQ *ECHO T) 00004210
  491. (SETQ *INT NIL) 00004220
  492. F (BEGIN1 T)
  493. (SETQ U (CDR U)) 00004240
  494. (GO A) 00004250
  495. C (COND ((EQ (CAR U) (QUOTE T)) (GO M))) 00004260
  496. (SETQ OFL* (CAR U)) 00004270
  497. (COND ((MEMBER OFL* OPL*) (GO D))) 00004280
  498. (OPEN OFL* V) 00004290
  499. (SETQ OPL* (CONS OFL* OPL*)) 00004300
  500. D (WRS OFL*) 00004310
  501. E (SETQ *ECHO ECHO) 00004320
  502. (SETQ *INT INT) 00004330
  503. (RETURN NIL) 00004340
  504. L (SETQ IFL* NIL) 00004350
  505. (RDS NIL) 00004360
  506. (SETQ *INT (NOT (BATCH)))
  507. (SETQ *ECHO (BATCH))
  508. (GO F)
  509. M (SETQ OFL* NIL) 00004380
  510. (WRS NIL) 00004390
  511. (GO E) 00004400
  512. ))) 00004410
  513. 00004420
  514. (SHUT (LAMBDA (U) 00004430
  515. (PROG (X) 00004440
  516. A (COND ((NULL U) (RETURN NIL))) 00004450
  517. (SETQ X (CAR U)) 00004460
  518. (COND ((MEMBER X OPL*) (GO B)) 00004470
  519. ((NOT (MEMBER X IPL*)) 00004480
  520. (REDERR (CONS X (QUOTE (NOT OPEN)))))) 00004490
  521. (CLOSE X) 00004500
  522. (SETQ IPL* (DELETE X IPL*)) 00004510
  523. (COND ((NOT (EQUAL X IFL*)) (GO C))) 00004520
  524. (RDS (SETQ IFL* (COND (IPL* (CAR IPL*)) (T NIL)))) 00004530
  525. (GO C) 00004540
  526. B (SETQ OPL* (DELETE X OPL*)) 00004550
  527. (CLOSE X) 00004560
  528. (COND ((NOT (EQ X OFL*)) (GO C))) 00004570
  529. (SETQ OFL* NIL) 00004580
  530. (WRS NIL) 00004590
  531. C (SETQ U (CDR U)) 00004600
  532. (GO A)))) 00004610
  533. 00004620
  534. )) 00004630
  535. 00004640
  536. DEFLIST (((SHUT RLIS) (IN RLIS) (OUT RLIS)) STAT) 00004650
  537. 00004660
  538. 00004670
  539. COMMENT ((INITIALIZATION OF INPUT AND OUTPUT CHARACTER STRINGS)) 00004680
  540. 00004690
  541. CSET (SWITCH* ( 00004700
  542. ($$*$* NIL *SEMICOL* NIL) 00004710
  543. ($$$;$ NIL *SEMICOL* NIL) 00004720
  544. ($$$+$ NIL PLUS NIL $$$ + $) 00004730
  545. ($$$-$ NIL MINUS NIL $$$ - $) 00004740
  546. ($$$*$ $$$*$ TIMES EXPT) 00004750
  547. ($$$/$ NIL QUOTIENT NIL) 00004760
  548. ($$$=$ NIL EQUAL NIL) 00004770
  549. ($$$,$ NIL *COMMA* NIL) 00004780
  550. ($$$($ NIL *LPAR* NIL) 00004790
  551. ($$$)$ NIL *RPAR* NIL) 00004800
  552. ($$$.$ NIL CONS NIL) 00004810
  553. ($$$:$ $$$=$ *COLON* SETQ) 00004820
  554. ($$$<$ $$$=$ LESSP LESSEQ) 00004830
  555. ($$$>$ $$$=$ GREATERP GREATEQ) 00004840
  556. ($$$&$ NIL AND NIL)
  557. ($$$|$ NIL OR NIL)
  558. ($$$~$ $$$=$ NOT UNEQ)
  559. )) 00004850
  560. 00004860
  561. 00004870
  562. COMMENT ((E N D O F R E D U C E P R E P R O C E S S O R)) 00004880
  563. 00004890
  564. 00004900
  565. 00004910
  566. 00010000
  567. 00010010
  568. 00010020
  569. COMMENT ((R E D U C E M A I N P R O G R A M)) 00010030
  570. 00010040
  571. (LAMBDA (U) (MAP U (FUNCTION (LAMBDA (J) (PTS (CAR J) NIL))))) ((*FORT 00010050
  572. *ECHO *INT PRECLIS* ORIG* POSN* *NAT YCOORD* YMIN* YMAX* *LIST COUNT* 00010060
  573. *CARDNO ECHO* FORTVAR* LLENGTH* PLINE* CURSYM* *MODE MATP* DEFN* 00010070
  574. SEMIC* SYMFG* *MSG TMODE* *SQVAR* PROGRAM* PROGRAML* DIAG* VARS* 00010080
  575. CRCHAR* IFL* OFL* IPL* OPL* PRI* ERFG*)) 00010090
  576. 00010100
  577. (LAMBDA (U) (MAP U (FUNCTION (LAMBDA (J) (PTS (CAAR J) (CADAR J)))))) 00010110
  578. (((*NAT T) (COUNT* 1) (*CARDNO 20) (ORIG* 0) (LLENGTH* 67) (*SQVAR* (T 00010120
  579. )))) 00010130
  580. 00010140
  581. DEFINE (( 00010150
  582. 00010160
  583. (FLAGP** (LAMBDA (U V) 00010170
  584. (AND (ATOM U) (NOT (NUMBERP U)) (FLAGP U V)))) 00010180
  585. 00010190
  586. (GET* (LAMBDA (U V) 00010200
  587. (COND ((NUMBERP U) NIL) (T (GET U V))))) 00010210
  588. 00010220
  589. (EQCAR (LAMBDA (U V) 00010230
  590. (AND (NOT (ATOM U)) (EQ (CAR U) V)))) 00010240
  591. 00010250
  592. (MKPREC (LAMBDA NIL 00010260
  593. (PROG (X Y) 00010270
  594. (SETQ X (CONS (QUOTE SETQ) PRECLIS*)) 00010280
  595. (SETQ Y 2) 00010290
  596. A (COND ((NULL X) (RETURN NIL))) 00010300
  597. (PUT (CAR X) (QUOTE INFIX) Y) 00010310
  598. (SETQ X (CDR X)) 00010320
  599. (SETQ Y (ADD1 Y)) 00010330
  600. (GO A)))) 00010340
  601. 00010350
  602. )) 00010360
  603. 00010370
  604. PTS (PRECLIS* (AND OR MEMBER EQUAL UNEQ EQ GREATEQ GREATERP LESSEQ 00010380
  605. LESSP PLUS MINUS TIMES QUOTIENT EXPT CONS)) 00010390
  606. 00010400
  607. (LAMBDA NIL (PROG (W X Y Z) (MKPREC) (SETQ X SWITCH*) (MAP X (FUNCTION 00010410
  608. (LAMBDA (J) (PUT (CAAR J) (QUOTE SWITCH*) (CDAR J))))) A (COND ((NULL 00010420
  609. X) (RETURN NIL))) (SETQ W (CDAR X)) (PUT (CADR W) (QUOTE PRTCH) (LIST 00010430
  610. (CAAR X) (CAAR X))) (COND ((CAR (SETQ Y (CDDR W))) (PROG2 (SETQ Z 00010440
  611. (COMPRESS (LIST (CAAR X)(CAR W))))(PUT (CAR Y)(QUOTE PRTCH) (LIST Z Z) 00010450
  612. )))) (COND ((NULL (CDR Y)) (GO B)) ((CADR Y) (RPLACA (GET (CADR W) 00010460
  613. (QUOTE PRTCH))(CADR Y))))(COND ((CDDR Y)(RPLACA (GET (CAR Y) (QUOTE 00010470
  614. PRTCH)) (CADDR Y)))) B (SETQ X (CDR X)) (GO A))) NIL 00010480
  615. 00010490
  616. DEFLIST (((MINUS (PLUS . MINUS))) ALT) 00010500
  617. 00010510
  618. DEFINE (( 00010520
  619. 00010530
  620. (RVLIS (LAMBDA NIL 00010540
  621. (PROG (X) 00010550
  622. A (SETQ X (CONS (SCAN) X)) 00010560
  623. (COND 00010570
  624. ((OR (FLAGP** (SCAN) (QUOTE DELIM)) 00010580
  625. (MEMBER CURSYM* (QUOTE (CLEAR LET MATCH SAVEAS)))) 00010590
  626. (RETURN X)) 00010600
  627. ((NOT (EQ CURSYM* (QUOTE *COMMA*))) (CURERR NIL T))) 00010610
  628. (GO A)))) 00010620
  629. 00010630
  630. (INFIXFN (LAMBDA NIL 00010640
  631. (PROG (X) 00010650
  632. (SETQ X (RVLIS)) 00010660
  633. (COND 00010670
  634. ((EQ *MODE (QUOTE ALGEBRAIC)) 00010680
  635. (*APPLY (QUOTE OPERATOR) (LIST X)))) 00010690
  636. (SETQ PRECLIS* (APPEND X PRECLIS*)) 00010700
  637. (MKPREC)))) 00010710
  638. 00010720
  639. (PRECEDFN (LAMBDA NIL 00010730
  640. (PROG (W X Y Z) 00010740
  641. (SETQ X (RVLIS)) 00010750
  642. (SETQ Y (CAR X)) 00010760
  643. (SETQ X (CADR X)) 00010770
  644. (SETQ PRECLIS* (DELETE X PRECLIS*)) 00010780
  645. (SETQ W PRECLIS*) 00010790
  646. A (COND ((NULL W) (REDERR (CONS Y (QUOTE (NOT FOUND))))) 00010800
  647. ((EQ Y (CAR W)) (GO B))) 00010810
  648. (SETQ Z (CONS (CAR W) Z)) 00010820
  649. (SETQ W (CDR W)) 00010830
  650. (GO A) 00010840
  651. B (SETQ PRECLIS* 00010850
  652. (NCONC (REVERSE Z) (CONS (CAR W) (CONS X (CDR W))))) 00010860
  653. (MKPREC)))) 00010870
  654. 00010880
  655. )) 00010890
  656. 00010900
  657. DEFINE (( 00010910
  658. 00010920
  659. (MATHPRINT (LAMBDA (L) 00010930
  660. (PROG NIL (MAPRIN L) (TERPRI*)))) 00010940
  661. 00010950
  662. (MAPRIN (LAMBDA (U) 00010960
  663. (MAPRINT U 0))) 00010970
  664. 00010980
  665. (MAPRINT (LAMBDA (L P) 00010990
  666. (PROG (X Y) 00011000
  667. (COND ((NULL L) (RETURN NIL)) 00011010
  668. ((ATOM L) (GO B)) 00011020
  669. ((NOT (ATOM (CAR L))) (MAPRINT (CAR L) P)) 00011030
  670. ((SETQ X (GET* (CAR L) (QUOTE INFIX))) (GO A)) 00011040
  671. ((SETQ X (GET* (CAR L) (QUOTE SPECPRN))) 00011050
  672. (RETURN (*APPLY X (LIST (CDR L))))) 00011060
  673. (T (PRINC* (CAR L)))) 00011070
  674. (PRINC* **LPAR) 00011080
  675. (INPRINT (QUOTE *COMMA*) 0 (CDR L)) 00011090
  676. E (RETURN (PRINC* **RPAR)) 00011100
  677. B (COND ((NUMBERP L) (GO D)) 00011110
  678. ((SETQ X (GET L (QUOTE OLDNAME))) 00011120
  679. (RETURN (PRINC* X)))) 00011130
  680. C (RETURN (PRINC* L)) 00011140
  681. D (COND ((NOT (MINUSP L)) (GO C))) 00011150
  682. (PRINC* **LPAR) 00011160
  683. (PRINC* L) 00011170
  684. (GO E) 00011180
  685. A (SETQ P (NOT (GREATERP X P))) 00011190
  686. (COND ((NOT P) (GO G))) 00011200
  687. (SETQ Y ORIG*) 00011210
  688. (PRINC* **LPAR) 00011220
  689. (COND ((LESSP POSN* 15) (SETQ ORIG* POSN*))) 00011230
  690. G (INPRINT (CAR L) X (CDR L)) 00011240
  691. (COND ((NOT P) (RETURN NIL))) 00011250
  692. (PRINC* **RPAR) 00011260
  693. (SETQ ORIG* Y)))) 00011270
  694. 00011280
  695. (INPRINT (LAMBDA (OP P L) 00011290
  696. (PROG NIL 00011300
  697. (COND ((FLAGP OP (QUOTE UNIP)) (GO A))) 00011310
  698. (MAPRINT (CAR L) P) 00011320
  699. (GO C) 00011330
  700. A (COND ((NULL L) (RETURN NIL)) 00011340
  701. ((AND (NOT (ATOM (CAR L))) 00011350
  702. (GET* (CAAR L) (QUOTE ALT)) 00011360
  703. (EQ OP (CAR (GET* (CAAR L) (QUOTE ALT))))) 00011370
  704. (GO B))) 00011380
  705. (OPRIN OP) 00011390
  706. B (MAPRINT (CAR L) P) 00011400
  707. (COND ((OR (NOT *NAT) (NOT (EQ OP (QUOTE EXPT)))) (GO C))) 00011410
  708. (SETQ YCOORD* (SUB1 YCOORD*)) 00011420
  709. (SETQ YMIN* (*EVAL (LIST (QUOTE MIN) YMIN* YCOORD*))) 00011430
  710. C (SETQ L (CDR L)) 00011440
  711. (GO A)))) 00011450
  712. 00011460
  713. )) 00011470
  714. 00011480
  715. DEFINE (( 00011490
  716. 00011500
  717. (OPRIN (LAMBDA (OP) 00011510
  718. ((LAMBDA(X) 00011520
  719. (COND ((NULL X) (PRINC* OP)) 00011530
  720. (*FORT (PRINC* (CADR X))) 00011540
  721. (*NAT 00011550
  722. (COND ((EQ OP (QUOTE EXPT)) 00011560
  723. (PROG NIL 00011570
  724. (SETQ YCOORD* (ADD1 YCOORD*)) 00011580
  725. (SETQ YMAX* 00011590
  726. (*EVAL 00011600
  727. (LIST (QUOTE MAX) YMAX* YCOORD*))))) 00011610
  728. ((AND *LIST 00011620
  729. (MEMBER OP (QUOTE (PLUS MINUS QUOTIENT)))) 00011630
  730. (PROG NIL (CLOSELINE) (TERPRI) (PPRINT (CAR X)))) 00011640
  731. (T (PPRINT (CAR X))))) 00011650
  732. (T (PRINC (CAR X))))) 00011660
  733. (GET OP (QUOTE PRTCH))))) 00011670
  734. 00011680
  735. (PRINC* (LAMBDA (U) 00011690
  736. (COND (*NAT (PPRINT U)) 00011700
  737. ((NULL *FORT) (PRINC U)) 00011710
  738. (T 00011720
  739. (PROG NIL 00011730
  740. (COND 00011740
  741. ((AND (EQUAL COUNT* *CARDNO) 00011750
  742. (OR (EQ U **PLUSS) (EQ U **DASH))) 00011760
  743. (GO B)) 00011770
  744. ((NOT 00011780
  745. (GREATERP (SETQ POSN* 00011790
  746. (PLUS POSN* (LENGTH (EXPLODE U)))) 00011800
  747. 69)) 00011810
  748. (GO A))) 00011820
  749. (TERPRI) 00011830
  750. (SPACES 5) 00011840
  751. (PRINC (QUOTE X)) 00011850
  752. (SETQ POSN* (PLUS 6 (LENGTH (EXPLODE U)))) 00011860
  753. (SETQ COUNT* (ADD1 COUNT*)) 00011870
  754. A (RETURN (COND (ECHO* (PRINC U)) (T NIL))) 00011880
  755. B (TERPRI) 00011890
  756. (SETQ POSN* 0)
  757. (COND ((NULL FORTVAR*) (GO A)))
  758. (SPACES 6) 00011900
  759. (SETQ POSN* 6)
  760. (PRINC* FORTVAR*)
  761. (OPRIN (QUOTE EQUAL)) 00011920
  762. (PRINC* FORTVAR*)
  763. (SETQ COUNT* 1) 00011940
  764. (GO A)))))) 00011950
  765. 00011960
  766. (TERPRI* (LAMBDA NIL 00011970
  767. (COND (*NAT (PROG NIL (CLOSELINE) (COND (ECHO* (TERPRI))))) 00011980
  768. (*FORT (COND ((ZEROP POSN*) NIL) 00011990
  769. (T (PROG NIL (TERPRI) (SETQ COUNT* 1) 00011992
  770. (SETQ POSN* 0))))) 00011994
  771. (T (TERPRI))))) 00012000
  772. 00012010
  773. (PPRINT (LAMBDA (U) 00012020
  774. (PROG (M N) 00012030
  775. (SETQ N (LENGTH (EXPLODE U))) 00012040
  776. (COND ((GREATERP N LLENGTH*) (GO A1))) 00012050
  777. C (SETQ M (PLUS POSN* N)) 00012060
  778. (COND ((AND (GREATERP M LLENGTH*) (NOT (TERPRI*))) (GO C))) 00012070
  779. (SETQ PLINE* 00012080
  780. (CONS (CONS (CONS (CONS POSN* M) YCOORD*) U) PLINE*)) 00012090
  781. A (RETURN (SETQ POSN* M)) 00012100
  782. A1 (TERPRI*) 00012110
  783. (PRINC U) 00012120
  784. (RETURN (SETQ POSN* (REMAINDER N LLENGTH*)))))) 00012130
  785. 00012140
  786. (CLOSELINE (LAMBDA NIL 00012150
  787. (PROG (N) 00012160
  788. (COND ((OR (NULL PLINE*) (NULL ECHO*)) (GO C))) 00012170
  789. (SETQ N YMAX*) 00012180
  790. (SETQ PLINE* (REVERSE PLINE*)) 00012190
  791. A (SCPRINT PLINE* N) 00012200
  792. (COND ((EQUAL N YMIN*) (GO B))) 00012210
  793. (TERPRI) 00012220
  794. (SETQ N (SUB1 N)) 00012230
  795. (GO A) 00012240
  796. B (COND ((EQ ECHO* (QUOTE RESULT)) (TERPRI))) 00012250
  797. C (SETP)))) 00012260
  798. 00012270
  799. (SCPRINT (LAMBDA (U N) 00012280
  800. (PROG (M) 00012290
  801. (SETQ POSN* 0) 00012300
  802. A (COND ((NULL U) (RETURN NIL)) 00012310
  803. ((NOT (EQUAL (CDAAR U) N)) (GO B)) 00012320
  804. ((NOT (MINUSP (SETQ M (DIFFERENCE (CAAAAR U) POSN*)))) 00012330
  805. (SPACES M))) 00012340
  806. (PRINC (CDAR U)) 00012350
  807. (SETQ POSN* (CDAAAR U)) 00012360
  808. B (SETQ U (CDR U)) 00012370
  809. (GO A)))) 00012380
  810. 00012390
  811. (SPACES* (LAMBDA (N) 00012400
  812. (COND (*NAT (SETQ POSN* (PLUS N POSN*))) (T (SPACES N))))) 00012410
  813. 00012420
  814. )) 00012430
  815. 00012440
  816. DEFINE (( 00012450
  817. 00012460
  818. (SETP (LAMBDA NIL 00012470
  819. (PROG NIL 00012480
  820. (SETQ PLINE* NIL) 00012490
  821. (SETQ POSN* ORIG*) 00012500
  822. (SETQ YMAX* 0) 00012510
  823. (SETQ YMIN* 0) 00012520
  824. (SETQ YCOORD* 0)))) 00012530
  825. 00012540
  826. )) 00012550
  827. 00012560
  828. FLAG ((MINUS NOT) UNIP) 00012570
  829. 00012580
  830. DEFINE (( 00012590
  831. 00012600
  832. (MREAD* (LAMBDA (J) 00012610
  833. (PROG2 (SCAN) (MREAD J)))) 00012620
  834. 00012630
  835. (MREAD (LAMBDA (J) 00012640
  836. (PROG (U V W W1 X Y Z) 00012650
  837. (SETQ Z -1) 00012660
  838. A (SETQ V CURSYM*) 00012670
  839. (COND ((OR (NOT (ATOM V)) (NUMBERP V)) (GO B)) 00012680
  840. ((FLAGP V (QUOTE DELIM)) (GO ERR1)) 00012682
  841. ((EQ V (QUOTE *LPAR*)) (GO E)) 00012690
  842. ((AND (EQ V (QUOTE *RPAR*)) (NULL U)) (RETURN NIL))) 00012700
  843. (SETQ X (GET V (QUOTE INFIX))) 00012710
  844. B0 (COND ((SETQ W (GET* V (QUOTE ISTAT))) (GO L))) 00012720
  845. B (SETQ W (SCAN)) 00012750
  846. BX (SETQ Y NIL) 00012760
  847. (COND ((OR (NOT (ATOM W)) (NUMBERP W)) (GO B2)) 00012762
  848. ((FLAGP W (QUOTE DELIM)) (GO ENDD)) 00012764
  849. ((EQ W (QUOTE *LPAR*)) (GO E2)) 00012770
  850. ((EQ W (QUOTE *RPAR*)) (GO END0)) 00012780
  851. (U (GO B1))) 00012790
  852. BY (COND 00012800
  853. ((AND J 00012870
  854. (EQ W (QUOTE *COMMA*)) 00012880
  855. (NOT (MEMBER J (QUOTE (MAT PAREN FUNC))))) 00012890
  856. (RETURN V))) 00012900
  857. B1 (SETQ Y (GET W (QUOTE INFIX))) 00012910
  858. B2 (COND ((NULL X) (GO SYM)) 00012920
  859. ((NOT (FLAGP V (QUOTE UNARY))) (GO ERR3))) 00012930
  860. C (SETQ Z X) 00012940
  861. (SETQ U (CONS (LIST V) U)) 00012950
  862. (SETQ V W) 00012960
  863. (SETQ X Y) 00012970
  864. (COND ((OR (NOT (ATOM V)) (NUMBERP V)) (GO B)) (T (GO B0))) 00012980
  865. SYM (COND ((NULL Y) (GO M)) 00012990
  866. ((AND (NULL W1) 00013000
  867. (SETQ W1 (GET W (QUOTE ALT))) 00013010
  868. (SETQ W (CAR W1))) 00013020
  869. (GO B1))) 00013030
  870. SYM1 (COND ((OR (NULL Z) (LESSP Y Z)) (GO H)) 00013040
  871. ((OR (GREATERP Y Z) (FLAGP W (QUOTE BINARY))) (GO G))) 00013050
  872. (SETQ U (CONS (ACONC (CAR U) V) (CDR U))) 00013060
  873. (GO G1) 00013070
  874. E (SETQ V 00013080
  875. (MREAD* 00013090
  876. (COND ((EQ J (QUOTE MAT)) (QUOTE FUNC)) 00013100
  877. (T (QUOTE PAREN))))) 00013110
  878. (GO B) 00013130
  879. E2 (COND ((EQ V (QUOTE MAT)) 00013140
  880. (SETQ V (CONS V (REMCOMMA (MREAD* (SETQ MATP* V)))))) 00013150
  881. ((AND (ATOM V) (GET V (QUOTE UNARY)) 00013152
  882. (SETQ W (CAR (MREAD* (QUOTE FUNC))))) (GO C)) 00013154
  883. ((OR (ATOM V) (EQ *MODE (QUOTE SYMBOLIC))) 00013160
  884. (SETQ V (CONS V (MREAD* (QUOTE FUNC))))) 00013170
  885. (T (GO ERR4))) 00013180
  886. (SETQ X NIL) 00013185
  887. (GO B) 00013190
  888. G (SETQ U (CONS (LIST W V) U)) 00013200
  889. (SETQ Z Y) 00013210
  890. G1 (COND (W1 (GO G2))) 00013220
  891. (SCAN) 00013230
  892. G3 (SETQ X NIL) 00013232
  893. (GO A) 00013240
  894. G2 (SETQ CURSYM* (CDR W1)) 00013250
  895. (SETQ W1 NIL) 00013260
  896. (GO G3) 00013270
  897. H (SETQ V (ACONC (CAR U) V)) 00013280
  898. (SETQ U (CDR U)) 00013290
  899. (COND ((AND (NULL U) (SETQ Z 0)) (GO BY))) 00013300
  900. (SETQ Z (GET (CAAR U) (QUOTE INFIX))) 00013310
  901. (GO SYM1) 00013320
  902. L (SETQ V (*APPLY W NIL)) 00013330
  903. (SETQ W CURSYM*) 00013340
  904. (GO BX) 00013350
  905. M (COND ((NUMBERP V) (GO ERR4)) 00013360
  906. ((PROGVR V) 00013370
  907. (LPRIM* 00013380
  908. (APPEND (QUOTE (PROGRAM VARIABLE)) 00013390
  909. (CONS V 00013400
  910. (QUOTE (USED AS OPERATOR))))))) 00013410
  911. (GO C) 00013420
  912. END0 (COND ((NULL J) (GO ERR21)) (T (GO END2))) 00013430
  913. ENDD (COND ((MEMBER J (QUOTE (MAT PAREN FUNC))) (GO ERR22))) 00013440
  914. END2 (COND (X (GO ERR1))) 00013450
  915. END1 (COND 00013460
  916. ((NULL U) 00013470
  917. (RETURN (COND ((EQ J (QUOTE FUNC)) (REMCOMMA V)) (T V))))) 00013480
  918. (SETQ V (ACONC (CAR U) V)) 00013490
  919. (SETQ U (CDR U)) 00013500
  920. (GO END1) 00013510
  921. ERR1 (CURERR (QUOTE (SYNTAX ERROR)) NIL) 00013520
  922. ERR21 00013530
  923. (CURERR (QUOTE (TOO MANY RIGHT PARENTHESES)) NIL) 00013540
  924. ERR22 00013550
  925. (CURERR (QUOTE (TOO FEW RIGHT PARENTHESES)) NIL) 00013560
  926. ERR3 (CURERR (QUOTE (REDUNDANT OPERATOR)) 1) 00013570
  927. ERR4 (CURERR (QUOTE (MISSING OPERATOR)) NIL)))) 00013580
  928. 00013590
  929. (ACONC (LAMBDA (U V) 00013600
  930. (NCONC U (LIST V)))) 00013610
  931. 00013620
  932. (REMCOMMA (LAMBDA (U) 00013630
  933. (COND ((EQCAR U (QUOTE *COMMA*)) (CDR U)) (T (LIST U))))) 00013640
  934. 00013650
  935. (SCAN (LAMBDA NIL 00013660
  936. (PROG (X Y) 00013670
  937. (COND ((EQ CURSYM* (QUOTE *SEMICOL*)) (TERPRI*))) 00013680
  938. A (COND ((EQ CRCHAR* **BLANK) (GO L)) 00013690
  939. ((EQ CRCHAR* **EOF) (GO EOF))
  940. ((DIGIT CRCHAR*) (GO G)) 00013700
  941. ((LITER CRCHAR*) (GO E)) 00013710
  942. ((EQ CRCHAR* **XMARK) (GO E0)) 00013720
  943. ((EQ CRCHAR* **QMARK) (GO P)) 00013730
  944. ((EQ CRCHAR* **SMARK) (RETURN (COMM1 NIL))) 00013740
  945. ((NULL (SETQ X (GET* CRCHAR* (QUOTE SWITCH*)))) 00013750
  946. (GO B)) 00013760
  947. ((EQ (SETQ Y (CADR X)) (QUOTE *SEMICOL*)) (GO J)) 00013770
  948. ((EQ (READCH*) (CAR X)) (GO K))) 00013780
  949. C (SETQ CURSYM* (CADR X)) 00013790
  950. D (COND ((OR ECHO* *NAT) (SYMPRI CURSYM*)))
  951. (COND 00013810
  952. ((SETQ X (GET* CURSYM* (QUOTE NEWNAME))) (SETQ CURSYM* X))) 00013820
  953. D1 (RETURN CURSYM*) 00013830
  954. E0 (READCH*) 00013840
  955. E (SETQ Y (CONS CRCHAR* Y)) 00013850
  956. (COND 00013860
  957. ((OR (DIGIT (READCH*)) (LITER CRCHAR*)) (GO E)) 00013870
  958. ((EQ CRCHAR* **XMARK) (GO E0))) 00013880
  959. (GO H) 00013890
  960. G (SETQ Y (CONS CRCHAR* Y)) 00013900
  961. (SETQ X CRCHAR*) 00013910
  962. (COND 00013920
  963. ((OR (DIGIT (READCH*)) 00013930
  964. (EQ CRCHAR* **DOT) 00013940
  965. (EQ CRCHAR* (QUOTE E)) 00013950
  966. (EQ X (QUOTE E))) 00013960
  967. (GO G))) 00013970
  968. H (SETQ CURSYM* (COMPRESS (REVERSE Y))) 00013980
  969. (GO D) 00013990
  970. J (SETQ SEMIC* CRCHAR*) 00014000
  971. (SETQ CRCHAR* **BLANK) 00014010
  972. (GO C) 00014020
  973. K (READCH*) 00014030
  974. (SETQ CURSYM* (CADDR X)) 00014040
  975. (GO D) 00014050
  976. B (COND ((EQ CRCHAR* **ESC) (ERROR **ESC)) 00014060
  977. (Y 00014070
  978. (CURERR (CONS CRCHAR* (QUOTE (INVALID CHARACTER))) 00014080
  979. NIL))) 00014090
  980. (SETQ CURSYM* CRCHAR*) 00014100
  981. (READCH*) 00014110
  982. (GO D) 00014120
  983. L (READCH*) 00014130
  984. (GO A) 00014140
  985. P (SETQ CURSYM* (LIST (QUOTE QUOTE) (READ))) 00014150
  986. (READCH*) 00014160
  987. (COND ((OR ECHO* *NAT) (MAPRIN CURSYM*)))
  988. (GO D1)
  989. EOF (SETQ CURSYM* (QUOTE END))
  990. (SETQ CRCHAR* **SEMICOL)
  991. (GO D) )))
  992. 00014190
  993. )) 00014200
  994. 00014210
  995. DEFINE (( 00014220
  996. 00014230
  997. (LPRI (LAMBDA (U) 00014240
  998. (PROG NIL 00014250
  999. A (COND ((NULL U) (RETURN NIL))) 00014260
  1000. (PRINC* (CAR U)) 00014270
  1001. (SPACES* 1) 00014280
  1002. (SETQ U (CDR U)) 00014290
  1003. (GO A)))) 00014300
  1004. 00014310
  1005. (LPRIE (LAMBDA (U X) 00014320
  1006. (PROG NIL (SETQ ERFG* T) (LPRIW U X (QUOTE *****))))) 00014330
  1007. 00014340
  1008. (REDERR (LAMBDA (U) 00014350
  1009. (PROG2 (LPRIE U T) (ERROR*)))) 00014360
  1010. 00014370
  1011. (LPRIW (LAMBDA (U X Y) 00014380
  1012. (PROG (V W) 00014390
  1013. (COND ((AND OFL* (OR *FORT (NOT *NAT))) (GO D))) 00014392
  1014. (TERPRI*) 00014400
  1015. A (SETQ V U) 00014410
  1016. (PRINC Y) 00014420
  1017. (PRINC **BLANK) 00014430
  1018. B (COND ((NULL V) (GO C))) 00014440
  1019. (PRINC (CAR V)) 00014450
  1020. (PRINC **BLANK) 00014460
  1021. (SETQ V (CDR V)) 00014470
  1022. (GO B) 00014480
  1023. C (COND (X (TERPRI))) 00014490
  1024. (COND ((NULL OFL*) (RETURN NIL)) (W (RETURN (WRS OFL*)))) 00014500
  1025. D (WRS NIL) 00014510
  1026. (SETQ W T) 00014520
  1027. (GO A)))) 00014530
  1028. 00014540
  1029. )) 00014550
  1030. 00014560
  1031. DEFLIST (((*COMMA* 1)) INFIX) 00014570
  1032. 00014580
  1033. FLAG ((CONS EXPT QUOTIENT) BINARY) 00014590
  1034. 00014600
  1035. FLAG ((PLUS MINUS TIMES NOT *COMMA*) UNARY) 00014610
  1036. 00014620
  1037. FLAG ((*COLON* *SEMICOL*) DELIM) 00014630
  1038. 00014640
  1039. DEFINE (( 00014670
  1040. 00014680
  1041. (COMMAND (LAMBDA NIL 00014690
  1042. (PROG2 (SCAN) (COMMAND1 (QUOTE TOP))))) 00014700
  1043. 00014710
  1044. (COMMAND1 (LAMBDA (U) 00014720
  1045. (PROG (V X Y) 00014730
  1046. A0 (COND ((NOT (ATOM U)) (SETQ V (CAR U))) 00014740
  1047. ((AND (EQ CURSYM* (QUOTE *SEMICOL*)) 00014750
  1048. (LIST (SCAN))) (GO A0)) 00014760
  1049. ((NOT (SETQ Y (GET* (SETQ V CURSYM*) (QUOTE STAT)))) 00014770
  1050. (SETQ V (MREAD 00014780
  1051. (AND (NOT (EQ U (QUOTE TOP))) 00014790
  1052. (OR (EQ U (QUOTE IF)) 00014800
  1053. (EQ *MODE (QUOTE SYMBOLIC)))))))) 00014810
  1054. (SETQ U (AND (NOT (EQ *MODE (QUOTE SYMBOLIC)))
  1055. (OR PRI* (EQ U (QUOTE TOP)) (EQ U (QUOTE PRI)))))
  1056. (COND (Y (GO B)) 00014850
  1057. ((EQ CURSYM* (QUOTE *COLON*)) (RETURN V)) 00014860
  1058. ((EQCAR V (QUOTE SETQ)) (GO C)) 00014870
  1059. ((OR (EQUAL *MODE (QUOTE SYMBOLIC)) 00014880
  1060. (EQCAR V (QUOTE QUOTE)) 00014890
  1061. (AND (NUMBERP V) (FIXP V))) 00014900
  1062. (SETQ Y V)) 00014910
  1063. ((EQCAR V (QUOTE EQUAL)) (GO C)) 00014920
  1064. (T (SETQ Y (LIST (QUOTE AEVAL) (MKARG V))))) 00014930
  1065. A (COND ((AND U (OR PRI* (EQ SEMIC* **SEMICOL)))
  1066. (SETQ Y (LIST (QUOTE VARPRI) X Y PRI*))) 00014950
  1067. ((AND PRI* (EQ *MODE (QUOTE SYMBOLIC))) 00014960
  1068. (SETQ Y (LIST (QUOTE PRINC) Y)))) 00014970
  1069. (RETURN Y) 00014980
  1070. B (SETQ Y (*APPLY Y NIL)) 00014990
  1071. (SETQ U (AND U (MEMBER V (QUOTE (BEGIN FOR IF))))) 00015000
  1072. (GO A) 00015010
  1073. C (SETQ V (CDR V)) 00015020
  1074. (COND ((NULL (CDDR V)) (GO D))) 00015030
  1075. (SETQ X PRI*) 00015040
  1076. (SETQ PRI* NIL) 00015050
  1077. (SETQ Y (COMMAND1 (LIST (CONS (QUOTE SETQ) (CDR V))))) 00015060
  1078. (SETQ PRI* X) 00015070
  1079. (SETQ X NIL) 00015080
  1080. D (COND ((EQ *MODE (QUOTE SYMBOLIC)) (GO E)) 00015090
  1081. (U 00015100
  1082. (SETQ X 00015110
  1083. (CONS (QUOTE LIST) 00015120
  1084. (MAPCAR 00015130
  1085. (REVERSE (CDR (REVERSE V))) 00015140
  1086. (FUNCTION MKARG*)))))) 00015150
  1087. (COND ((NULL (CDDR V)) 00015160
  1088. (SETQ Y (LIST (QUOTE AEVAL) (MKARG (CADR V)))))) 00015170
  1089. (SETQ Y 00015180
  1090. (COND 00015190
  1091. ((AND (ATOM (CAR V)) (PROGVR (CAR V))) 00015200
  1092. (LIST (QUOTE SETQ) (CAR V) Y)) 00015210
  1093. (T (LIST (QUOTE SETK) (MKARG (CAR V)) Y)))) 00015220
  1094. (GO A) 00015230
  1095. E (COND ((NULL (CDDR V)) (SETQ Y (CADR V)))) 00015240
  1096. (SETQ Y 00015250
  1097. (COND 00015260
  1098. ((ATOM (CAR V)) (LIST (QUOTE SETQ) (CAR V) Y)) 00015270
  1099. ((GET* (CAAR V) (QUOTE **ARRAY)) 00015280
  1100. (LIST (QUOTE SETEL) (CAR V) Y)) 00015282
  1101. (T (PROCDEF1 (CAR V) Y)))) 00015284
  1102. (GO A)))) 00015286
  1103. 00015290
  1104. (MKARG (LAMBDA (U) 00015300
  1105. (COND ((NULL U) NIL) 00015310
  1106. ((ATOM U) (COND ((PROGVR U) U) (T (LIST (QUOTE QUOTE) U)))) 00015320
  1107. ((MEMBER (CAR U) (QUOTE (COND PROG QUOTE))) U) 00015330
  1108. (T (CONS (QUOTE LIST) (MAPCAR U (FUNCTION MKARG))))))) 00015340
  1109. 00015350
  1110. (MKARG* (LAMBDA (U) 00015360
  1111. (COND ((NULL U) NIL) 00015370
  1112. ((ATOM U) (LIST (QUOTE QUOTE) U)) 00015420
  1113. (T (CONS (QUOTE LIST) (MAPCAR U (FUNCTION MKARG))))))) 00015430
  1114. 00015440
  1115. (MKPROG (LAMBDA (U V) 00015480
  1116. (CONS (QUOTE PROG) (CONS U V)))) 00015490
  1117. 00015510
  1118. (PROGVR (LAMBDA (VAR) 00015520
  1119. (COND ((NOT (ATOM VAR)) NIL) 00015530
  1120. ((NUMBERP VAR) T) 00015540
  1121. (T 00015550
  1122. ((LAMBDA (X) (COND (X (CAR X)) (T NIL))) 00015560
  1123. (GET VAR (QUOTE DATATYPE))))))) 00015570
  1124. 00015580
  1125. )) 00015590
  1126. 00015600
  1127. DEFINE (( 00015610
  1128. 00015620
  1129. (LPRIM* (LAMBDA (U) 00015630
  1130. (PROG (X Y) 00015640
  1131. (COND ((AND OFL* (OR *FORT (NOT *NAT))) (GO C))) 00015650
  1132. A (SETQ X *NAT) 00015660
  1133. (SETQ *NAT NIL) 00015670
  1134. (LPRI (CONS (QUOTE ***) U)) 00015680
  1135. (TERPRI) 00015690
  1136. (SETQ *NAT X) 00015700
  1137. (COND ((NULL Y) (GO B))) 00015701
  1138. (WRS Y) 00015702
  1139. (RETURN NIL) 00015703
  1140. B (COND ((NULL OFL*) (RETURN NIL))) 00015704
  1141. C (SETQ Y OFL*) 00015705
  1142. (WRS NIL) 00015706
  1143. (GO A)))) 00015707
  1144. 00015710
  1145. (SYMPRI (LAMBDA (U) 00015720
  1146. (PROG (X) 00015730
  1147. (COND 00015740
  1148. ((EQ U (QUOTE *SEMICOL*)) (PRINC* SEMIC*)) 00015750
  1149. ((SETQ X (GET* U (QUOTE PRTCH))) (PRINC* (CAR X))) 00015760
  1150. (T (GO B))) 00015770
  1151. (RETURN (SETQ SYMFG* NIL)) 00015780
  1152. B (COND (SYMFG* (SPACES* 1))) 00015790
  1153. (PRINC* U) 00015800
  1154. (SETQ SYMFG* T)))) 00015810
  1155. 00015820
  1156. (CURERR (LAMBDA (U V) 00015830
  1157. (PROG (X) 00015840
  1158. (SETQ ECHO* T) 00015850
  1159. (TERPRI) 00015860
  1160. (SETQ X CURSYM*) 00015870
  1161. (COND ((NULL PLINE*) (GO B)) 00015880
  1162. ((EQUAL V 1) 00015890
  1163. (SETQ PLINE* 00015900
  1164. (CONS (CAR PLINE*) 00015910
  1165. (CONS 00015920
  1166. (CONS (CONS (CAAADR PLINE*) -1) **EMARK) 00015930
  1167. (CDR PLINE*))))) 00015940
  1168. (T 00015950
  1169. (SETQ PLINE* 00015960
  1170. (CONS (CONS (CONS (CAAAR PLINE*) -1) **EMARK) 00015970
  1171. PLINE*)))) 00015980
  1172. (SETQ YMIN* -1) 00015990
  1173. B (COMM1*) 00016000
  1174. (COND ((NUMBERP V) (SETQ V NIL))) 00016010
  1175. (COND ((AND (NULL U) (NULL V)) (GO A)) 00016020
  1176. ((NULL V) (LPRIE U T)) 00016030
  1177. (T (LPRIE 00016040
  1178. (CONS X 00016050
  1179. (CONS (QUOTE INVALID) 00016060
  1180. (COND 00016070
  1181. (U 00016080
  1182. (LIST (QUOTE IN) 00016090
  1183. U 00016100
  1184. (QUOTE STATEMENT))) 00016110
  1185. (T NIL)))) 00016120
  1186. T))) 00016130
  1187. A (ERROR*)))) 00016140
  1188. 00016150
  1189. (ERROR* (LAMBDA NIL 00016160
  1190. (PROG2 (TERPRI*) (ERROR NIL)))) 00016170
  1191. 00016180
  1192. )) 00016190
  1193. 00016200
  1194. DEFINE (( 00016210
  1195. 00016220
  1196. (GREATEQ (LAMBDA (U V) 00016230
  1197. (OR (EQUAL U V) (GREATERP U V)))) 00016240
  1198. 00016250
  1199. (LESSEQ (LAMBDA (U V) 00016260
  1200. (OR (EQUAL U V) (LESSP U V)))) 00016270
  1201. 00016280
  1202. (UNEQ (LAMBDA (U V) 00016290
  1203. (NOT (EQUAL U V)))) 00016300
  1204. 00016310
  1205. (REDMSG (LAMBDA (U V W) 00016320
  1206. (COND ((NULL *MSG) T) 00016330
  1207. ((AND *INT W) (REDMSG1 U V)) 00016340
  1208. (T (NULL (LPRIM* (LIST U (QUOTE DECLARED) V))))))) 00016350
  1209. 00016360
  1210. (DELETE (LAMBDA (U V) 00016370
  1211. (COND ((NULL V) NIL) 00016380
  1212. ((EQUAL U (CAR V)) (CDR V)) 00016390
  1213. (T (CONS (CAR V) (DELETE U (CDR V))))))) 00016400
  1214. 00016410
  1215. (SETDIFF (LAMBDA (U V) 00016420
  1216. (COND ((NULL V) U) (T (SETDIFF (DELETE (CAR V) U) (CDR V)))))) 00016430
  1217. 00016440
  1218. (XN (LAMBDA (U V) 00016450
  1219. (COND ((NULL U) NIL) 00016460
  1220. ((MEMBER (CAR U) V) 00016470
  1221. (CONS (CAR U) (XN (CDR U) (DELETE (CAR U) V)))) 00016480
  1222. (T (XN (CDR U) V))))) 00016490
  1223. 00016500
  1224. )) 00016510
  1225. 00016520
  1226. DEFINE (( 00016530
  1227. 00016540
  1228. (PROCDEF (LAMBDA NIL 00016550
  1229. (PROG (X Y) 00016560
  1230. (COND ((ATOM (SETQ X (MREAD* NIL))) (SETQ X (LIST X)))) 00016570
  1231. (SCAN) 00016580
  1232. (SETQ Y (FLAGTYPE (CDR X) (QUOTE SCALAR))) 00016581
  1233. (SETQ X (PROCDEF1 X (COMMAND1 NIL))) 00016582
  1234. (REMTYPE Y) 00016583
  1235. (RETURN X)))) 00016584
  1236. 00016600
  1237. (PROCDEF1 (LAMBDA (U BODY) 00016602
  1238. (PROG (NAME VARLIS) 00016604
  1239. (SETQ NAME (CAR U)) 00016610
  1240. (COND 00016620
  1241. ((OR (NULL NAME) (NOT (ATOM NAME)) (NUMBERP NAME)) 00016630
  1242. (CURERR NAME NIL)) 00016640
  1243. ((NOT (GETD NAME)) (FLAG (LIST NAME) (QUOTE FNC)))) 00016650
  1244. (COND ((EQCAR BODY (QUOTE PROG)) (SETQ VARLIS (CADR BODY)))) 00016660
  1245. (COND (VARLIS (RPLACA (CDR BODY) (SETDIFF VARLIS (CDR U))))) 00016680
  1246. (SETQ VARLIS (CDR U)) 00016690
  1247. (AND (NOT (FLAGP NAME (QUOTE FNC))) 00016710
  1248. (LPRIM* (LIST NAME (QUOTE REDEFINED)))) 00016720
  1249. (DEF* NAME VARLIS BODY DEFN*) 00016730
  1250. (REMFLAG (LIST NAME) (QUOTE FNC))
  1251. (RETURN (LIST (QUOTE QUOTE) NAME))))) 00016760
  1252. 00016780
  1253. (FLAGTYPE (LAMBDA (U V) 00016790
  1254. (PROG (X Y Z) 00016800
  1255. A (COND ((NULL U) (RETURN (REVERSE Z)))) 00016810
  1256. (SETQ X (CAR U)) 00016820
  1257. (COND ((GET X (QUOTE SIMPFN)) 00016830
  1258. (REDERR (APPEND (QUOTE (TYPE CONFLICT FOR)) (LIST X))))) 00016830
  1259. (SETQ Y (GET X (QUOTE DATATYPE))) 00016840
  1260. (PUT X (QUOTE DATATYPE) (CONS V Y)) 00016910
  1261. (SETQ Z (CONS X Z)) 00016920
  1262. C (SETQ U (CDR U)) 00016930
  1263. (GO A)))) 00016940
  1264. 00016970
  1265. (REMTYPE (LAMBDA (VARLIS) 00016980
  1266. (PROG (X Y) 00016990
  1267. A (COND ((NULL VARLIS) (RETURN NIL))) 00017000
  1268. (SETQ X (CAR VARLIS)) 00017010
  1269. (SETQ Y (CDR (GET X (QUOTE DATATYPE)))) 00017020
  1270. (COND (Y (PUT X (QUOTE DATATYPE) Y)) 00017060
  1271. (T (REMPROP X (QUOTE DATATYPE)))) 00017070
  1272. (SETQ VARLIS (CDR VARLIS)) 00017080
  1273. (GO A)))) 00017090
  1274. 00017100
  1275. (NEWVAR (LAMBDA (U) 00017110
  1276. (COMPRESS (CONS **FMARK (EXPLODE U))))) 00017120
  1277. 00017130
  1278. (DEF* (LAMBDA (NAME VARLIS BODY FN) 00017140
  1279. (*APPLY FN 00017150
  1280. (LIST 00017160
  1281. (LIST (LIST NAME (LIST (QUOTE LAMBDA) VARLIS BODY))))))) 00017170
  1282. 00017180
  1283. )) 00017190
  1284. 00017200
  1285. DEFINE (( 00017210
  1286. 00017220
  1287. (PROCBLOCK (LAMBDA NIL 00017230
  1288. (PROG (X HOLD VARLIS) 00017240
  1289. (SCAN) 00017250
  1290. (COND ((MEMBER CURSYM* (QUOTE (NIL *RPAR*))) (ERROR **ESC))) 00017260
  1291. (SETQ VARLIS (DECL T)) 00017270
  1292. A (COND ((EQ CURSYM* (QUOTE END)) (GO B))) 00017280
  1293. (SETQ X (COMMAND1 NIL)) 00017290
  1294. (COND ((EQCAR X (QUOTE END)) (GO C))) 00017300
  1295. (AND (NOT (EQ CURSYM* (QUOTE END))) (SCAN)) 00017310
  1296. (COND (X (SETQ HOLD (ACONC HOLD X)))) 00017320
  1297. (GO A) 00017330
  1298. B (COMM1 (QUOTE END)) 00017340
  1299. C (REMTYPE VARLIS) 00017350
  1300. (COND ((NOT (EQ *MODE (QUOTE SYMBOLIC))) 00017351
  1301. (SETQ HOLD (ACONC HOLD (QUOTE (RETURN 0)))))) 00017352
  1302. (RETURN (MKPROG VARLIS HOLD))))) 00017360
  1303. 00017380
  1304. (DECL* (LAMBDA NIL 00017390
  1305. (MAP (DECL NIL) (FUNCTION (LAMBDA (J) 00017400
  1306. (PUT (CAR J) (QUOTE SPECIAL) (LIST NIL))))))) 00017400
  1307. 00017410
  1308. (DECL (LAMBDA (U) 00017420
  1309. (PROG (V W VARLIS) 00017430
  1310. A (COND 00017440
  1311. ((NOT (MEMBER CURSYM* (QUOTE (REAL INTEGER SCALAR)))) 00017450
  1312. (RETURN VARLIS))) 00017460
  1313. (SETQ W CURSYM*) 00017470
  1314. (COND ((EQ (SCAN) (QUOTE PROCEDURE)) (RETURN (ALGFN)))) 00017480
  1315. (SETQ V (FLAGTYPE (REMCOMMA (MREAD NIL)) W)) 00017490
  1316. (SETQ VARLIS (APPEND V VARLIS)) 00017500
  1317. (AND (NOT (EQ CURSYM* (QUOTE *SEMICOL*))) (CURERR NIL T)) 00017510
  1318. (AND U (SCAN)) 00017520
  1319. (GO A)))) 00017530
  1320. 00017540
  1321. (GOFN (LAMBDA NIL 00017550
  1322. (PROG (VAR) 00017560
  1323. (SETQ VAR 00017570
  1324. (COND ((EQ (SCAN) (QUOTE TO)) (SCAN)) (T CURSYM*))) 00017580
  1325. (SCAN) 00017590
  1326. (RETURN (LIST (QUOTE GO) VAR))))) 00017600
  1327. 00017610
  1328. (RETFN (LAMBDA NIL 00017620
  1329. (LIST (QUOTE RETURN) 00017630
  1330. (COND ((FLAGP** (SCAN) (QUOTE DELIM)) NIL) 00017635
  1331. (T (COMMAND1 NIL)))))) 00017640
  1332. 00017650
  1333. (ENDFN (LAMBDA NIL 00017660
  1334. (PROG2 (COMM1 (QUOTE END)) (QUOTE (END))))) 00017670
  1335. 00017680
  1336. )) 00017690
  1337. 00017700
  1338. DEFINE (( 00017710
  1339. 00017720
  1340. (FORSTAT (LAMBDA NIL 00017730
  1341. (COND ((EQ (SCAN) (QUOTE ALL)) (FORALLFN*)) (T (FORLOOP))))) 00017740
  1342. 00017750
  1343. (FORLOOP (LAMBDA NIL 00017760
  1344. (PROG (CURS EXP INCR INDX CONDLIST BODY FLG FNC LAB1 LAB2) 00017770
  1345. (SETQ FNC (GENSYM)) 00017780
  1346. (SETQ EXP (MREAD T)) 00017790
  1347. (COND 00017800
  1348. ((AND (EQ (CAR EXP) (QUOTE *COMMA*)) 00017810
  1349. (EQCAR (CADR EXP) (QUOTE SETQ))) 00017820
  1350. (SETQ EXP 00017830
  1351. (LIST NIL 00017840
  1352. (CADADR EXP) 00017850
  1353. (CONS (QUOTE *COMMA*) 00017860
  1354. (NCONC (CDDADR EXP) (CDDR EXP)))))) 00017870
  1355. ((NOT (MEMBER (CAR EXP) (QUOTE (SETQ EQUAL)))) (GO ERR))) 00017880
  1356. (SETQ EXP (CDR EXP)) 00017890
  1357. (COND 00017900
  1358. ((OR (NOT (ATOM (SETQ INDX (CAR EXP)))) (NUMBERP INDX)) 00017910
  1359. (GO ERR))) 00017920
  1360. (SETQ INDX (CAR (FLAGTYPE (LIST INDX) (QUOTE INTEGER)))) 00017920
  1361. A (SETQ EXP (REMCOMMA (CADR EXP))) 00017930
  1362. A1 (COND ((NULL EXP) (GO B2)) 00017940
  1363. ((CDR EXP) (SETQ FLG T)) 00017950
  1364. ((EQ CURSYM* (QUOTE STEP)) (GO B1)) 00017960
  1365. ((EQ CURSYM* (QUOTE *COLON*)) (GO BB))) 00017970
  1366. (SETQ CONDLIST 00017980
  1367. (NCONC CONDLIST 00017990
  1368. (LIST (LIST (QUOTE SETQ) INDX (MKEX (CAR EXP))) 00018000
  1369. (LIST FNC)))) 00018010
  1370. B0 (SETQ EXP (CDR EXP)) 00018020
  1371. (GO A1) 00018030
  1372. B1 (SETQ INCR (MKEX (MREAD* NIL))) 00018040
  1373. (COND 00018050
  1374. ((NOT (MEMBER (SETQ CURS CURSYM*) (QUOTE (UNTIL WHILE)))) 00018060
  1375. (GO ERR))) 00018070
  1376. AA (SETQ LAB1 (GENSYM)) 00018080
  1377. (SETQ LAB2 (GENSYM)) 00018090
  1378. (SETQ CONDLIST 00018100
  1379. (ACONC CONDLIST(LIST (QUOTE SETQ) INDX (MKEX (CAR EXP))))) 00018110
  1380. (SETQ EXP (REMCOMMA (MREAD* NIL))) 00018120
  1381. (SETQ BODY (MKEX (CAR EXP))) 00018130
  1382. (SETQ CONDLIST 00018140
  1383. (NCONC CONDLIST 00018150
  1384. (LIST LAB1 00018160
  1385. (LIST (QUOTE COND) 00018170
  1386. (LIST 00018180
  1387. (COND 00018190
  1388. ((EQ CURS (QUOTE UNTIL)) 00018200
  1389. (COND 00018210
  1390. ((NUMBERP INCR) 00018220
  1391. (LIST 00018230
  1392. (COND 00018240
  1393. ((MINUSP INCR) 00018250
  1394. (QUOTE LESSP)) 00018260
  1395. (T (QUOTE GREATERP))) 00018270
  1396. INDX 00018280
  1397. BODY)) 00018290
  1398. (T 00018300
  1399. (LIST 00018310
  1400. (QUOTE MINUSP) 00018320
  1401. (LIST 00018330
  1402. (QUOTE TIMES) 00018340
  1403. (LIST 00018350
  1404. (QUOTE DIFFERENCE) 00018360
  1405. BODY 00018370
  1406. INDX) 00018380
  1407. INCR))))) 00018390
  1408. (T (LIST (QUOTE NOT) BODY))) 00018400
  1409. (LIST (QUOTE GO) LAB2))) 00018410
  1410. (LIST FNC) 00018420
  1411. (LIST (QUOTE SETQ) 00018430
  1412. INDX 00018440
  1413. (LIST (QUOTE PLUS) INDX INCR)) 00018450
  1414. (LIST (QUOTE GO) LAB1) 00018460
  1415. LAB2))) 00018470
  1416. (AND (CDR EXP) (SETQ FLG T)) 00018480
  1417. (GO B0) 00018490
  1418. BB (SETQ INCR 1) 00018500
  1419. (SETQ CURS (QUOTE UNTIL)) 00018510
  1420. (GO AA) 00018520
  1421. B2 (COND ((NULL CONDLIST) (GO ERR)) 00018530
  1422. ((MEMBER CURSYM* (QUOTE (SUM PRODUCT))) (GO C)) 00018540
  1423. ((NOT (EQ CURSYM* (QUOTE DO))) (GO ERR))) 00018550
  1424. (SCAN) 00018560
  1425. (SETQ BODY (COMMAND1 NIL)) 00018570
  1426. B (COND (FLG (DEF* FNC NIL BODY (QUOTE DEFINE))) 00018590
  1427. (T (SETQ CONDLIST (ADFORM BODY (LIST FNC) CONDLIST)))) 00018600
  1428. (REMTYPE (LIST INDX)) 00018602
  1429. (RETURN (MKPROG (CONS INDX EXP) (ACONC CONDLIST 00018610
  1430. (QUOTE (RETURN NIL))))) 00018612
  1431. C (SETQ CURS CURSYM*) 00018620
  1432. (SETQ EXP (GENSYM)) 00018630
  1433. (SETQ BODY 00018640
  1434. (LIST (QUOTE SETQ) 00018650
  1435. EXP 00018660
  1436. (LIST 00018670
  1437. (COND 00018680
  1438. ((EQ CURS (QUOTE SUM)) (QUOTE ADDSQ)) 00018690
  1439. (T (QUOTE MULTSQ))) 00018700
  1440. (LIST (QUOTE AEVAL1) (MKARG (MREAD* T))) 00018710
  1441. EXP))) 00018720
  1442. (SETQ CONDLIST 00018730
  1443. (CONS (LIST (QUOTE SETQ) 00018740
  1444. EXP 00018750
  1445. (LIST (QUOTE CONS) 00018760
  1446. (COND 00018770
  1447. ((EQ CURS (QUOTE SUM)) NIL) 00018780
  1448. (T 1)) 00018790
  1449. 1)) 00018800
  1450. (ACONC CONDLIST 00018810
  1451. (LIST (QUOTE RETURN) 00018820
  1452. (LIST (QUOTE MK*SQ) 00018830
  1453. (LIST (QUOTE SUBS2) EXP)))))) 00018840
  1454. (SETQ EXP (LIST EXP)) 00018840
  1455. (GO B) 00018850
  1456. ERR (CURERR (QUOTE FOR) T)))) 00018900
  1457. 00018910
  1458. (ADFORM (LAMBDA (U V W) 00018920
  1459. (COND ((NULL W) NIL) 00018930
  1460. ((EQUAL V (CAR W)) 00018940
  1461. ((LAMBDA(X) 00018950
  1462. (COND (X (APPEND X (CDR W))) (T (CONS U (CDR W))))) 00018960
  1463. (PROGCHK U))) 00018970
  1464. (T (CONS (CAR W) (ADFORM U V (CDR W))))))) 00018980
  1465. 00018990
  1466. (PROGCHK (LAMBDA (U) 00019000
  1467. (PROG (X) 00019010
  1468. (COND 00019020
  1469. ((OR (NOT (EQCAR U (QUOTE PROG))) (CADR U)) (RETURN NIL))) 00019030
  1470. (SETQ U (CDR U)) 00019040
  1471. A (SETQ U (CDR U)) 00019050
  1472. (COND ((NULL U) (RETURN (REVERSE X))) 00019060
  1473. ((ATOM (CAR U)) (GO B)) 00019070
  1474. ((EQCAR (CAR U) (QUOTE RETURN)) (GO RET)) 00019080
  1475. ((EQCAR (CAR U) (QUOTE PROG)) (GO B)) 00019090
  1476. ((MEMBER (QUOTE RETURN) (FLATTEN (CAR U))) 00019100
  1477. (RETURN NIL))) 00019110
  1478. B (SETQ X (CONS (CAR U) X)) 00019120
  1479. (GO A) 00019130
  1480. RET (COND ((CDR U) (RETURN NIL)) 00019135
  1481. ((NOT (ATOM (CADAR U))) (SETQ X (CONS (CADAR U) X)))) 00019140
  1482. (GO A)))) 00019145
  1483. 00019150
  1484. (FLATTEN (LAMBDA (U) 00019160
  1485. (COND ((NULL U) NIL) 00019170
  1486. ((ATOM U) (LIST U)) 00019180
  1487. ((ATOM (CAR U)) (CONS (CAR U) (FLATTEN (CDR U)))) 00019190
  1488. (T (NCONC (FLATTEN (CAR U)) (FLATTEN (CDR U))))))) 00019200
  1489. 00019210
  1490. )) 00019220
  1491. 00019230
  1492. DEFINE (( 00019240
  1493. 00019250
  1494. (IFSTAT (LAMBDA NIL 00019260
  1495. (PROG (CONDX CONDIT) 00019270
  1496. (FLAG (QUOTE (CLEAR LET MATCH)) (QUOTE DELIM)) 00019280
  1497. A (SETQ CONDX (MREAD* T)) 00019290
  1498. (REMFLAG (QUOTE (CLEAR LET MATCH)) (QUOTE DELIM)) 00019300
  1499. (COND ((NOT (EQ CURSYM* (QUOTE THEN))) (GO C))) 00019330
  1500. (SCAN) 00019340
  1501. (SETQ CONDIT(ACONC CONDIT (LIST (MKEX CONDX) (COMMAND1 NIL)))) 00019350
  1502. (COND ((NOT (EQ CURSYM* (QUOTE ELSE))) (GO B)) 00019360
  1503. ((EQ (SCAN) (QUOTE IF)) (GO A)) 00019370
  1504. (T 00019380
  1505. (SETQ CONDIT 00019390
  1506. (ACONC CONDIT 00019400
  1507. (LIST T (COMMAND1 (QUOTE IF))))))) 00019410
  1508. B (RETURN (CONS (QUOTE COND) CONDIT)) 00019420
  1509. C (COND 00019430
  1510. ((NOT (MEMBER CURSYM* (QUOTE (CLEAR LET MATCH)))) 00019440
  1511. (CURERR (QUOTE IF) T))) 00019450
  1512. (SETQ MCOND* (MKEX CONDX)) 00019460
  1513. (RETURN (FORALLFN (GVARB CONDX)))))) 00019470
  1514. 00019480
  1515. (MKEX (LAMBDA (U) 00019490
  1516. (COND ((EQ *MODE (QUOTE SYMBOLIC)) U) (T (APROC U))))) 00019500
  1517. 00019510
  1518. (APROC (LAMBDA (U) 00019520
  1519. (COND ((NULL U) NIL) 00019530
  1520. ((ATOM U) 00019540
  1521. (COND ((AND (NUMBERP U) (FIXP U)) U) 00019550
  1522. (T (LIST (QUOTE REVAL) (MKARG U))))) 00019560
  1523. ((MEMBER (CAR U) (QUOTE (COND PROG))) U) 00019570
  1524. ((MEMBER (CAR U) (QUOTE (EQUAL UNEQ))) 00019580
  1525. (LIST (CAR U) 00019590
  1526. (LIST (QUOTE REVAL) 00019600
  1527. (MKARG 00019610
  1528. (LIST (QUOTE PLUS) 00019620
  1529. (CADR U) 00019630
  1530. (LIST (QUOTE MINUS) (CARX (CDDR U)))))) 00019640
  1531. 0)) 00019650
  1532. (T (CONS (CAR U) (MAPCAR (CDR U) (FUNCTION APROC))))))) 00019660
  1533. 00019670
  1534. (ARB (LAMBDA (U) 00019680
  1535. T)) 00019690
  1536. 00019700
  1537. (GVARB (LAMBDA (U) 00019710
  1538. (COND ((ATOM U) (COND ((NUMBERP U) NIL) (T (LIST U)))) 00019720
  1539. ((EQ (CAR U) (QUOTE QUOTE)) NIL) 00019730
  1540. (T 00019740
  1541. (MAPCON (CDR U) (FUNCTION (LAMBDA (J) (GVARB (CAR J))))))))) 00019750
  1542. 00019760
  1543. )) 00019770
  1544. 00019780
  1545. FLAG ((THEN ELSE END STEP DO SUM PRODUCT UNTIL WHILE) DELIM) 00019790
  1546. 00019800
  1547. DEFINE (( 00019810
  1548. 00019820
  1549. (ALGFN (LAMBDA NIL 00019830
  1550. (ALGFN* (QUOTE ALGEBRAIC)))) 00019840
  1551. 00019850
  1552. (LSPFN (LAMBDA NIL 00019860
  1553. (ALGFN* (QUOTE SYMBOLIC)))) 00019870
  1554. 00019880
  1555. (ALGFN* (LAMBDA (U) 00019890
  1556. (PROG (X) 00019900
  1557. (COND ((EQ CURSYM* (QUOTE PROCEDURE)) (GO A)) 00019910
  1558. ((EQ CURSYM* (QUOTE MACRO)) (SETQ DEFN* CURSYM*)) 00019920
  1559. ((EQ CURSYM* (QUOTE FEXPR)) 00019930
  1560. (SETQ DEFN* (QUOTE DEFEXPR)))) 00019940
  1561. (COND 00019950
  1562. ((FLAGP** (SCAN) (QUOTE DELIM)) (GO B))) 00019960
  1563. A (SETQ TMODE* *MODE) 00019970
  1564. (SETQ *MODE U) 00019980
  1565. (COND 00019990
  1566. ((NOT (EQ CURSYM* (QUOTE PROCEDURE))) 00020000
  1567. (RETURN (COMMAND1 (QUOTE PRI)))))
  1568. (SETQ X (PROCDEF)) 00020020
  1569. (COND 00020030
  1570. ((NOT (EQ U (QUOTE SYMBOLIC)))(FLAG (CDR X)(QUOTE OPFN)))) 00020035
  1571. (RETURN (CONS (QUOTE QUOTE) (CDR X))) 00020040
  1572. B (SETQ *MODE U)))) 00020050
  1573. 00020060
  1574. (RLIS (LAMBDA NIL 00020070
  1575. (RLIS* T))) 00020080
  1576. 00020090
  1577. (NORLIS (LAMBDA NIL 00020100
  1578. (RLIS* NIL))) 00020110
  1579. 00020120
  1580. (RLIS* (LAMBDA (U) 00020130
  1581. (PROG (X Y) 00020140
  1582. (SETQ X CURSYM*) 00020150
  1583. (COND ((FLAGP** (SCAN) (QUOTE DELIM)) (GO A))) 00020160
  1584. (SETQ Y (REMCOMMA (MREAD NIL))) 00020170
  1585. (COND (U (SETQ Y (LIST Y)))) 00020180
  1586. A (RETURN (CONS X (MAPCAR Y (FUNCTION MKARG))))))) 00020190
  1587. 00020200
  1588. )) 00020210
  1589. 00020220
  1590. DEFINE (( 00020230
  1591. 00020240
  1592. (COMM1* (LAMBDA NIL 00020250
  1593. (COMM1 T))) 00020260
  1594. 00020270
  1595. (COMM1 (LAMBDA (U) 00020280
  1596. (PROG (X Y Z)
  1597. (SETQ X ECHO*)
  1598. (COND 00020310
  1599. ((AND (EQ U (QUOTE END)) 00020320
  1600. (MEMBER (SCAN) (QUOTE (ELSE END UNTIL *RPAR*)))) 00020330
  1601. (GO RET1))) 00020340
  1602. (COND (U (GO LOOP)) (X (PRINC* CRCHAR*))) 00020350
  1603. (SETQ Y (LIST CRCHAR*)) 00020360
  1604. (GO A) 00020370
  1605. LOOP (COND ((EQ CRCHAR* **EOF) (GO RET))
  1606. ((NULL U) (GO L1))
  1607. ((EQ CURSYM* (QUOTE *SEMICOL*)) (GO RET1)) 00020390
  1608. ((OR (EQ CRCHAR* **SEMICOL) 00020400
  1609. (EQ CRCHAR* **DOLLAR) 00020410
  1610. (EQ CRCHAR* **ESC)) 00020420
  1611. (GO RET))) 00020430
  1612. L1 (COND ((NULL X) (GO L3)))
  1613. (COND ((NULL U) (PRINC* CRCHAR*))
  1614. ((BREAKP CRCHAR*) (GO L2))
  1615. (T (PROG2 (RLIT CRCHAR*) (SETQ Z T))))
  1616. L3
  1617. (COND 00020450
  1618. ((OR (NULL U) (EQ U (QUOTE END))) 00020460
  1619. (SETQ Y (CONS CRCHAR* Y)))) 00020470
  1620. (COND 00020480
  1621. ((AND (EQ U (QUOTE END)) 00020490
  1622. (EQ CRCHAR* (QUOTE D)) 00020500
  1623. (EQCAR (CDR Y) (QUOTE N)) 00020510
  1624. (EQCAR (CDDR Y) (QUOTE E)) 00020520
  1625. (SETQ CRCHAR* **BLANK) 00020530
  1626. (SETQ CURSYM* (QUOTE END))) 00020540
  1627. (GO RET1)) 00020550
  1628. ((AND (NULL U) (EQ CRCHAR* **SMARK)) (GO RETS))) 00020560
  1629. A (SETQ CRCHAR* (READCH*)) 00020570
  1630. (GO LOOP) 00020580
  1631. L2 (COND (Z (PRINC* (MKATOM))))
  1632. (SETQ Z NIL)
  1633. (PRINC* CRCHAR*)
  1634. (COND ((NOT (EQ CRCHAR* **BLANK)) (GO L3))
  1635. ((EQ U (QUOTE END)) (SETQ Y NIL)))
  1636. L4 (COND ((EQ (READCH*) **BLANK) (GO L4)))
  1637. (GO LOOP)
  1638. RET (COND ((AND X Z) (PROG2 (PRINC* (MKATOM)) (SETQ Z NIL))))
  1639. (SCAN)
  1640. RET1 (COND ((AND X Z) (PRINC* (MKATOM))))
  1641. (RETURN (COND (X (TERPRI*)) (T NIL)))
  1642. RETS (SETQ CURSYM* (MKSTRING (REVERSE Y))) 00020610
  1643. (READCH*) 00020620
  1644. (RETURN CURSYM*)))) 00020630
  1645. 00020640
  1646. (QOTPRI (LAMBDA (U) 00020650
  1647. (PROG2 (PRINC* **QMARK) (PRIN0* (CAR U))))) 00020660
  1648. 00020670
  1649. (PRIN0* (LAMBDA (U) 00020680
  1650. (PROG NIL 00020690
  1651. (COND ((ATOM U) (RETURN (PRINC* U)))) 00020700
  1652. (PRINC* **LPAR) 00020710
  1653. A (COND ((NULL U) (GO B)) ((ATOM U) (GO C))) 00020720
  1654. (PRIN0* (CAR U)) 00020730
  1655. (COND ((CDR U) (PRINC* **BLANK))) 00020740
  1656. (SETQ U (CDR U)) 00020750
  1657. (GO A) 00020760
  1658. B (RETURN (PRINC* **RPAR)) 00020770
  1659. C (PRINC* **DOT) 00020780
  1660. (PRINC* **BLANK) 00020790
  1661. (PRINC* U) 00020800
  1662. (GO B)))) 00020810
  1663. 00020820
  1664. )) 00020830
  1665. 00020840
  1666. DEFLIST (((QUOTE QOTPRI)) SPECPRN) 00020850
  1667. 00020860
  1668. DEFINE (( 00020870
  1669. 00020880
  1670. (LMDEF (LAMBDA NIL 00020890
  1671. (PROG (X) 00020900
  1672. (COND 00020910
  1673. ((NOT (EQ *MODE (QUOTE SYMBOLIC))) 00020920
  1674. (CURERR (QUOTE ALGEBRAIC) T))) 00020930
  1675. (SETQ CURSYM* (QUOTE *COMMA*)) 00020940
  1676. (SETQ X (MREAD NIL)) 00020950
  1677. (RETURN (LIST (QUOTE LAMBDA) (CDR X) (COMMAND1 NIL)))))) 00020960
  1678. 00020970
  1679. (WRITEFN (LAMBDA NIL 00020980
  1680. (PROG (X Y Z) 00020990
  1681. (SETQ X (MREAD* NIL)) 00021000
  1682. (SETQ PRI* T) 00021010
  1683. (SETQ X 00021020
  1684. (COND 00021030
  1685. ((EQCAR X (QUOTE *COMMA*)) (CDR X)) 00021040
  1686. (T (LIST X)))) 00021050
  1687. A (COND ((NULL X) (GO B))) 00021060
  1688. (SETQ Z (COMMAND1 (LIST (CAR X)))) 00021065
  1689. (COND ((NULL (CDR X)) (SETQ Z (LIST (QUOTE RETURN) Z)))) 00021070
  1690. (SETQ Y (ACONC Y Z)) 00021075
  1691. (SETQ X (CDR X)) 00021080
  1692. (GO A) 00021090
  1693. B (SETQ PRI* NIL) 00021100
  1694. (RETURN (MKPROG NIL (CONS (QUOTE (TERPRI*)) Y)))))) 00021110
  1695. 00021120
  1696. )) 00021130
  1697. 00021140
  1698. DEFINE (( 00021150
  1699. 00021160
  1700. (ON1 (LAMBDA (U V) 00021170
  1701. (PROG (X) 00021180
  1702. A (COND ((NULL U) (RETURN NIL))) 00021190
  1703. (PTS (COMPRESS (APPEND (EXPLODE **STAR) (EXPLODE (CAR U)))) 00021200
  1704. V) 00021210
  1705. (COND 00021220
  1706. ((SETQ X (ASSOC V (GET* (CAR U) (QUOTE SIMPFG)))) 00021230
  1707. (*APPLY (CONVRT (CDR X) T) NIL)))
  1708. (SETQ U (CDR U)) 00021250
  1709. (GO A)))) 00021260
  1710. 00021270
  1711. (ON (LAMBDA (U) 00021280
  1712. (ON1 U T))) 00021290
  1713. 00021300
  1714. (OFF (LAMBDA (U) 00021310
  1715. (ON1 U NIL))) 00021320
  1716. 00021330
  1717. )) 00021340
  1718. 00021350
  1719. DEFINE (( 00021360
  1720. 00021370
  1721. (AARRAY (LAMBDA (U) 00021380
  1722. (PROG (X Y) 00021390
  1723. A (COND ((NULL U) (RETURN NIL))) 00021400
  1724. (SETQ X (CAR U)) 00021410
  1725. (COND 00021420
  1726. ((OR (NUMBERP (CAR X)) 00021430
  1727. (NOT (ATOM (CAR X))) 00021440
  1728. (GET (CAR X) (QUOTE SIMPFN)) 00021460
  1729. (GET (CAR X) (QUOTE APROP))) 00021465
  1730. (REDERR (APPEND (QUOTE (TYPE CONFLICT FOR)) 00021470
  1731. (LIST (CAR X))))) 00021475
  1732. ((NOT (NUMLIS (SETQ Y (MAPCAR (CDR X) 00021480
  1733. (FUNCTION REVAL))))) (PROG2 (ERRPRI2 X) (ERROR*))))
  1734. (PUT (CAR X) (QUOTE **ARRAY) Y) 00021490
  1735. (*ARRAY 00021495
  1736. (LIST (CONS (CAR X) (MAPCAR Y (FUNCTION ADD1))))) 00021500
  1737. B (SETQ U (CDR U)) 00021520
  1738. (GO A)))) 00021530
  1739. 00021560
  1740. (NUMLIS (LAMBDA (U) 00021570
  1741. (OR (NULL U) (AND (NUMBERP (CAR U)) (NUMLIS (CDR U)))))) 00021580
  1742. 00021590
  1743. )) 00021600
  1744. 00021610
  1745. DEFLIST (((AARRAY RLIS)) STAT) 00021620
  1746. 00021630
  1747. (LAMBDA NIL (PUT (QUOTE ARRAY) (QUOTE NEWNAME) (QUOTE AARRAY))) NIL 00021640
  1748. 00021650
  1749. DEFINE (( 00021660
  1750. 00021670
  1751. (BEGIN1 (LAMBDA (U)
  1752. (PROG (RESULT) 00021690
  1753. (SETQ CURSYM* NIL) 00021700
  1754. A (TERPRI) 00021710
  1755. (COND ((AND TMODE* (SETQ *MODE TMODE*)) (SETQ TMODE* NIL))) 00021720
  1756. (SETQ ECHO* (AND *ECHO (NOT (AND OFL* (OR *FORT (NULL *NAT))))))
  1757. (SETQ ERFG* NIL) 00021740
  1758. (COND ((EQ CURSYM* (QUOTE END)) (GO ND0))) 00021750
  1759. (SETQ CRCHAR* **BLANK) 00021760
  1760. (SETQ DEFN* (QUOTE DEFINE)) 00021770
  1761. (OVOFF) 00021771
  1762. (SETQ PROGRAM* (ERRORSET (QUOTE (COMMAND)) T)) 00021780
  1763. (COND ((OR (ATOM PROGRAM*) (CDR PROGRAM*)) (GO ERR1))) 00021790
  1764. (SETQ PROGRAM* (CAR PROGRAM*)) 00021800
  1765. (COND 00021810
  1766. ((EQ (CAR PROGRAM*) (QUOTE RETRY)) 00021820
  1767. (SETQ PROGRAM* PROGRAML*)) 00021830
  1768. ((EQCAR PROGRAM* (QUOTE *COMMA*)) (GO ER)) 00021835
  1769. ((EQ (CAR PROGRAM*) (QUOTE END)) (GO ND1)) 00021840
  1770. ((EQ (CAR PROGRAM*) (QUOTE CONT)) (GO C))
  1771. (DIAG* (GO D))) 00021850
  1772. B (TERPRI*)
  1773. (SETQ ECHO* (QUOTE RESULT)) 00021860
  1774. (SETP) 00021870
  1775. (OVON) 00021871
  1776. (SETQ RESULT 00021880
  1777. (ERRORSET (CONVRT (GTS (QUOTE PROGRAM*)) T) T))
  1778. (COND ((OR (ATOM RESULT) (CDR RESULT)) (GO ERR2)) 00021900
  1779. ((EQ *MODE (QUOTE SYMBOLIC)) (AND (EQ SEMIC* **SEMICOL) 00021910
  1780. (PROG2 (PRINT (CAR RESULT)) (TERPRI)))) 00021920
  1781. ((CAR RESULT) (SETQ *ANS (CAR RESULT)))) 00021930
  1782. (SETQ ORIG* 0) 00021940
  1783. (CLOSELINE) 00021950
  1784. (COND ((NULL (OR *INT OFL* *FORT)) (PRINTTY **STAR)))
  1785. (GO A) 00021970
  1786. C (COND ((NOT U) (GO A)))
  1787. (COND (IFL* (GO ND1)))
  1788. (SETQ IFL* (COND (IPL* (CAR IPL*)) (T NIL)))
  1789. (RDS IFL*)
  1790. (TERPRI*)
  1791. (RETURN NIL)
  1792. D (COND ((OR (ATOM PROGRAM*)(EQ (CAR PROGRAM*) (QUOTE QUOTE))) 00021972
  1793. (GO A)) 00021974
  1794. ((FLAGP (CAR PROGRAM*) (QUOTE IGNORE)) (GO B))) 00021975
  1795. (PRINT (CONVRT PROGRAM* NIL)) 00021978
  1796. (GO A) 00021979
  1797. ND0 (COMM1 (QUOTE END)) 00021980
  1798. ND1 00022000
  1799. (RETURN (FINF U))
  1800. ERR1 (COND ((OR (EQ PROGRAM* **ESC) (EQ PROGRAM* **EOF)) (GO A))) 00022020
  1801. (GO ERR3) 00022030
  1802. ER (LPRIE (COND ((NOT (ATOM (CADR PROGRAM*))) 00022032
  1803. (LIST (CAADR PROGRAM*) (QUOTE UNDEFINED))) 00022034
  1804. (T (QUOTE (SYNTAX ERROR)))) T) 00022036
  1805. (GO ERR3) 00022038
  1806. ERR2 (SETQ PROGRAML* PROGRAM*) 00022040
  1807. (SETP)
  1808. ERR3 (COND 00022050
  1809. ((NULL ERFG*) 00022060
  1810. (LPRIE (QUOTE (COMMAND TERMINATED *****)) T)))
  1811. (SETQ ORIG* 0) 00022080
  1812. (TERPRI*) 00022090
  1813. (COND (IFL* (PAUSE)))
  1814. (GO A)))) 00022110
  1815. 00022120
  1816. (FINF (LAMBDA (U)
  1817. (PROG NIL 00022140
  1818. (COND (U (GO A)))
  1819. (MAPCAR (APPEND IPL* OPL*) (FUNCTION CLOSE)) 00022160
  1820. (SETQ IFL* NIL)
  1821. (SETQ IPL* NIL) 00022170
  1822. (SETQ OPL* NIL) 00022180
  1823. (SETQ OFL* NIL) 00022190
  1824. (LPRIW NIL T **ENDMSG) 00022200
  1825. (RETURN (QUOTE ***)) 00022210
  1826. A (COND ((NOT IFL*) (RETURN NIL)))
  1827. (SHUT (LIST IFL*))
  1828. (LPRIM* NIL)))) 00022260
  1829. 00022270
  1830. )) 00022280
  1831. 00022290
  1832. DEFLIST (((FOR FORSTAT) (FORALL FORALLFN*) (IF IFSTAT) (BEGIN PROCBLOCK 00022300
  1833. ) (IN RLIS) (OUT RLIS) (SHUT RLIS) (GO GOFN) (GOTO GOFN) (RETURN RETFN 00022310
  1834. ) (INTEGER DECL*) (SCALAR DECL*) (WRITE WRITEFN) ( 00022320
  1835. REAL DECL*) (LISP LSPFN) (ALGEBRAIC ALGFN) (RETRY NORLIS) (PROCEDURE 00022330
  1836. ALGFN)(MACRO LSPFN)(FEXPR LSPFN) (SYMBOLIC LSPFN) (ON RLIS) (OFF RLIS 00022340
  1837. ) (END ENDFN) (COMMENT COMM1*) (INFIX INFIXFN) (PRECEDENCE PRECEDFN)) 00022350
  1838. STAT) 00022360
  1839. 00022370
  1840. DEFLIST (((BEGIN PROCBLOCK) (FOR FORSTAT) (IF IFSTAT) (LAMBDA LMDEF)) 00022380
  1841. ISTAT) 00022390
  1842. 00022400
  1843. (LAMBDA (U) (MAP U (FUNCTION (LAMBDA (J) (PTS (CAR J) NIL))))) ((*GCD 00022410
  1844. *EXP *MCD *FLOAT MATCH* *DIV *RAT *SUPER MCOND* *ALLFAC *NCMP SUBFG* 00022420
  1845. FRLIS1* FRLIS* GAMIDEN* SUB2* RPLIS* SUBL* DSUBL* FACTORS* FRASC* VREP* 00022430
  1846. INDICES* WTP* SNO* PNO* *RAT *OUTP MCHFG* *ANS *RESUBS *NERO EXLIST* 00022440
  1847. ORDN* *XDN SV* DNL* UPL* EXPTL*)) 00022450
  1848. 00022460
  1849. (LAMBDA (U) (MAP U (FUNCTION (LAMBDA (J) (PTS (CAAR J) (CADAR J)))))) 00022470
  1850. (((*EXP T) (*MSG T) (*ALLFAC T) (*MCD T) (SUBFG* T) (EXLIST* ((*))) 00022480
  1851. (*RESUBS T) (ORDN* 0) (*ANS 0) (SNO* 500) (*XDN T))) 00022490
  1852. 00022500
  1853. DEFLIST (((EXP ((NIL . RMSUBS1) (T . RMSUBS))) (MCD ((NIL . RMSUBS1) ( 00022510
  1854. T . RMSUBS))) (FORT ((NIL LAMBDA NIL (SETQ *NAT NAT**)) (T LAMBDA NIL 00022520
  1855. (PROG2 (SETQ NAT** *NAT) (SETQ *NAT NIL))))) (GCD ((T . RMSUBS))) 00022530
  1856. (FLOAT ((T . RMSUBS)))) SIMPFG) 00022540
  1857. 00022550
  1858. DEFLIST (((ANTISYMMETRIC RLIS)(CLEAR RLIS)(DENOM NORLIS) (FACTOR RLIS) 00022560
  1859. (LET RLIS) (MATCH RLIS) (MKCOEFF NORLIS) (ND NORLIS) (NUMER NORLIS) 00022570
  1860. (MTS NORLIS)
  1861. (OPERATOR RLIS) (ORDER RLIS) (REMFAC RLIS) (SAVEAS NORLIS) (SYMMETRIC 00022580
  1862. RLIS) (TERMS NORLIS) (WEIGHT RLIS)) STAT) 00022590
  1863. 00022600
  1864. DEFLIST (((PLUS SIMPPLUS) (MINUS SIMPMINUS) (EXPT SIMPEXPT) (SUB 00022610
  1865. SIMPSUBS)(DF SIMPDF)(RECIP SIMPRECIP)(QUOTIENT SIMPQUOT) (*SQ SIMP*SQ) 00022620
  1866. (TIMES SIMPTIMES)) SIMPFN) 00022630
  1867. 00022640
  1868. DEFLIST (((*ANS (SCALAR)) (*MODE (SCALAR))) DATATYPE) 00022650
  1869. 00022660
  1870. DEFLIST (((I (I NIL (REP (MINUS 1) 2 NIL)))) APROP) 00022670
  1871. 00022680
  1872. DEFINE (( 00022690
  1873. 00022700
  1874. (ABS (LAMBDA (N) 00022710
  1875. (COND ((MINUSP N) (MINUS N)) (T N)))) 00022720
  1876. 00022730
  1877. (ASSOC (LAMBDA (U V) 00022740
  1878. (SASSOC U V (FUNCTION (LAMBDA NIL NIL))))) 00022750
  1879. 00022760
  1880. (ASSOC* (LAMBDA (U V) 00022770
  1881. (COND ((NULL V) NIL) 00022780
  1882. ((EQUAL U (CAAR V)) (CAR V)) 00022790
  1883. (T (ASSOC* U (CDR V)))))) 00022800
  1884. 00022810
  1885. (ATOMLIS (LAMBDA (U) 00022820
  1886. (OR (NULL U) (AND (ATOM (CAR U)) (ATOMLIS (CDR U)))))) 00022830
  1887. 00022840
  1888. (CARX (LAMBDA (U) 00022850
  1889. (COND ((NULL (CDR U)) (CAR U)) (T (ERRACH (LIST (QUOTE CARX) U))))) 00022860
  1890. ) 00022870
  1891. 00022880
  1892. (DELASC (LAMBDA (U V) 00022890
  1893. (COND ((NULL V) NIL) 00022900
  1894. ((OR (ATOM (CAR V)) (NOT (EQUAL U (CAAR V)))) 00022910
  1895. (CONS (CAR V) (DELASC U (CDR V)))) 00022920
  1896. (T (CDR V))))) 00022930
  1897. 00022940
  1898. (MAPCONS (LAMBDA (U *S*) 00022980
  1899. (MAPCAR U (FUNCTION (LAMBDA (J) (CONS *S* J)))))) 00022990
  1900. 00023000
  1901. (MAPC2 (LAMBDA (U *PI*) 00023010
  1902. (MAPCAR U 00023020
  1903. (FUNCTION 00023030
  1904. (LAMBDA(J) 00023040
  1905. (MAPCAR J (FUNCTION (LAMBDA (K) (*PI* K))))))))) 00023050
  1906. 00023060
  1907. (MEXPR (LAMBDA (U V) 00023070
  1908. (COND ((NULL V) NIL) 00023080
  1909. ((ATOM V) (EQ U V)) 00023090
  1910. (T (OR (MEXPR U (CAR V)) (MEXPR U (CDR V))))))) 00023100
  1911. 00023110
  1912. (NCONS (LAMBDA (U V) 00023120
  1913. (COND ((NULL U) V) (T (CONS U V))))) 00023130
  1914. 00023140
  1915. (NLIST (LAMBDA (U N) 00023150
  1916. (COND ((ZEROP N) NIL) (T (CONS U (NLIST U (SUB1 N))))))) 00023160
  1917. 00023170
  1918. (NTH (LAMBDA (U N) 00023180
  1919. (COND ((ONEP N) (CAR U)) (T (NTH (CDR U) (SUB1 N)))))) 00023190
  1920. 00023200
  1921. (POSN (LAMBDA (U V) 00023210
  1922. (COND ((EQ U (CAR V)) 1) (T (ADD1 (POSN U (CDR V))))))) 00023220
  1923. 00023230
  1924. (REMOVE (LAMBDA (X N) 00023240
  1925. (COND ((MINUSP N) (ERRACH (LIST (QUOTE REMOVE) X N))) 00023250
  1926. ((NULL X) NIL) 00023260
  1927. ((ZEROP N) (CDR X)) 00023270
  1928. (T (CONS (CAR X) (REMOVE (CDR X) (SUB1 N))))))) 00023280
  1929. 00023290
  1930. (REVPR (LAMBDA (U) 00023300
  1931. (CONS (CDR U) (CAR U)))) 00023310
  1932. 00023320
  1933. (RPLACW (LAMBDA (U V) 00023330
  1934. (COND 00023340
  1935. ((OR (ATOM U) (ATOM V)) (ERRACH (LIST (QUOTE RPLACW) U V))) 00023350
  1936. (T (RPLACD (RPLACA U (CAR V)) (CDR V)))))) 00023360
  1937. 00023370
  1938. (REPEATS (LAMBDA (X) 00023380
  1939. (COND ((NULL X) NIL) 00023390
  1940. ((MEMBER (CAR X) (CDR X)) (CONS (CAR X) (REPEATS (CDR X)))) 00023400
  1941. (T (REPEATS (CDR X)))))) 00023410
  1942. 00023420
  1943. (UNION (LAMBDA (X Y) 00023430
  1944. (COND ((NULL X) Y) 00023440
  1945. (T 00023450
  1946. (UNION (CDR X) 00023460
  1947. (COND ((MEMBER (CAR X) Y) Y) 00023470
  1948. (T (CONS (CAR X) Y)))))))) 00023480
  1949. 00023490
  1950. )) 00023500
  1951. 00023510
  1952. DEFINE (( 00023520
  1953. 00023530
  1954. (REPPRI (LAMBDA (U V) 00023540
  1955. (MESPRI NIL U (QUOTE (REPRESENTED BY)) V NIL))) 00023550
  1956. 00023560
  1957. (REDEFPRI (LAMBDA (U) 00023570
  1958. (COND ((NULL U) NIL) 00023580
  1959. (T 00023590
  1960. (MESPRI (QUOTE (ASSIGNMENT FOR)) 00023600
  1961. U 00023610
  1962. (QUOTE (REDEFINED)) 00023620
  1963. NIL 00023630
  1964. NIL))))) 00023640
  1965. 00023650
  1966. (MESPRI (LAMBDA (U V W X Y) 00023660
  1967. (PROG (Z) 00023670
  1968. (COND 00023680
  1969. ((AND (NULL Y) (NULL *MSG)) (RETURN NIL)) 00023690
  1970. ((AND OFL* (OR *FORT (NOT *NAT))) (GO B))) 00023700
  1971. A (LPRIM U) 00023710
  1972. (MAPRIN V) 00023720
  1973. (PRINC* **BLANK) 00023730
  1974. (LPRI W) 00023740
  1975. (MATHPRINT X) 00023750
  1976. (COND ((NULL OFL*) (RETURN NIL)) (Z (RETURN (WRS OFL*)))) 00023760
  1977. B (WRS NIL) 00023770
  1978. (SETQ Z T) 00023780
  1979. (GO A)))) 00023790
  1980. 00023800
  1981. (LPRIM (LAMBDA (U) 00023810
  1982. (PROG2 (TERPRI*) (LPRI (CONS (QUOTE ***) U))))) 00023820
  1983. 00023830
  1984. (ERRACH (LAMBDA (U) 00023840
  1985. (PROG NIL 00023850
  1986. (LPRIE (QUOTE (CATASTROPHIC ERROR *****)) T) 00023860
  1987. (PRINTTY U) 00023870
  1988. (PRINTTY **BLANK) 00023880
  1989. (LPRIE (QUOTE 00023890
  1990. (PLEASE SEND 00023900
  1991. OUTPUT 00023910
  1992. AND 00023920
  1993. INPUT 00023930
  1994. LISTING 00023940
  1995. TO 00023950
  1996. THE COMPUTING CENTER
  1997. *****)) 00023990
  1998. T) 00024000
  1999. (ERROR*)))) 00024010
  2000. 00024020
  2001. (ERRPRI1 (LAMBDA (U) 00024030
  2002. (MESPRI (QUOTE (ASSIGNMENT)) U (QUOTE (NOT ALLOWED)) NIL T))) 00024040
  2003. 00024050
  2004. (ERRPRI2 (LAMBDA (U) 00024060
  2005. (MESPRI (QUOTE (FORMAT)) U (QUOTE (INCORRECT)) NIL T))) 00024070
  2006. 00024080
  2007. )) 00024090
  2008. 00024100
  2009. DEFINE (( 00024110
  2010. 00024120
  2011. (ORDAD (LAMBDA (A U) 00024130
  2012. (COND ((NULL U) (LIST A)) 00024140
  2013. ((ORDP A (CAR U)) (CONS A U)) 00024150
  2014. (T (CONS (CAR U) (ORDAD A (CDR U))))))) 00024160
  2015. 00024170
  2016. (ORDN (LAMBDA (U) 00024180
  2017. (COND ((NULL U) NIL) 00024190
  2018. ((NULL (CDR U)) U) 00024200
  2019. ((NULL (CDDR U)) (ORD2 (CAR U) (CADR U))) 00024210
  2020. (T (ORDAD (CAR U) (ORDN (CDR U))))))) 00024220
  2021. 00024230
  2022. (ORD2 (LAMBDA (U V) 00024240
  2023. (COND ((ORDP U V) (LIST U V)) (T (LIST V U))))) 00024250
  2024. 00024260
  2025. (ORDP (LAMBDA (U V) 00024270
  2026. (COND ((NULL U) (NULL V)) 00024280
  2027. ((NULL V) T) 00024290
  2028. ((ATOM U) 00024300
  2029. (COND 00024310
  2030. ((ATOM V) 00024320
  2031. (COND ((NUMBERP U) (AND (NUMBERP V) (NOT (LESSP U V)))) 00024330
  2032. ((NUMBERP V) T) 00024340
  2033. (T (ORDERP U V)))) 00024350
  2034. (T T))) 00024360
  2035. ((ATOM V) NIL) 00024370
  2036. ((EQUAL (CAR U) (CAR V)) (ORDP (CDR U) (CDR V))) 00024380
  2037. (T (ORDP (CAR U) (CAR V)))))) 00024390
  2038. 00024400
  2039. )) 00024410
  2040. 00024420
  2041. DEFINE (( 00024430
  2042. 00024440
  2043. (ADDSQ (LAMBDA (U V) 00024450
  2044. (COND ((EQUAL (CDR U) (CDR V)) 00024460
  2045. (CONS (ADDF (CAR U) (CAR V)) (CDR U))) 00024470
  2046. ((NULL (CAR U)) V) 00024480
  2047. ((NULL (CAR V)) U) 00024490
  2048. ((NULL *MCD) (CONS (ADDF (MKSQP U) (MKSQP V)) 1)) 00024500
  2049. (T 00024510
  2050. ((LAMBDA(Z) 00024520
  2051. ((LAMBDA(X Y) 00024530
  2052. (COND ((OR (NULL X) (NULL Y)) (ERRACH (QUOTE ADDSQ))) (T 00024531
  2053. (CONS (ADDF (MULTF Y (CAR U)) (MULTF X (CAR V))) 00024540
  2054. (MULTF Y (CDR U)))) 00024550
  2055. )) 00024551
  2056. (QUOTF (CDR U) Z) 00024560
  2057. (QUOTF (CDR V) Z))) 00024570
  2058. (GCD1 (CDR U) (CDR V))))))) 00024580
  2059. 00024590
  2060. (ADDF (LAMBDA (U V) 00024600
  2061. (COND ((NULL U) V) 00024610
  2062. ((NULL V) U) 00024620
  2063. ((ATOM U) (ADDN U V)) 00024630
  2064. ((ATOM V) (ADDN V U)) 00024640
  2065. ((EQUAL (CAAR U) (CAAR V)) 00024650
  2066. ((LAMBDA(X) 00024660
  2067. (COND ((NULL X) (ADDF (CDR U) (CDR V))) 00024670
  2068. (T 00024680
  2069. (CONS (CONS (CAAR U) X) (ADDF (CDR U) (CDR V)))))) 00024690
  2070. (ADDF (CDAR U) (CDAR V)))) 00024700
  2071. ((ORDP (CAAR U) (CAAR V)) (CONS (CAR U) (ADDF (CDR U) V))) 00024710
  2072. (T (CONS (CAR V) (ADDF U (CDR V))))))) 00024720
  2073. 00024730
  2074. (ADDN (LAMBDA (N V) 00024740
  2075. (COND ((NULL V) N) 00024750
  2076. ((ATOM V) 00024760
  2077. ((LAMBDA (M) (COND ((ZEROP M) NIL) (T M))) (PLUS N V))) 00024770
  2078. (T (CONS (CAR V) (ADDN N (CDR V))))))) 00024780
  2079. 00024790
  2080. (MULTSQ (LAMBDA (U V) 00024800
  2081. (COND 00024810
  2082. ((OR (NULL (CAR U)) (NULL (CAR V))) (CONS NIL 1)) 00024820
  2083. (T 00024830
  2084. ((LAMBDA(X Y) 00024840
  2085. (COND ((AND X Y) (CONS (MULTF X Y) 1)) 00024850
  2086. (X (CONS (MULTF X (CAR V)) (CDR U))) 00024860
  2087. (Y (CONS (MULTF (CAR U) Y) (CDR V))) 00024870
  2088. (T 00024880
  2089. (CONS (MULTF (CAR U) (CAR V)) 00024890
  2090. (MULTF (CDR U) (CDR V)))))) 00024900
  2091. (QUOTF (CAR U) (CDR V)) 00024910
  2092. (QUOTF (CAR V) (CDR U))))))) 00024920
  2093. 00024930
  2094. (MULTF (LAMBDA (U V) 00024940
  2095. (PROG (X Y Z) 00024950
  2096. (COND ((OR (NULL U) (NULL V)) (RETURN NIL)) 00024960
  2097. ((ATOM U) (RETURN (MULTN U V))) 00024970
  2098. ((ATOM V) (RETURN (MULTN V U))) 00024980
  2099. ((OR *EXP *NCMP) (GO A))) 00024990
  2100. (SETQ U (MKSFP U 1)) 00025000
  2101. (SETQ V (MKSFP V 1)) 00025010
  2102. (COND ((ATOM U) (RETURN (MULTN U V))) 00025020
  2103. ((ATOM V) (RETURN (MULTN V U)))) 00025030
  2104. A (SETQ X (CAAAR U)) 00025040
  2105. (SETQ Y (CAAAR V)) 00025050
  2106. (COND 00025060
  2107. ((OR (ATOM X) 00025070
  2108. (ATOM Y) 00025080
  2109. (NOT (ATOM (CAR X))) 00025090
  2110. (NOT (ATOM (CAR Y)))) 00025100
  2111. (GO B)) 00025110
  2112. ((AND (EQ (CAR X) (CAR Y)) 00025120
  2113. (SETQ Z (GET (CAR X) (QUOTE MRULE))) 00025130
  2114. (NOT 00025140
  2115. (EQ (SETQ Z (*APPLY Z (LIST (CAAR U) (CAAR V)))) 00025150
  2116. (QUOTE FAILED)))) 00025160
  2117. (RETURN 00025170
  2118. (ADDF (MULTF Z (MULTF (CDAR U) (CDAR V))) 00025180
  2119. (ADDF (MULTF (LIST (CAR U)) (CDR V)) 00025190
  2120. (MULTF (CDR U) V))))) 00025200
  2121. ((AND (FLAGP (CAR X) (QUOTE NONCOM)) 00025210
  2122. (FLAGP (CAR Y) (QUOTE NONCOM))) 00025220
  2123. (GO B1))) 00025230
  2124. B (COND ((EQ X Y) (GO C)) 00025240
  2125. ((ORDP (CAAR U) (CAAR V)) (GO B1))) 00025250
  2126. (SETQ X (MULTF U (CDAR V))) 00025260
  2127. (SETQ Y (MULTF U (CDR V))) 00025270
  2128. (RETURN (COND ((NULL X) Y) (T (CONS (CONS (CAAR V) X) Y)))) 00025280
  2129. B1 (SETQ X (MULTF (CDAR U) V)) 00025290
  2130. (SETQ Y (MULTF (CDR U) V)) 00025300
  2131. (RETURN (COND ((NULL X) Y) (T (CONS (CONS (CAAR U) X) Y)))) 00025310
  2132. C (SETQ X (MKSP X (PLUS (CDAAR U) (CDAAR V)))) 00025320
  2133. (SETQ Y 00025330
  2134. (ADDF (MULTF (LIST (CAR U)) (CDR V)) 00025340
  2135. (MULTF (CDR U) V))) 00025350
  2136. (RETURN 00025360
  2137. (COND 00025370
  2138. ((NULL (CDR X)) 00025380
  2139. (COND ((NULL (CAAR X)) Y) 00025390
  2140. (T 00025400
  2141. (ADDF (MULTF (CAAR X) 00025410
  2142. (MULTF (CDAR U) 00025420
  2143. (COND 00025430
  2144. ((EQUAL (CDAR X) 1) (CDAR V)) 00025440
  2145. (T 00025450
  2146. (MULTF 00025460
  2147. (MKSQP (CONS 1 (CDAR X))) 00025470
  2148. (CDAR V)))))) 00025480
  2149. Y)))) 00025490
  2150. ((NULL (SETQ U (MULTF (CDAR U) (CDAR V)))) Y) 00025495
  2151. (T (CONS (CONS X U) Y))))))) 00025500
  2152. 00025510
  2153. (MULTF2 (LAMBDA (U V) 00025520
  2154. (MULTF (LIST (CONS U 1)) V))) 00025530
  2155. 00025540
  2156. (MULTN (LAMBDA (N V) 00025550
  2157. (COND ((NULL V) NIL) 00025560
  2158. ((ZEROP N) NIL) 00025570
  2159. ((ONEP N) V) 00025580
  2160. ((NUMBERP V) (TIMES N V)) 00025590
  2161. ((EQ (CAR V) (QUOTE QUOTIENT)) 00025591
  2162. (MKFR (TIMES N (CADR V)) (CADDR V))) 00025592
  2163. (T 00025600
  2164. (CONS (CONS (CAAR V) (MULTN N (CDAR V))) 00025610
  2165. (MULTN N (CDR V))))))) 00025620
  2166. 00025630
  2167. )) 00025640
  2168. 00025650
  2169. DEFINE (( 00025660
  2170. 00025670
  2171. (REVAL (LAMBDA (U) 00025680
  2172. (COND ((AND (NUMBERP U) (FIXP U)) U) 00025690
  2173. ((VECTORP U) U) 00025700
  2174. (T ((LAMBDA (X) 00025710
  2175. (COND ((AND (EQCAR X (QUOTE MINUS)) (NUMBERP (CADR X))) 00025712
  2176. (MINUS (CADR X))) 00025714
  2177. (T X))) 00025716
  2178. (PREPSQ (AEVAL1 U))))))) 00025718
  2179. 00025720
  2180. (AEVAL (LAMBDA (U) 00025730
  2181. (COND 00025740
  2182. ((EQCAR U (QUOTE *COMMA*)) (REDERR (QUOTE (SYNTAX ERROR)))) 00025750
  2183. (T (MK*SQ (AEVAL1 U)))))) 00025760
  2184. 00025770
  2185. (AEVAL1 (LAMBDA (U) 00025780
  2186. (PROG2 (RSET2) 00025790
  2187. (COND ((MATEXPR U) (MATSM U)) (T (SUBS2 (SIMP* U))))))) 00025800
  2188. 00025810
  2189. (MATEXPR (LAMBDA (U) 00025820
  2190. NIL)) 00025830
  2191. 00025840
  2192. (MK*SQ (LAMBDA (U) 00025880
  2193. (COND ((NULL (CAR U)) 0) 00025890
  2194. ((AND (ATOM (CAR U)) (EQUAL (CDR U) 1)) (CAR U)) 00025900
  2195. ((EQCAR U (QUOTE MAT)) U) 00025910
  2196. (T (CONS (QUOTE *SQ) (CONS U *SQVAR*)))))) 00025920
  2197. 00025930
  2198. (RSET2 (LAMBDA NIL 00025940
  2199. (PROG2 (MAP RPLIS* 00025950
  2200. (FUNCTION (LAMBDA (J) (RPLACW (CDAR J) (CAAR J))))) 00025960
  2201. (SETQ RPLIS* NIL)))) 00025970
  2202. 00025980
  2203. )) 00025990
  2204. 00026000
  2205. DEFINE (( 00026010
  2206. 00026020
  2207. (MKSP (LAMBDA (U P) 00026030
  2208. (PROG (V X Y) 00026040
  2209. (SETQ U (FKERN U)) 00026050
  2210. A0 (SETQ V (CDDR U)) 00026060
  2211. A (COND ((OR (NULL V) (NULL SUBFG*)) (GO B)) 00026070
  2212. ((SETQ X (ASSOC (QUOTE ASYMP) V)) (GO L1)) 00026080
  2213. ((SETQ X (ASSOC (QUOTE REP) V)) (GO L2)) 00026090
  2214. ((AND (NOT (ATOM (CAR U))) 00026110
  2215. (ATOM (CAAR U)) 00026120
  2216. (FLAGP (CAAR U) (QUOTE VOP)) 00026130
  2217. (VCREP U)) 00026140
  2218. (GO A0))) 00026150
  2219. B (RETURN (GETPOWER U P)) 00026170
  2220. L1 (COND 00026180
  2221. ((NOT (LESSP P (CDR X))) (RETURN (LIST (CONS NIL 1))))) 00026190
  2222. (SETQ V (DELASC (CAR X) V)) 00026200
  2223. (GO A) 00026210
  2224. L2 (SETQ V (CDDDR X)) 00026220
  2225. (COND ((LESSP P (CADDR X)) (GO B)) 00026230
  2226. ((AND (CAR V) 00026231
  2227. (NOT (FLAGP** (CAR U) (QUOTE WEIGHT)))) (GO L3))) 00026232
  2228. (SETQ SUBL* (CONS V SUBL*)) 00026240
  2229. (SETQ Y (SIMPCAR (CDR X))) 00026250
  2230. (COND 00026260
  2231. ((NOT (ASSOC (QUOTE HOLD) (CDDR U))) (GO L21)) 00026270
  2232. ((EQUAL (CDR Y) 1) (SETQ Y (CONS (MKSFP (CAR Y) 1) 1))) 00026280
  2233. (T (SETQ Y (MKSQP Y)))) 00026290
  2234. L21 (RPLACA V (MK*SQ Y)) 00026295
  2235. (GO L31) 00026300
  2236. L3 (SETQ Y (SIMPCAR V)) 00026305
  2237. (COND((AND(EQCAR (CAR V)(QUOTE *SQ))(NULL(CADDAR V)))(GO L21)))00026310
  2238. L31 (SETQ V Y) 00026315
  2239. (SETQ X (CADDR X)) 00026320
  2240. (COND ((ONEP X) (RETURN (LIST (NMULTSQ V P))))) 00026330
  2241. (SETQ Y (DIVIDE P X)) 00026340
  2242. C (SETQ V (NMULTSQ V (CAR Y))) 00026370
  2243. (COND 00026380
  2244. ((NOT (ZEROP (CDR Y))) 00026390
  2245. (SETQ V 00026400
  2246. (CONS (MULTF2 (GETPOWER U (CDR Y)) (CAR V)) 00026410
  2247. (CDR V))))) 00026420
  2248. (RETURN (LIST V))))) 00026470
  2249. 00026500
  2250. (FKERN (LAMBDA (U) 00026510
  2251. (PROG (V) 00026520
  2252. (COND ((NOT (ATOM U)) (GO A0)) 00026530
  2253. ((SETQ V (GET U (QUOTE APROP))) (RETURN V))) 00026540
  2254. (SETQ V (LIST U NIL)) 00026550
  2255. (PUT U (QUOTE APROP) V) 00026560
  2256. (RETURN V) 00026570
  2257. A0 (COND ((NOT (ATOM (CAR U))) (SETQ V EXLIST*)) 00026580
  2258. ((NOT (SETQ V (GET (CAR U) (QUOTE KLIST)))) (GO B))) 00026590
  2259. A (COND ((EQUAL U (CAAR V)) (RETURN (CAR V))) 00026600
  2260. ((ORDP U (CAAR V)) 00026610
  2261. (RETURN 00026620
  2262. (CAR 00026630
  2263. (RPLACW V 00026640
  2264. (CONS (LIST U NIL) 00026650
  2265. (CONS (CAR V) (CDR V))))))) 00026660
  2266. ((NULL (CDR V)) 00026670
  2267. (RETURN (CADR (RPLACD V (LIST (LIST U NIL))))))) 00026680
  2268. (SETQ V (CDR V)) 00026690
  2269. (GO A) 00026700
  2270. B (SETQ V (LIST (LIST U NIL))) 00026710
  2271. (PUT (CAR U) (QUOTE KLIST) V) 00026720
  2272. (GO A)))) 00026730
  2273. 00026740
  2274. (GETPOWER (LAMBDA (U N) 00026750
  2275. (PROG (V) 00026760
  2276. (COND ((AND SUBFG* (NOT (ASSOC (QUOTE USED*) (CDR U)))) 00026761
  2277. (ACONC U (LIST (QUOTE USED*))))) 00026762
  2278. (SETQ V (CADR U)) 00026770
  2279. (COND 00026780
  2280. ((NULL V) 00026790
  2281. (RETURN (CAAR (RPLACA (CDR U) (LIST (CONS (CAR U) N))))))) 00026800
  2282. A (COND ((EQUAL N (CDAR V)) (RETURN (CAR V))) 00026810
  2283. ((LESSP N (CDAR V)) 00026820
  2284. (RETURN 00026830
  2285. (CAR 00026840
  2286. (RPLACW V 00026850
  2287. (CONS (CONS (CAAR V) N) 00026860
  2288. (CONS (CAR V) (CDR V))))))) 00026870
  2289. ((NULL (CDR V)) 00026880
  2290. (RETURN (CADR (RPLACD V (LIST (CONS (CAAR V) N))))))) 00026890
  2291. (SETQ V (CDR V)) 00026900
  2292. (GO A)))) 00026910
  2293. 00026920
  2294. (NMULTSQ (LAMBDA (U N) 00026930
  2295. (PROG (X) 00026940
  2296. (COND 00026950
  2297. ((NULL (CAR U)) (RETURN U)) 00026955
  2298. ((NULL *EXP) 00026960
  2299. (RETURN (CONS (MKSFP (CAR U) N) (MKSFP (CDR U) N))))) 00026970
  2300. (SETQ X U) 00026980
  2301. A (COND ((ONEP N) (RETURN X))) 00026990
  2302. (SETQ X (MULTSQ U X)) 00027000
  2303. (SETQ N (SUB1 N)) 00027010
  2304. (GO A)))) 00027020
  2305. 00027030
  2306. )) 00027040
  2307. 00027050
  2308. DEFINE (( 00027060
  2309. 00027070
  2310. (MKSF (LAMBDA (U N) 00027080
  2311. ((LAMBDA(X) 00027090
  2312. (COND 00027100
  2313. ((NULL (CDR X)) 00027110
  2314. (COND ((EQUAL (CDAR X) 1) (CAAR X)) 00027120
  2315. (T (MULTF (MKSQP (CONS 1 (CDAR X))) (CAAR X))))) 00027130
  2316. (T (LIST (CONS X 1))))) 00027140
  2317. (MKSP U N)))) 00027150
  2318. 00027160
  2319. (MKSFP (LAMBDA (U N) 00027170
  2320. (COND ((KERNLP U) (NMULTF U N)) 00027180
  2321. (T 00027190
  2322. (PROG2 (SETQ SUB2* T) 00027200
  2323. (COND ((MINUSF U) (MULTN -1 (MKSF (MULTN -1 U) N))) 00027210
  2324. (T (MKSF U N)))))))) 00027220
  2325. 00027230
  2326. (MKSQP (LAMBDA (U) 00027240
  2327. (COND ((NULL (CAR U)) NIL) 00027250
  2328. ((OR (EQUAL (CDR U) 1) (EQUAL (CDR (SETQ U (CANCEL U))) 1)) 00027260
  2329. (COND (*EXP (CAR U)) (T (MKSFP (CAR U) 1)))) 00027270
  2330. (T 00027280
  2331. (PROG NIL 00027290
  2332. (SETQ SUB2* T) 00027300
  2333. (RETURN 00027310
  2334. (COND (*EXP 00027320
  2335. (MULTF (CAR U) 00027330
  2336. (MKSF (MK*SQ 00027340
  2337. (CONS 1 (MKSFP (CDR U) 1))) 00027350
  2338. 1))) 00027360
  2339. ((MINUSF (CAR U)) 00027370
  2340. (MULTN -1 00027380
  2341. (MKSF 00027390
  2342. (MK*SQ 00027400
  2343. (CONS (MULTN -1 (CAR U)) 00027410
  2344. (MKSFP (CDR U) 1))) 00027420
  2345. 1))) 00027430
  2346. (T 00027440
  2347. (MKSF (MK*SQ 00027450
  2348. (CONS (CAR U) (MKSFP (CDR U) 1))) 00027460
  2349. 1))))))))) 00027470
  2350. 00027480
  2351. (MKSQ (LAMBDA (U N) 00027570
  2352. ((LAMBDA(X) 00027580
  2353. (COND ((NULL (CDR X)) (CAR X)) (T (CONS (LIST (CONS X 1)) 1)))) 00027590
  2354. (MKSP U N)))) 00027600
  2355. 00027610
  2356. )) 00027620
  2357. 00027630
  2358. DEFINE (( 00027640
  2359. 00027650
  2360. (SIMP* (LAMBDA (U) 00027660
  2361. (COND ((LESSP (SCNT U) SNO*) (ISIMPQ (SIMP U))) 00027670
  2362. ((EQ (CAR U) (QUOTE PLUS)) (SIMPADD (CDR U))) 00027680
  2363. ((EQ (CAR U) (QUOTE MINUS)) (NEGSQ (SIMP* (CARX (CDR U))))) 00027690
  2364. ((EQ (CAR U) (QUOTE TIMES)) (ISIMPQ* (TSCAN (CDR U)))) 00027700
  2365. (T (ISIMPQ (SIMP U)))))) 00027710
  2366. 00027720
  2367. (SIMPADD (LAMBDA (U) 00027730
  2368. (PROG (Z) 00027740
  2369. (SETQ Z (CONS NIL 1)) 00027750
  2370. A (COND ((NULL U) (RETURN Z))) 00027760
  2371. (SETQ Z (ADDSQ (SIMP* (CAR U)) Z)) 00027770
  2372. (SETQ U (CDR U)) 00027780
  2373. (GO A)))) 00027790
  2374. 00027800
  2375. (ISIMPQ* (LAMBDA (U) 00027810
  2376. (PROG (X) 00027820
  2377. (SETQ U (REVERSE (MAPCAR U (FUNCTION SIMP)))) 00027830
  2378. (SETQ SV* (CONS NIL 1)) 00027840
  2379. (ISIMPQ*1 (CDR U) (CAR U)) 00027850
  2380. (SETQ X SV*) 00027860
  2381. (SETQ SV* NIL) 00027870
  2382. (RETURN X)))) 00027880
  2383. 00027890
  2384. (ISIMPQ*1 (LAMBDA (U V) 00027900
  2385. (PROG (X Y) 00027910
  2386. (COND ((NULL U) (RETURN (SETQ SV* (ADDSQ (ISIMPQ V) SV*))))) 00027920
  2387. (SETQ X (CAAR U)) 00027930
  2388. (SETQ Y (MULTF (CDAR U) (CDR V))) 00027940
  2389. (SETQ V (CAR V)) 00027950
  2390. A (COND ((NULL X) (RETURN NIL)) 00027960
  2391. ((ATOM X) 00027970
  2392. (RETURN (ISIMPQ*1 (CDR U) (CONS (MULTN X V) Y))))) 00027980
  2393. (ISIMPQ*1 (CDR U) (CONS (MULTF (LIST (CAR X)) V) Y)) 00027990
  2394. (SETQ X (CDR X)) 00028000
  2395. (GO A)))) 00028010
  2396. 00028020
  2397. (ISIMPQ (LAMBDA (U) 00028020
  2398. U)) 00028020
  2399. 00028020
  2400. (TSCAN (LAMBDA (U) 00028030
  2401. (COND ((NULL U) NIL) 00028040
  2402. ((ATOM U) (ERRACH (LIST (QUOTE TSCAN) U))) 00028050
  2403. ((EQ (CAR U) (QUOTE TIMES)) (TSCAN (CDR U))) 00028060
  2404. ((AND (NOT (ATOM (CAR U))) (EQ (CAAR U) (QUOTE TIMES))) 00028070
  2405. (APPEND (TSCAN (CDAR U)) (TSCAN (CDR U)))) 00028080
  2406. (T (CONS (CAR U) (TSCAN (CDR U))))))) 00028090
  2407. 00028100
  2408. (SCNT (LAMBDA (U) 00028110
  2409. (COND ((OR (NULL U) (EQUAL U 0)) 0) 00028120
  2410. ((ATOM U) 1) 00028130
  2411. ((EQ (CAR U) (QUOTE PLUS)) 00028140
  2412. (*EVAL 00028150
  2413. (CONS (QUOTE PLUS) (MAPCAR (CDR U) (FUNCTION SCNT))))) 00028160
  2414. ((MEMBER (CAR U) (QUOTE (TIMES G CONS EPS))) 00028170
  2415. (*EVAL 00028180
  2416. (CONS (QUOTE TIMES) (MAPCAR (CDR U) (FUNCTION SCNT))))) 00028190
  2417. ((FLAGP (CAR U) (QUOTE UNIP)) (SCNT (CADR U))) 00028200
  2418. ((EQ (CAR U) (QUOTE EXPT)) 00028210
  2419. (COND 00028220
  2420. ((OR (ATOM (CADR U)) (NOT (NUMBERP (CADDR U)))) 1) 00028230
  2421. (T 00028240
  2422. ((LAMBDA(X) 00028250
  2423. (COND ((LESSP X 2) 1) 00028260
  2424. (T (TIMES 2 X (ABS (*EVAL (CADDR U))))))) 00028270
  2425. (SCNT (CADR U)))))) 00028280
  2426. ((AND (EQ (CAR U) (QUOTE *SQ)) GAMIDEN*) (TERMS1 (CAADR U))) 00028290
  2427. (T 1)))) 00028300
  2428. 00028310
  2429. )) 00028320
  2430. 00028330
  2431. DEFINE (( 00028340
  2432. 00028350
  2433. (SIMP (LAMBDA (U) 00028360
  2434. (PROG (X) 00028370
  2435. A (COND ((ATOM U) (RETURN (SIMPATOM U))) 00028380
  2436. ((OR (NOT (ATOM (CAR U))) (NUMBERP (CAR U))) (GO E)) 00028390
  2437. ((AND (SETQ X (OPMTCH U)) (SETQ U X)) (GO A)) 00028400
  2438. ((SETQ X (GET (CAR U) (QUOTE SIMPFN))) 00028410
  2439. (RETURN 00028420
  2440. (COND 00028430
  2441. ((EQ X (QUOTE IDEN)) (SIMPIDEN U)) 00028440
  2442. (T (*APPLY X (LIST (CDR U))))))) 00028450
  2443. ((GET (CAR U) (QUOTE **ARRAY)) (GO D)) 00028460
  2444. ((FLAGP (CAR U) (QUOTE OPFN)) 00028470
  2445. (SETQ U (*APPLY (CAR U) (CDR U)))) 00028480
  2446. ((GET (CAR U) (QUOTE INFIX)) (GO E)) 00028490
  2447. ((MEMBER (CAR U) (QUOTE (COND PROG))) 00028500
  2448. (RETURN (SIMP (*EVAL U)))) 00028510
  2449. ((NOT (REDMSG (CAR U) (QUOTE OPERATOR) T)) (ERROR*)) 00028520
  2450. (T (MKOP (CAR U)))) 00028530
  2451. (GO A) 00028540
  2452. D (SETQ U (CONS (CAR U) (MAPCAR (CDR U) (FUNCTION REVAL)))) 00028550
  2453. (COND 00028560
  2454. ((NOT (NUMLIS (CDR U))) 00028570
  2455. (REDERR 00028580
  2456. (APPEND (QUOTE (INCORRECT ARRAY ARGUMENTS FOR)) 00028590
  2457. (LIST (CAR U))))) 00028600
  2458. ((AND (SETQ X (GETEL U)) (SETQ U X)) (GO A)) 00028610
  2459. (T (RETURN (MKSQ U 1)))) 00028620
  2460. E (CURERR (QUOTE (SYNTAX ERROR)) NIL)))) 00028630
  2461. 00028640
  2462. (SIMPATOM (LAMBDA (U) 00028650
  2463. (COND((NULL U)(REDERR(QUOTE(NIL USED IN ALGEBRAIC EXPRESSION)))) 00028660
  2464. ((NUMBERP U) 00028670
  2465. (COND ((ZEROP U) (CONS NIL 1)) 00028680
  2466. ((FIXP U) (CONS U 1)) 00028690
  2467. (*FLOAT (CONS (PLUS 0.0 U) 1)) 00028700
  2468. (T 00028710
  2469. ((LAMBDA(Z) 00028720
  2470. (PROG2 (REPPRI U 00028730
  2471. (LIST 00028740
  2472. (QUOTE QUOTIENT) 00028750
  2473. (CAR Z) 00028760
  2474. (CDR Z))) 00028770
  2475. Z)) 00028780
  2476. (MAKFRC U))))) 00028790
  2477. ((VECTORP U) 00028800
  2478. (REDERR 00028810
  2479. (CONS (QUOTE VECTOR) (CONS U (QUOTE (USED AS SCALAR)))))) 00028820
  2480. (T (MKSQ U 1))))) 00028830
  2481. 00028840
  2482. (MAKFRC (LAMBDA (U) 00028850
  2483. (PROG (X Y) 00028860
  2484. (SETQ X (FIX (TIMES **MILLION U))) 00028870
  2485. (SETQ Y (GCDN **MILLION X)) 00028880
  2486. (RETURN (CONS (QUOTIENT X Y) (QUOTIENT **MILLION Y)))))) 00028890
  2487. 00028900
  2488. (MKOP (LAMBDA (U) 00028910
  2489. (COND ((MEMBER U FRLIS*) (REDERR (CONS (QUOTE OPERATOR) 00028920
  2490. (CONS U (QUOTE (CANNOT BE ARBITRARY)))))) 00028922
  2491. (T (PUT U (QUOTE SIMPFN) (QUOTE IDEN)))))) 00028924
  2492. 00028930
  2493. (SIMPCAR (LAMBDA (U) 00028940
  2494. (SIMP (CAR U)))) 00028950
  2495. 00028960
  2496. (VECTORP (LAMBDA (U) 00028970
  2497. NIL)) 00028980
  2498. 00028990
  2499. (SIMPEXPT (LAMBDA (U) 00029000
  2500. (PROG (N X) 00029010
  2501. (COND 00029020
  2502. ((AND (NUMBERP (SETQ N (CARX (CDR U)))) (FIXP N)) (GO A))) 00029030
  2503. (SETQ X *FLOAT) 00029040
  2504. (SETQ *FLOAT NIL) 00029050
  2505. (SETQ N (CANCEL (SIMP N))) 00029060
  2506. (SETQ *FLOAT X) 00029070
  2507. (COND ((AND (ATOM (CAR N)) (EQUAL (CDR N) 1)) (GO A0))) 00029080
  2508. (SETQ X (PREPSQ (SIMPCAR U))) 00029090
  2509. (SETQ N (PREPSQ N)) 00029100
  2510. (COND ((EQCAR X (QUOTE TIMES)) (GO B)) 00029101
  2511. ((AND (EQCAR X (QUOTE MINUS)) 00029102
  2512. (NOT (NUMBERP (CADR X)))) 00029103
  2513. (RETURN 00029104
  2514. (MULTSQ (SIMPEXPT (LIST -1 N)) 00029105
  2515. (SIMPEXPT (LIST (CADR X) N))))) 00029106
  2516. ((EQCAR X (QUOTE QUOTIENT)) 00029107
  2517. (RETURN 00029108
  2518. (MULTSQ (SIMPEXPT (LIST (CADR X) N)) 00029109
  2519. (SIMPEXPT 00029110
  2520. (LIST (CADDR X) (LIST (QUOTE MINUS) N)))))) 00029111
  2521. ((EQCAR X (QUOTE EXPT)) 00029112
  2522. (AND (SETQ N 00029113
  2523. (REVAL (LIST (QUOTE TIMES) (CADDR X) N))) 00029114
  2524. (SETQ X (CADR X))))) 00029115
  2525. (RETURN 00029116
  2526. (COND ((EQUAL X 0) (CONS NIL 1)) 00029117
  2527. ((EQUAL X 1) (CONS 1 1)) 00029118
  2528. ((AND (ATOM X) (MEMBER N FRLIS*)) 00029119
  2529. (CONS (LIST (CONS (CONS X N) 1)) 1)) 00029120
  2530. (T 00029121
  2531. (PROG2 (AND (NOT (MEMBER X EXPTL*)) 00029122
  2532. (NOT (NUMBERP X)) 00029123
  2533. (SETQ EXPTL* (CONS X EXPTL*))) 00029124
  2534. (MKSQ (LIST (QUOTE EXPT) X N) 1))))) 00029125
  2535. A0 (SETQ N (CAR N)) 00029170
  2536. (COND ((NULL N) (SETQ N 0))) 00029172
  2537. A (RETURN 00029180
  2538. (COND ((EQUAL N 0) (CONS 1 1)) 00029190
  2539. ((ATOM (CAR U)) 00029200
  2540. (COND ((NULL N) (CONS 1 1)) 00029210
  2541. ((NUMBERP (CAR U)) 00029220
  2542. (COND 00029230
  2543. ((ZEROP (CAR U)) (CONS NIL 1)) 00029240
  2544. ((MINUSP N) 00029250
  2545. (CONS 1 (EXPT (CAR U) (MINUS N)))) 00029260
  2546. (T (CONS (EXPT (CAR U) N) 1)))) 00029270
  2547. ((MINUSP N) 00029280
  2548. (LIST 1 (CONS (MKSP (CAR U) (MINUS N)) 1))) 00029290
  2549. (T (MKSQ (CAR U) N)))) 00029300
  2550. ((MINUSP N) (REVPR (NMULTSQ (SIMPCAR U) (MINUS N)))) 00029310
  2551. (T (NMULTSQ (SIMPCAR U) N)))) 00029311
  2552. B (SETQ U (CDDR X)) 00029312
  2553. (SETQ X (SIMPEXPT (LIST (CADR X) N))) 00029313
  2554. C (COND ((NULL U) (RETURN X))) 00029314
  2555. (SETQ X (MULTSQ (SIMPEXPT (LIST (CAR U) N)) X)) 00029315
  2556. (SETQ U (CDR U)) 00029316
  2557. (GO C)))) 00029317
  2558. 00029318
  2559. (MEXPT (LAMBDA (U V) 00029340
  2560. (COND 00029350
  2561. ((NOT (EQUAL (CADAR U) (CADAR V))) (QUOTE FAILED)) 00029360
  2562. (T 00029370
  2563. ((LAMBDA(X) 00029380
  2564. (COND ((EQUAL X 0) 1) 00029390
  2565. ((AND (NUMBERP X) (EQUAL (CADAR U) (QUOTE (MINUS 1)))) 00029400
  2566. (COND ((ZEROP (REMAINDER X 2)) 1) (T -1))) 00029410
  2567. (T (MKSQP (MKSQ (LIST (QUOTE EXPT) (CADAR U) X) 1))))) 00029450
  2568. (REVAL 00029460
  2569. (LIST (QUOTE PLUS) 00029470
  2570. (LIST (QUOTE TIMES) (CDR U) (CADDAR U)) 00029480
  2571. (LIST (QUOTE TIMES) (CDR V) (CADDAR V))))))))) 00029490
  2572. 00029500
  2573. )) 00029510
  2574. 00029520
  2575. DEFLIST (((EXPT MEXPT)) MRULE) 00029530
  2576. 00029540
  2577. DEFINE (( 00029550
  2578. 00029560
  2579. (SIMPIDEN (LAMBDA (*S*) 00029570
  2580. (PROG (Y Z) 00029580
  2581. (COND ((FLAGP (CAR *S*) (QUOTE VOP)) (GO E))) 00029590
  2582. (SETQ *S* 00029600
  2583. (CONS (CAR *S*) (MAPCAR (CDR *S*) (FUNCTION REVAL)))) 00029610
  2584. B (COND ((SETQ Z (OPMTCH *S*)) (RETURN (SIMP Z))) 00029620
  2585. ((FLAGP (CAR *S*) (QUOTE SYMMETRIC)) 00029630
  2586. (SETQ *S* (CONS (CAR *S*) (ORDN (CDR *S*))))) 00029640
  2587. ((FLAGP (CAR *S*) (QUOTE ANTISYMMETRIC)) (GO D))) 00029650
  2588. C (SETQ *S* (MKSQ *S* 1)) 00029660
  2589. (RETURN (COND (Y (NEGSQ *S*)) (T *S*))) 00029670
  2590. D (COND ((REPEATS (CDR *S*)) (RETURN (CONS NIL 1))) 00029680
  2591. ((NOT (PERMP (SETQ Z (ORDN (CDR *S*))) (CDR *S*))) 00029690
  2592. (SETQ Y T))) 00029700
  2593. (SETQ *S* (CONS (CAR *S*) Z)) 00029710
  2594. (GO C) 00029720
  2595. E (COND ((ATOMLIS (CDR *S*)) (GO B))) 00029730
  2596. (RETURN 00029740
  2597. (MKVARG (CDR *S*) 00029750
  2598. (FUNCTION 00029760
  2599. (LAMBDA (J) (SIMPIDEN (CONS (CAR *S*) J))))))))) 00029770
  2600. 00029780
  2601. (NEGSQ (LAMBDA (U) 00029790
  2602. (CONS (MULTN -1 (CAR U)) (CDR U)))) 00029800
  2603. 00029810
  2604. (SIMPMINUS (LAMBDA (U) 00029820
  2605. (NEGSQ (SIMP (CARX U))))) 00029830
  2606. 00029840
  2607. (SIMPPLUS (LAMBDA (U) 00029850
  2608. (PROG (Z) 00029860
  2609. (SETQ Z (CONS NIL 1)) 00029870
  2610. A (COND ((NULL U) (RETURN Z))) 00029880
  2611. (SETQ Z (ADDSQ (SIMPCAR U) Z)) 00029890
  2612. (SETQ U (CDR U)) 00029900
  2613. (GO A)))) 00029910
  2614. 00029920
  2615. (SIMPQUOT (LAMBDA (U) 00029930
  2616. ((LAMBDA(X) 00029940
  2617. (COND 00029950
  2618. ((NULL (CDR X)) (REDERR (QUOTE (ZERO DENOMINATOR)))) 00029960
  2619. (T (MULTSQ (SIMPCAR U) X)))) 00029970
  2620. (SIMPRECIP (CDR U))))) 00029980
  2621. 00029990
  2622. (SIMPRECIP (LAMBDA (U) 00030000
  2623. ((LAMBDA(X) 00030010
  2624. (COND 00030020
  2625. ((NULL (CAR X)) (REDERR (QUOTE (ZERO DENOMINATOR)))) 00030030
  2626. ((AND *FLOAT (ATOM (CAR X))) 00030040
  2627. (CONS (MULTN (RECIP (PLUS 0.0 (CAR X))) (CDR X)) 1)) 00030050
  2628. (T (REVPR X)))) 00030060
  2629. (SIMP (CARX U))))) 00030070
  2630. 00030080
  2631. (SIMPTIMES (LAMBDA (U) 00030090
  2632. (PROG (X) 00030100
  2633. (SETQ X (SIMPCAR U)) 00030110
  2634. A (SETQ U (CDR U)) 00030120
  2635. (COND ((NULL (CAR X)) (RETURN (CONS NIL 1))) 00030130
  2636. ((NULL U) (RETURN X))) 00030140
  2637. (SETQ X (MULTSQ X (SIMPCAR U))) 00030150
  2638. (GO A)))) 00030160
  2639. 00030170
  2640. (SIMPSUBS (LAMBDA (U) 00030180
  2641. (PROG (X Y Z) 00030190
  2642. (SETQ U (REVERSE U)) 00030200
  2643. (SETQ Y (SUBS2 (SIMPCAR U))) 00030210
  2644. (SETQ U (CDR U)) 00030220
  2645. A (COND ((NULL U) (GO B)) 00030230
  2646. ((NOT (MEMBER (CAAR U) (QUOTE (EQUAL SETQ)))) 00030240
  2647. (GO ERR)) 00030250
  2648. ((VECTORP (SETQ X (CADAR U))) (GO C)) 00030260
  2649. ((OR (NOT (KERNP (SETQ X (SIMP X)))) 00030270
  2650. (NOT (EQUAL (CDR X) 1)) 00030280
  2651. (NOT (EQUAL (CDAAR X) 1)) 00030290
  2652. (NOT (EQUAL (CDAAAR X) 1))) 00030300
  2653. (GO ERR))) 00030310
  2654. (SETQ X (CAAAAR X)) 00030320
  2655. C (SETQ Z (CONS (CONS X (CADDAR U)) Z)) 00030330
  2656. (SETQ U (CDR U)) 00030340
  2657. (GO A) 00030350
  2658. B (RETURN (SIMP (SUBLIS Z (PREPSQ Y)))) 00030360
  2659. ERR (ERRPRI1 (CAR U)) 00030370
  2660. (ERROR*)))) 00030380
  2661. 00030390
  2662. (SIMP*SQ (LAMBDA (U) 00030400
  2663. (COND ((NULL (CADR U)) (SIMP (PREPSQ (CAR U)))) (T (CAR U))))) 00030410
  2664. 00030420
  2665. )) 00030430
  2666. 00030440
  2667. DEFINE (( 00030450
  2668. 00030460
  2669. (SUBS2 (LAMBDA (U) 00030470
  2670. (PROG (X) 00030480
  2671. (RSET2) 00030490
  2672. (SETQ U (EXPSQ U)) 00030500
  2673. (COND ((AND (NULL EXPTL*) 00030505
  2674. (OR (NULL MATCH*) (NULL SUBFG*))) (GO A))) 00030510
  2675. (COND (EXPTL* (SETQ U (EXPTCHK U)))) 00030515
  2676. (SETQ X MCHFG*) 00030520
  2677. (SETQ U (MULTSQ (SUBS31 (CAR U)) (REVPR (SUBS31 (CDR U))))) 00030530
  2678. (SETQ MCHFG* X) 00030540
  2679. A (RETURN (CANCEL U))))) 00030550
  2680. 00030560
  2681. (CANCEL (LAMBDA (U) 00030570
  2682. (PROG (X) 00030580
  2683. (COND ((NULL (CAR U)) (RETURN (CONS NIL 1))) 00030590
  2684. ((OR *FLOAT (EQUAL (CDR U) 1)) (GO C))) 00030600
  2685. (SETQ X (GCD1 (CDR U) (CAR U))) 00030610
  2686. (SETQ U (CONS (QUOTF (CAR U) X) (QUOTF (CDR U) X))) 00030620
  2687. C (RETURN (MKCANON U))))) 00030630
  2688. 00030640
  2689. (MKCANON (LAMBDA (U) 00030650
  2690. (COND ((MINUSF (CDR U)) 00030660
  2691. (CONS (MULTN -1 (CAR U)) (MULTN -1 (CDR U)))) 00030670
  2692. (T U)))) 00030680
  2693. 00030690
  2694. (MINUSF (LAMBDA (U) 00030700
  2695. (COND ((NULL U) NIL) 00030701
  2696. ((ATOM U) (MINUSP U)) 00030702
  2697. ((EQ (CAR U) (QUOTE QUOTIENT)) (MINUSP (CADR U))) 00030703
  2698. (T (MINUSF (CDAR U)))))) 00030704
  2699. 00030720
  2700. )) 00030730
  2701. 00030740
  2702. DEFINE (( 00030750
  2703. 00030760
  2704. (EXPSQ (LAMBDA (U) 00030770
  2705. (COND ((OR (NULL SUB2*) (NULL *EXP)) U) 00030780
  2706. (T 00030790
  2707. ((LAMBDA(X Y) 00030800
  2708. (CONS (MULTF (CAR X) (CDR Y)) (MULTF (CDR X) (CAR Y)))) 00030810
  2709. (EXPAND (CAR U)) 00030820
  2710. (COND (*XDN (EXPAND (CDR U))) (T (CONS (CDR U) 1)))))))) 00030830
  2711. 00030840
  2712. (EXPAND (LAMBDA (U) 00030850
  2713. (PROG (W X Y Z) 00030860
  2714. (COND ((ATOM U) (RETURN (CONS U 1)))) 00030870
  2715. (SETQ X U) 00030880
  2716. (SETQ Z (CONS NIL 1)) 00030890
  2717. A (COND 00030900
  2718. ((NULL X) 00030910
  2719. (RETURN 00030920
  2720. (COND ((EQUAL (CAR Z) U) (CONS U (CDR Z))) (T Z)))) 00030930
  2721. ((ATOM X) (GO E))) 00030940
  2722. (SETQ Y (EXPAND (CDAR X))) 00030950
  2723. (COND 00030960
  2724. ((AND (NOT (ATOM (SETQ W (CAAAR X)))) 00030970
  2725. (OR (EQ (CAR W) (QUOTE *SQ)) (NOT (ATOM (CAR W))))) 00030980
  2726. (GO C))) 00030990
  2727. (SETQ Z (ADDSQ (CONS (MULTF2 (CAAR X) (CAR Y)) (CDR Y)) Z)) 00031000
  2728. B (SETQ X (CDR X)) 00031010
  2729. (GO A) 00031020
  2730. C (SETQ Z 00031030
  2731. (ADDSQ 00031040
  2732. (MULTSQ 00031050
  2733. (COND 00031060
  2734. ((EQ (CAR W) (QUOTE *SQ)) 00031070
  2735. (NMULTSQ (EXPSQ (CADR W)) (CDAAR X))) 00031080
  2736. ((NULL (CDAAR X)) (EXPSQ W)) 00031090
  2737. (T (NMULTSQ (EXPAND W) (CDAAR X)))) 00031100
  2738. Y) 00031110
  2739. Z)) 00031120
  2740. (GO B) 00031130
  2741. E (SETQ Z (ADDSQ (CONS X 1) Z)) 00031140
  2742. (SETQ X NIL) 00031150
  2743. (GO A)))) 00031160
  2744. 00031170
  2745. )) 00031180
  2746. 00031181
  2747. DEFINE (( 00031182
  2748. 00031183
  2749. (EXSCAN (LAMBDA (U) 00031184
  2750. (COND ((ATOM U) U) 00031185
  2751. (T 00031186
  2752. (ADDF 00031187
  2753. (MULTF2 00031188
  2754. (COND 00031189
  2755. ((MEMBER (CAAAR U) EXPTL*) 00031190
  2756. (MKSP (LIST (QUOTE EXPT) (CAAAR U) 1) (CDAAR U))) 00031191
  2757. (T (CAAR U))) 00031192
  2758. (EXSCAN (CDAR U))) 00031193
  2759. (EXSCAN (CDR U))))))) 00031194
  2760. 00031195
  2761. (EXPTCHK (LAMBDA (U) 00031196
  2762. (PROG (V W X Y Y1 Z) 00031197
  2763. (SETQ V (EXSCAN (CAR U))) 00031198
  2764. (SETQ W (CDR U)) 00031199
  2765. (SETQ X (CONS FACTORS* ORDN*)) 00031200
  2766. (SETQ FACTORS* NIL) 00031201
  2767. (SETQ ORDN* 0) 00031202
  2768. (SETQ Y (CKRN W)) 00031203
  2769. A (COND ((ATOM Y) (GO C))) 00031204
  2770. (SETQ Y1 (CAAAR Y)) 00031205
  2771. (COND 00031206
  2772. ((AND (NOT (MEMBER Y1 EXPTL*)) (NOT (EQCAR Y1 (QUOTE EXPT)))) 00031207
  2773. (GO B))) 00031208
  2774. (SETQ V 00031209
  2775. (MULTF2 00031210
  2776. (MKSP 00031211
  2777. (COND 00031212
  2778. ((MEMBER Y1 EXPTL*) (LIST (QUOTE EXPT) Y1 -1)) 00031213
  2779. (T 00031214
  2780. (LIST (QUOTE EXPT) 00031215
  2781. (CADR Y1) 00031216
  2782. (PREPSQ (SIMPMINUS (CDDR Y1)))))) 00031217
  2783. (CDAAR Y)) 00031218
  2784. V)) 00031219
  2785. (SETQ Z (CONS (CAAR Y) Z)) 00031220
  2786. B (SETQ Y (CDAR Y)) 00031221
  2787. (GO A) 00031222
  2788. C (SETQ FACTORS* (CAR X)) 00031223
  2789. (SETQ ORDN* (CDR X)) 00031224
  2790. (SETQ X 1) 00031225
  2791. D (COND ((NULL Z) (GO E))) 00031226
  2792. (SETQ X (LIST (CONS (CAR Z) X))) 00031227
  2793. (SETQ Z (CDR Z)) 00031228
  2794. (GO D) 00031229
  2795. E (RETURN (CONS V (QUOTF W X)))))) 00031231
  2796. 00031232
  2797. )) 00031233
  2798. 00031234
  2799. DEFINE (( 00031235
  2800. 00031236
  2801. (SUBS31 (LAMBDA (U) 00031237
  2802. (COND ((ATOM U) (CONS U 1)) 00031238
  2803. (T 00031239
  2804. (ADDSQ 00031250
  2805. ((LAMBDA(X) 00031260
  2806. (COND ((NULL MCHFG*) (CONS (LIST (CAR U)) 1)) 00031270
  2807. ((AND MCHFG* (NOT (SETQ MCHFG* NIL)) *RESUBS) 00031280
  2808. (SUBS2 X)) 00031290
  2809. (T X))) 00031300
  2810. (SUBS3T (CAR U) MATCH*)) 00031310
  2811. (SUBS31 (CDR U))))))) 00031320
  2812. 00031330
  2813. (SUBS3T (LAMBDA (U V) 00031340
  2814. (SUBS3T0 (SUBS3T1 U V)))) 00031350
  2815. 00031360
  2816. (SUBS3T0 (LAMBDA (X) 00031370
  2817. (PROG (Y) 00031380
  2818. (COND ((OR (CAR X) (ATOM (CDR X))) (RETURN X))) 00031390
  2819. (SETQ Y (MULTSQ (SIMP (CAADR X)) (CADDR X))) 00031400
  2820. (COND 00031410
  2821. ((CDADR X) 00031420
  2822. (SETQ Y 00031430
  2823. (MULTSQ 00031440
  2824. (REVPR (SIMPTIMES (EXCHK (CDADR X) NIL))) 00031450
  2825. Y)))) 00031460
  2826. (RETURN (CANCEL Y))))) 00031470
  2827. 00031480
  2828. (SUBS3T1 (LAMBDA (U V) 00031490
  2829. (PROG (X Y Z) 00031500
  2830. (SETQ X (MTCHK (CAR U) V)) 00031510
  2831. (COND 00031520
  2832. ((NULL X) 00031530
  2833. (RETURN (COND ((NULL MCHFG*) U) (T (CONS (LIST U) 1))))) 00031540
  2834. ((AND (NULL (CAAR X)) 00031550
  2835. (SETQ MCHFG* T) 00031560
  2836. (SETQ Y 00031570
  2837. (LIST NIL 00031580
  2838. (CONS (CADDAR X) (CADR (CDDAR X))) 00031590
  2839. (SUBS32 (CDR U) MATCH*)))) 00031600
  2840. (GO B)) 00031610
  2841. ((AND (NOT (ATOM (CDR U))) (NULL (CDDR U))) (GO A))) 00031620
  2842. (SETQ Y (SUBS32 (CDR U) X)) 00031630
  2843. (COND ((NULL MCHFG*) (RETURN (CONS (CAR U) Y)))) 00031640
  2844. A0 (SETQ X (LIST (CONS (CAR U) 1))) 00031650
  2845. (SETQ Z (GCD1 X (CDR Y))) 00031660
  2846. (RETURN 00031670
  2847. (COND ((NULL Z) (MULTS2 (CAR U) Y)) 00031680
  2848. ((EQUAL X Z) (CONS (CAR Y) (QUOTF (CDR Y) X))) 00031690
  2849. (T 00031700
  2850. (CONS (MULTF (QUOTF X Z) (CAR Y)) 00031710
  2851. (QUOTF (CDR Y) Z))))) 00031720
  2852. A (SETQ Y (SUBS3T1 (CADR U) X)) 00031730
  2853. (COND ((AND (NULL (CAR Y)) (NOT (ATOM (CDR Y)))) (GO B)) 00031740
  2854. ((NULL MCHFG*) (RETURN (LIST (CAR U) Y))) 00031750
  2855. (T (GO A0))) 00031760
  2856. B (COND 00031770
  2857. ((AND (CDADR Y) (EQUAL (CADADR Y) (CAR U))) 00031780
  2858. (RETURN (LIST NIL (CONS (CAADR Y) (CDDADR Y)) (CADDR Y)))) 00031790
  2859. ((AND (NOT (ATOM (CAAR U))) 00031800
  2860. (FLAGP** (CAAAR U) (QUOTE NONCOM)) 00031810
  2861. (SETQ Y (SUBS3T0 Y))) 00031820
  2862. (GO A0)) 00031830
  2863. (T 00031840
  2864. (RETURN (LIST NIL (CADR Y) (MULTS2 (CAR U) (CADDR Y)))))))) 00031850
  2865. ) 00031860
  2866. 00031870
  2867. (MULTS2 (LAMBDA (U V) 00031880
  2868. (CONS (MULTF2 U (CAR V)) (CDR V)))) 00031890
  2869. 00031900
  2870. (SUBS32 (LAMBDA (U V) 00031910
  2871. (PROG (B X Y) 00031920
  2872. A (COND 00031930
  2873. ((ATOM U) 00031940
  2874. (RETURN 00031950
  2875. (COND (MCHFG* 00031960
  2876. (COND ((NULL X) (CONS U 1)) 00031970
  2877. (T (ADDSQ (CONS U 1) X)))) 00031980
  2878. (T (APPEND X U)))))) 00031990
  2879. (SETQ Y (SUBS3T (CAR U) V)) 00032000
  2880. (COND ((NULL MCHFG*) (SETQ X (APPEND X (LIST Y)))) 00032010
  2881. (B (SETQ X (ADDSQ Y X))) 00032020
  2882. ((SETQ B T) (SETQ X (ADDSQ (CONS X 1) Y)))) 00032030
  2883. (SETQ U (CDR U)) 00032040
  2884. (GO A)))) 00032050
  2885. 00032060
  2886. (MKKL (LAMBDA (U V) 00032070
  2887. (COND ((NULL U) V) (T (MKKL (CDR U) (LIST (CONS (CAR U) V))))))) 00032080
  2888. 00032090
  2889. )) 00032100
  2890. 00032110
  2891. DEFINE (( 00032120
  2892. 00032130
  2893. (MTCHK (LAMBDA (U V1) 00032140
  2894. (PROG (V W X Y Z Q)
  2895. A0 (COND ((NULL V1) (RETURN Z))) 00032160
  2896. (SETQ V (CAR V1)) 00032170
  2897. (SETQ W (CAR V)) 00032180
  2898. A (SETQ Q (CAR W))
  2899. (COND ((NULL W) (GO D))
  2900. ((AND (EQUAL U (CAR W)) (SETQ Y (LIST NIL))) (GO B)) 00032200
  2901. ((NOT (ATOM (CAR U))) (GO A3))
  2902. ((NOT (ATOM (CAAR W))) (GO D)) 00032220
  2903. ((OR FRLIS* (ORDP (CAR U) (CAAR W))) (GO A2)) 00032230
  2904. (T (GO E))) 00032231
  2905. A3 (COND ((NOT (ATOM (CAAR W))) (GO A1))
  2906. ((AND (MEMBER (CDAR W) FRLIS*)
  2907. (EQ (CAAR U) (QUOTE EXPT))
  2908. (SETQ W (CONS (CONS (LIST (QUOTE EXPT) (CAAR W)
  2909. (CDAR W)) 1) (CDR W))))
  2910. (GO A1))
  2911. ((MEMBER (CAAR W) FRLIS*) (GO A2))
  2912. (T (GO D)))
  2913. A1 (COND ((EQ (CAAR U) (CAAAR W)) (GO A2)) 00032232
  2914. ((FLAGP** (CAAR U) (QUOTE NONCOM)) (GO C1)) 00032234
  2915. ((NULL (ORDP (CAAR U) (CAAAR W))) (GO E)) 00032240
  2916. (T (GO D))) 00032250
  2917. A2 (COND 00032260
  2918. ((OR (AND (NOT (MEMBER (CDAR W) FRLIS*)) 00032270
  2919. (OR (AND (CAADR V) 00032280
  2920. (NOT (EQUAL (CDR U) (CDAR W)))) 00032290
  2921. (LESSP (CDR U) (CDAR W)))) 00032300
  2922. (NOT (SETQ Y (MCHK (CAR U) (CAAR W))))) 00032310
  2923. (GO C)) 00032320
  2924. ((MEMBER (CDAR W) FRLIS*) 00032321
  2925. (SETQ Y 00032322
  2926. (MAPCONS U (CONS (CDAR W) (CDR U)))))) 00032324
  2927. B (COND ((NULL Y) (GO C)) 00032330
  2928. ((AND (NULL 00032340
  2929. (CAR 00032350
  2930. (SETQ X 00032360
  2931. (CONS (SUBLIS (CAR Y) 00032370
  2932. (DELETE Q (CAR V)))
  2933. (LIST (CADR V) 00032390
  2934. (SUBLIS (CAR Y) (CADDR V)) 00032400
  2935. (CONS 00032410
  2936. (SUBLIS (CAR Y) (CAR W)) 00032420
  2937. (CADDDR V))))))) 00032430
  2938. (*EVAL (SUBLIS (CAR Y) (CDADR V)))) 00032440
  2939. (RETURN (LIST X)))) 00032450
  2940. (SETQ Z (CONS X Z)) 00032460
  2941. (SETQ Y (CDR Y)) 00032470
  2942. (GO B) 00032480
  2943. C (COND 00032490
  2944. ((AND (NOT (ATOM (CAR U))) 00032500
  2945. (FLAGP** (CAAR U) (QUOTE NONCOM))) 00032510
  2946. (GO C1))) 00032520
  2947. (SETQ W (CDR W)) 00032530
  2948. (GO A) 00032540
  2949. C1 (COND ((AND (CADDDR V) (NOT (NOCP (CADDDR V)))) (GO E))) 00032550
  2950. D (SETQ Z (APPEND Z (LIST V))) 00032580
  2951. E (SETQ V1 (CDR V1)) 00032590
  2952. (GO A0)))) 00032600
  2953. 00032710
  2954. (NOCP (LAMBDA (U) 00032720
  2955. (OR (NULL U) 00032730
  2956. (AND (OR (ATOM (CAAR U)) 00032740
  2957. (NOT (FLAGP** (CAAAR U) (QUOTE NONCOM)))) 00032750
  2958. (NOCP (CDR U)))))) 00032760
  2959. 00032770
  2960. (MCHK (LAMBDA (U V) 00032780
  2961. (COND ((EQUAL U V) (LIST NIL)) 00032790
  2962. ((OR (NULL U) (NULL V)) NIL) 00032800
  2963. ((MEMBER V FRLIS*) (LIST (LIST (CONS V (EMTCH U))))) 00032810
  2964. ((OR (ATOM U) (ATOM V)) NIL) 00032820
  2965. ((EQ (CAR U) (CAR V)) (MCHARG (CDR U) (CDR V) (CAR U))) 00032830
  2966. (T NIL)))) 00032840
  2967. 00032850
  2968. (MCHARG (LAMBDA (*S* V W) 00032860
  2969. ((LAMBDA(X) 00032870
  2970. (COND 00032880
  2971. ((MTP V) 00032890
  2972. (COND 00032900
  2973. (X 00032910
  2974. (COND 00032920
  2975. ((FLAGP W (QUOTE SYMMETRIC)) 00032930
  2976. (MAPLIST (PERMUTATIONS V) 00032940
  2977. (FUNCTION 00032950
  2978. (LAMBDA(J) 00032960
  2979. (PAIR (CAR J) 00032970
  2980. (MAPCAR *S* (FUNCTION EMTCH))))))) 00032980
  2981. ((FLAGP W (QUOTE ANTISYMMETRIC)) 00032990
  2982. (ERRACH (QUOTE (NOT YET)))) 00033000
  2983. (T (LIST (PAIR V (MAPCAR *S* (FUNCTION EMTCH))))))) 00033010
  2984. ((AND (EQUAL (LENGTH V) 2) (FLAGP W (QUOTE NARY))) 00033020
  2985. (MCHARG (CDR (MKBIN (CONS W *S*))) V W)) 00033030
  2986. (T NIL))) 00033040
  2987. (X (MCHARG1 *S* V (FLAGP W (QUOTE SYMMETRIC)) (LIST NIL))) 00033050
  2988. (T NIL))) 00033060
  2989. (EQUAL (LENGTH *S*) (LENGTH V))))) 00033070
  2990. 00033080
  2991. (MCHARG1 (LAMBDA (U V FLG W) 00033090
  2992. (PROG (X Z) 00033100
  2993. (COND ((NULL U) (RETURN W)) 00033110
  2994. ((NULL FLG) 00033120
  2995. (RETURN 00033130
  2996. (MCHARG3 U (CDR V) (MCHK (CAR U) (CAR V)) FLG W)))) 00033140
  2997. (SETQ X (MCHARG2 (CAR U) V)) 00033150
  2998. A (COND ((NULL X) (RETURN Z))) 00033160
  2999. (SETQ Z (APPEND (MCHARG3 U (CDAR X) (CAAR X) FLG W) Z)) 00033170
  3000. (SETQ X (CDR X)) 00033180
  3001. (GO A)))) 00033190
  3002. 00033200
  3003. (MCHARG2 (LAMBDA (U V) 00033210
  3004. (PROG (X Y Z) 00033220
  3005. A (COND ((NULL V) (RETURN (REVERSE Z))) 00033230
  3006. ((SETQ Y (MCHK U (CAR V))) 00033240
  3007. (SETQ Z 00033250
  3008. (CONS (CONS Y (APPEND (REVERSE X) (CDR V))) 00033260
  3009. Z)))) 00033270
  3010. (SETQ X (CONS (CAR V) X)) 00033280
  3011. (SETQ V (CDR V)) 00033290
  3012. (GO A)))) 00033300
  3013. 00033310
  3014. (MCHARG3 (LAMBDA (U V *S* FLG W) 00033320
  3015. (PROG (Z) 00033330
  3016. A (COND ((NULL *S*) (RETURN Z))) 00033340
  3017. (SETQ Z 00033350
  3018. (APPEND (MCHARG1 (CDR U) 00033360
  3019. (SUBLIS (CAR *S*) V) 00033370
  3020. FLG 00033380
  3021. (MAPLIST W 00033390
  3022. (FUNCTION 00033400
  3023. (LAMBDA(J) 00033410
  3024. (APPEND 00033420
  3025. (CAR *S*) 00033430
  3026. (CAR J)))))) 00033440
  3027. Z)) 00033450
  3028. (SETQ *S* (CDR *S*)) 00033460
  3029. (GO A)))) 00033470
  3030. 00033480
  3031. (MKBIN (LAMBDA (U) 00033490
  3032. (COND ((OR (NULL (CDDR U)) (NULL (CDDDR U))) U) 00033500
  3033. (T (MKBIN1 (CAR U) (CDR U)))))) 00033510
  3034. 00033520
  3035. (MKBIN1 (LAMBDA (U V) 00033530
  3036. (COND ((NULL (CDDR V)) (CONS U V)) 00033540
  3037. (T (LIST U (CAR V) (MKBIN1 U (CDR V))))))) 00033550
  3038. 00033560
  3039. (MTP (LAMBDA (V) 00033570
  3040. (OR (NULL V) 00033580
  3041. (AND (MEMBER (CAR V) FRLIS*) 00033590
  3042. (NOT (MEMBER (CAR V) (CDR V))) 00033600
  3043. (MTP (CDR V)))))) 00033610
  3044. 00033620
  3045. (PERMUTATIONS (LAMBDA (*S*) 00033630
  3046. (COND ((NULL *S*) (LIST NIL)) 00033640
  3047. ((NULL (CDR *S*)) (LIST *S*)) 00033650
  3048. (T 00033660
  3049. (MAPCON *S* 00033670
  3050. (FUNCTION 00033680
  3051. (LAMBDA(J) 00033690
  3052. (MAPCONS 00033700
  3053. (PERMUTATIONS (DELETE (CAR J) *S*)) 00033710
  3054. (CAR J))))))))) 00033720
  3055. 00033730
  3056. )) 00033740
  3057. 00033750
  3058. DEFINE (( 00033760
  3059. 00033770
  3060. (EMTCH (LAMBDA (U) 00033780
  3061. (COND ((ATOM U) U) 00033790
  3062. (T ((LAMBDA (X) (COND (X X) (T U))) (OPMTCH U)))))) 00033800
  3063. 00033810
  3064. (OPMTCH (LAMBDA (U) 00033820
  3065. (PROG (X Y) 00033830
  3066. (COND ((NULL SUBFG*) (RETURN NIL))) 00033840
  3067. (SETQ X (GET (CAR U) (QUOTE OPMTCH*))) 00033850
  3068. A (COND ((NULL X) (RETURN NIL)) 00033860
  3069. ((AND (NULL (CAADAR X)) 00033870
  3070. (SETQ Y (MCHARG (CDR U) (CAAR X) (CAR U))) 00033880
  3071. (*EVAL (SUBLIS (CAR Y) (CDADAR X)))) 00033890
  3072. (GO B))) 00033900
  3073. (SETQ X (CDR X)) 00033910
  3074. (GO A) 00033920
  3075. B (RETURN (SUBLIS (CAR Y) (CADDAR X)))))) 00033930
  3076. 00033940
  3077. )) 00033950
  3078. 00033960
  3079. DEFINE (( 00033970
  3080. 00033980
  3081. (ORDER (LAMBDA (U) 00033990
  3082. (PROG NIL 00034000
  3083. (RMSUBS)
  3084. A (COND ((NULL U) (RETURN NIL)) 00034010
  3085. ((OR (NOT (ATOM (CAR U))) (NUMBERP (CAR U))) (GO B))) 00034020
  3086. (PUT (CAR U) (QUOTE ORDER) ORDN*) 00034030
  3087. (SETQ ORDN* (ADD1 ORDN*)) 00034040
  3088. B (SETQ U (CDR U)) 00034050
  3089. (GO A)))) 00034060
  3090. 00034070
  3091. (FORMOP (LAMBDA (U) 00034080
  3092. (COND ((ATOM U) U) 00034090
  3093. (T 00034100
  3094. (ADDOF (MULTOP (CAAR U) (FORMOP (CDAR U))) 00034110
  3095. (FORMOP (CDR U))))))) 00034120
  3096. 00034130
  3097. (ADDOF (LAMBDA (U V) 00034140
  3098. (COND ((NULL U) V) 00034150
  3099. ((NULL V) U) 00034160
  3100. ((ATOM U) (CONS (CAR V) (ADDOF U (CDR V)))) 00034170
  3101. ((ATOM V) (ADDOF V U)) 00034180
  3102. ((EQUAL (CAAR U) (CAAR V)) 00034190
  3103. (CONS (CONS (CAAR U) (ADDOF (CDAR U) (CDAR V))) 00034200
  3104. (ADDOF (CDR U) (CDR V)))) 00034210
  3105. ((ORDOP (CAAR U) (CAAR V)) (CONS (CAR U) (ADDOF (CDR U) V))) 00034220
  3106. (T (CONS (CAR V) (ADDOF U (CDR V))))))) 00034230
  3107. 00034240
  3108. (MULTOP (LAMBDA (U V) 00034250
  3109. (COND ((EQ (CAR U) (QUOTE K*)) V) (T (MULTOP1 U V))))) 00034260
  3110. 00034270
  3111. (MULTOP1 (LAMBDA (U V) 00034280
  3112. (COND ((NULL V) NIL) 00034290
  3113. ((OR (ATOM V) (ORDOP U (CAAR V))) (LIST (CONS U V))) 00034300
  3114. (T 00034310
  3115. (CONS (CONS (CAAR V) (MULTOP1 U (CDAR V))) 00034320
  3116. (MULTOP1 U (CDR V))))))) 00034330
  3117. 00034340
  3118. (ORDOP (LAMBDA (U V) 00034350
  3119. (COND ((NULL U) (NULL V)) 00034360
  3120. ((NULL V) NIL) 00034370
  3121. ((AND (MEMBER U FACTORS*) (NOT (MEMBER V FACTORS*))) T) 00034380
  3122. ((AND (MEMBER V FACTORS*) (NOT (MEMBER U FACTORS*))) NIL) 00034390
  3123. ((ATOM U) 00034400
  3124. (COND 00034410
  3125. ((ATOM V) 00034420
  3126. (COND ((NUMBERP U) (AND (NUMBERP V) (NOT (LESSP U V)))) 00034430
  3127. ((NUMBERP V) T) 00034440
  3128. ((ZEROP ORDN*) (ORDERP U V)) 00034445
  3129. (T 00034450
  3130. ((LAMBDA(X Y) 00034460
  3131. (COND ((AND X Y) (LESSP X Y)) 00034470
  3132. (X T) 00034480
  3133. (Y NIL) 00034490
  3134. (T (ORDERP U V)))) 00034500
  3135. (GET U (QUOTE ORDER)) 00034510
  3136. (GET V (QUOTE ORDER)))))) 00034520
  3137. ((MEMBER U FACTORS*) T) 00034530
  3138. (T (NOT (MEMBER (CAR V) FACTORS*))))) 00034540
  3139. ((ATOM V) (MEMBER (CAR U) FACTORS*)) 00034550
  3140. ((EQUAL (CAR U) (CAR V)) (ORDOP (CDR U) (CDR V))) 00034560
  3141. (T (ORDOP (CAR U) (CAR V)))))) 00034570
  3142. 00034580
  3143. (QUOTOF (LAMBDA (P Q) 00034590
  3144. (COND ((NULL P) NIL) 00034600
  3145. ((EQUAL P Q) 1) 00034610
  3146. ((EQUAL Q 1) P) 00034620
  3147. ((NUMB Q) 00034630
  3148. (COND 00034640
  3149. ((NUMB P) 00034650
  3150. (COND ((AND (ATOM P) (ATOM Q)) (MKFR P Q)) 00034660
  3151. ((ATOM P) (MKFR (TIMES P (CADDR Q)) (CADR Q)))
  3152. ((ATOM Q) (MKFR (CADR P) (TIMES Q (CADDR P))))
  3153. (T (MKFR (TIMES (CADR P) (CADDR Q))
  3154. (TIMES (CADR Q) (CADDR P)))) ))
  3155. (T 00034680
  3156. (CONS (CONS (CAAR P) (QUOTOF (CDAR P) Q)) 00034690
  3157. (QUOTOF (CDR P) Q))))) 00034700
  3158. ((NUMB P) 00034710
  3159. (LIST 00034720
  3160. (CONS (CONS (CAAAR Q) (MINUS (CDAAR Q))) 00034730
  3161. (QUOTOF P (CDARX Q))))) 00034740
  3162. (T 00034750
  3163. ((LAMBDA(X Y) 00034760
  3164. (COND 00034770
  3165. ((EQ (CAR X) (CAR Y)) 00034780
  3166. ((LAMBDA(N W Z) 00034790
  3167. (COND ((ZEROP N) (ADDOF W Z)) 00034800
  3168. (T (CONS (CONS (CONS (CAR Y) N) W) Z)))) 00034810
  3169. (DIFFERENCE (CDR X) (CDR Y)) 00034820
  3170. (QUOTOF (CDAR P) (CDARX Q)) 00034830
  3171. (QUOTOF (CDR P) Q))) 00034840
  3172. ((ORDOP X Y) 00034850
  3173. (CONS (CONS X (QUOTOF (CDAR P) Q)) (QUOTOF (CDR P) Q))) 00034860
  3174. (T 00034870
  3175. (LIST 00034880
  3176. (CONS (CONS (CAR Y) (MINUS (CDR Y))) 00034890
  3177. (QUOTOF P (CDARX Q))))))) 00034900
  3178. (CAAR P) 00034910
  3179. (CAAR Q)))))) 00034920
  3180. 00034930
  3181. )) 00034940
  3182. 00034950
  3183. DEFINE (( 00034960
  3184. 00034970
  3185. (CKRN (LAMBDA (U) 00034980
  3186. (PROG (X) 00034990
  3187. (COND ((KERNLOP U) (RETURN U))) 00035000
  3188. A (SETQ X (CONS (CKRN (CDAR U)) X)) 00035010
  3189. (COND 00035020
  3190. ((NULL (CDR U)) (RETURN (LIST (CONS (CAAR U) (GCK X))))) 00035030
  3191. ((OR (ATOM (CDR U)) (NOT (EQ (CAAAR U) (CAAADR U)))) 00035040
  3192. (RETURN (GCK (CONS (CKRN (CDR U)) X))))) 00035050
  3193. (SETQ U (CDR U)) 00035060
  3194. (GO A)))) 00035070
  3195. 00035080
  3196. (GCK (LAMBDA (U) 00035090
  3197. (COND ((NULL U) 1) 00035100
  3198. ((NULL (CDR U)) (CAR U)) 00035110
  3199. (T (GCK (CONS (GCK1 (CAR U) (CADR U)) (CDDR U))))))) 00035120
  3200. 00035130
  3201. (GCK1 (LAMBDA (U V) 00035140
  3202. (COND ((OR (NULL U) (NULL V)) (ERRACH (QUOTE GCK1))) 00035150
  3203. ((EQUAL U V) U) 00035160
  3204. ((NUMB U) 00035170
  3205. (COND 00035180
  3206. ((NUMB V) 00035190
  3207. (COND ((AND (ATOM U) (ATOM V)) (GCDN U V)) (T 1))) 00035200
  3208. (T (GCK1 U (CDARX V))))) 00035210
  3209. ((NUMB V) (GCK1 (CDARX U) V)) 00035220
  3210. (T 00035230
  3211. ((LAMBDA(X Y) 00035240
  3212. (COND 00035250
  3213. ((EQ (CAR X) (CAR Y)) 00035260
  3214. (LIST 00035270
  3215. (CONS 00035280
  3216. (COND ((GREATERP (CDR X) (CDR Y)) Y) (T X)) 00035290
  3217. (GCK1 (CDARX U) (CDARX V))))) 00035300
  3218. ((ORDOP X Y) (GCK1 (CDARX U) V)) 00035310
  3219. (T (GCK1 U (CDARX V))))) 00035320
  3220. (CAAR U) 00035330
  3221. (CAAR V)))))) 00035340
  3222. 00035350
  3223. )) 00035360
  3224. 00035370
  3225. DEFINE (( 00035380
  3226. 00035390
  3227. (PREPSQ (LAMBDA (U) 00035400
  3228. (COND ((NULL (CAR U)) 0) 00035410
  3229. (T 00035420
  3230. ((LAMBDA(X) 00035430
  3231. (COND 00035440
  3232. ((OR *RAT (AND (NOT *FLOAT) *DIV) UPL* DNL*) 00035450
  3233. (REPLUS (PREPSQ1 (CAR X) NIL (CDR X)))) 00035460
  3234. (T 00035470
  3235. (SQFORM X 00035480
  3236. (FUNCTION 00035490
  3237. (LAMBDA (J) (REPLUS (PREPSQ1 J NIL 1)))))))) 00035500
  3238. (CONS (FORMOP (CAR U)) (FORMOP (CDR U)))))))) 00035510
  3239. 00035520
  3240. (SQFORM (LAMBDA (U *PI*) 00035530
  3241. ((LAMBDA(X Y) 00035540
  3242. (COND ((EQUAL Y 1) X) (T (LIST (QUOTE QUOTIENT) X Y)))) 00035550
  3243. (*PI* (CAR U)) 00035560
  3244. (*PI* (CDR U))))) 00035570
  3245. 00035580
  3246. (PREPSQ1 (LAMBDA (U V W) 00035590
  3247. (PROG (X Y Z) 00035600
  3248. (COND ((NULL U) (RETURN NIL)) 00035610
  3249. ((AND (NOT (ATOM U)) 00035620
  3250. (OR (MEMBER (CAAAR U) FACTORS*) 00035630
  3251. (AND (NOT (ATOM (CAAAR U))) 00035640
  3252. (MEMBER (CAAAAR U) FACTORS*)))) 00035650
  3253. (RETURN 00035660
  3254. (NCONC (PREPSQ1 (CDAR U) (CONS (CAAR U) V) W) 00035670
  3255. (PREPSQ1 (CDR U) V W)))) 00035680
  3256. ((NULL (KERNLP U)) (GO A))) 00035690
  3257. (SETQ U (MKKL V U)) 00035700
  3258. (SETQ V NIL) 00035710
  3259. A (SETQ X (CKRN U)) 00035720
  3260. (COND ((NULL DNL*) (GO A1))) 00035730
  3261. (SETQ Z (CKRN* X DNL*)) 00035740
  3262. (SETQ X (QUOTOF X Z)) 00035750
  3263. (SETQ U (QUOTF U Z)) 00035760
  3264. (SETQ W (QUOTOF W Z)) 00035770
  3265. A1 (SETQ Y (CKRN W)) 00035780
  3266. (COND ((NULL UPL*) (GO A2))) 00035790
  3267. (SETQ Z (CKRN* Y UPL*)) 00035800
  3268. (SETQ Y (QUOTOF Y Z)) 00035810
  3269. (SETQ U (QUOTOF U Z)) 00035820
  3270. (SETQ W (QUOTOF W Z)) 00035830
  3271. A2 (COND ((AND (NULL *DIV) (NULL *FLOAT)) (SETQ Y (GCK1 X Y)))) 00035840
  3272. (SETQ U (MKCANON (CONS (QUOTOF U Y) (QUOTOF W Y)))) 00035850
  3273. (COND ((AND *GCD (ZEROP ORDN*)) (SETQ U (CANCEL U)))) 00035852
  3274. (SETQ X (QUOTOF X Y)) 00035860
  3275. (COND 00035870
  3276. ((AND *ALLFAC (NOT (EQUAL X (CAR U)))) (GO B))
  3277. ((NULL V) (GO D))) 00035890
  3278. (SETQ V (EXCHK V NIL)) 00035900
  3279. (GO C) 00035910
  3280. D (SETQ U (PREPSQ2 U)) 00035920
  3281. (RETURN 00035930
  3282. (COND ((EQCAR U (QUOTE PLUS)) (CDR U)) (T (LIST U)))) 00035940
  3283. B (COND ((AND (EQUAL X 1) (NULL V)) (GO D))) 00035950
  3284. (SETQ U (CONS (QUOTOF (CAR U) X) (CDR U))) 00035960
  3285. (SETQ V (PREPF (MKKL V X))) 00035970
  3286. (COND ((EQUAL U (CONS 1 1)) (RETURN V)) 00035980
  3287. ((EQCAR V (QUOTE TIMES)) (SETQ V (CDR V))) 00035990
  3288. (T (SETQ V (LIST V)))) 00036000
  3289. C (RETURN (LIST (RETIMES (ACONC V (PREPSQ2 U)))))))) 00036010
  3290. 00036020
  3291. (CKRN* (LAMBDA (U V) 00036030
  3292. (COND ((NULL U) (ERRACH (QUOTE CKRN*))) 00036040
  3293. ((ATOM U) 1) 00036050
  3294. ((MEMBER (CAAAR U) V) 00036060
  3295. (LIST (CONS (CAAR U) (CKRN* (CDARX U) V)))) 00036070
  3296. (T (CKRN* (CDARX U) V))))) 00036080
  3297. 00036090
  3298. (UP (LAMBDA (U) 00036100
  3299. (FACTOR1 U T (QUOTE UPL*)))) 00036110
  3300. 00036120
  3301. (DOWN (LAMBDA (U) 00036130
  3302. (FACTOR1 U T (QUOTE DNL*)))) 00036140
  3303. 00036150
  3304. )) 00036160
  3305. 00036170
  3306. DEFLIST (((UP RLIS) (DOWN RLIS)) STAT) 00036180
  3307. 00036190
  3308. DEFINE (( 00036200
  3309. 00036210
  3310. (REPLUS (LAMBDA (U) 00036220
  3311. (COND ((ATOM U) U) 00036230
  3312. ((NULL (CDR U)) (CAR U)) 00036240
  3313. (T (CONS (QUOTE PLUS) U))))) 00036250
  3314. 00036260
  3315. (RETIMES (LAMBDA (U) 00036270
  3316. (PROG (X Y) 00036275
  3317. A (COND ((NULL U) (GO D)) 00036280
  3318. ((NOT (EQCAR (CAR U) (QUOTE MINUS))) (GO B))) 00036285
  3319. (SETQ X (NOT X)) 00036290
  3320. (COND ((EQUAL (CADAR U) 1) (GO C)) 00036295
  3321. (T (SETQ U (CONS (CADAR U) (CDR U))))) 00036300
  3322. B (SETQ Y (CONS (CAR U) Y)) 00036305
  3323. C (SETQ U (CDR U)) 00036310
  3324. (GO A) 00036315
  3325. D (SETQ Y (COND ((NULL Y) 1) 00036320
  3326. ((CDR Y) (CONS (QUOTE TIMES) (REVERSE Y))) 00036325
  3327. (T (CAR Y)))) 00036330
  3328. (RETURN (COND (X (LIST (QUOTE MINUS) Y)) (T Y)))))) 00036335
  3329. 00036350
  3330. (PREPSQ2 (LAMBDA (U) 00036360
  3331. (SQFORM U (FUNCTION PREPF)))) 00036370
  3332. 00036380
  3333. (PREPF (LAMBDA (U) 00036390
  3334. (PROG (X) 00036395
  3335. (COND ((AND (MINUSF U) (SETQ X T)) (SETQ U (MULTN -1 U)))) 00036400
  3336. (SETQ U (REPLUS (PREPF1 U NIL))) 00036405
  3337. (RETURN (COND (X (LIST (QUOTE MINUS) U)) (T U)))))) 00036410
  3338. 00036415
  3339. (PREPF1 (LAMBDA (U V) 00036420
  3340. (COND ((NULL U) NIL) 00036430
  3341. ((NUMB U) 00036440
  3342. (LIST (RETIMES (NUMCONS (MINUSCHK U) (EXCHK V NIL))))) 00036450
  3343. (T 00036460
  3344. (NCONC (PREPF1 (CDAR U) (CONS (CAAR U) V)) 00036470
  3345. (PREPF1 (CDR U) V)))))) 00036480
  3346. 00036490
  3347. (NUMB (LAMBDA (U) 00036500
  3348. (OR (NUMBERP U) (EQCAR U (QUOTE QUOTIENT))))) 00036510
  3349. 00036520
  3350. (NUMCONS (LAMBDA (N V) 00036530
  3351. (COND ((NULL V) (LIST N)) ((EQUAL N 1) V) (T (CONS N V))))) 00036540
  3352. 00036550
  3353. (KERNLOP (LAMBDA (U) 00036560
  3354. (OR (NUMB U) (AND (NULL (CDR U)) (KERNLOP (CDAR U)))))) 00036570
  3355. 00036580
  3356. (EXCHK (LAMBDA (U V) 00036590
  3357. (COND ((NULL U) V) 00036600
  3358. ((ONEP (CDAR U)) (EXCHK (CDR U) (CONS (SQCHK (CAAR U)) V))) 00036610
  3359. (T 00036620
  3360. (EXCHK (CDR U) 00036630
  3361. (CONS (LIST (QUOTE EXPT) (SQCHK (CAAR U)) (CDAR U)) 00036640
  3362. V)))))) 00036650
  3363. 00036660
  3364. (SQCHK (LAMBDA (U) 00036670
  3365. (COND ((ATOM U) ((LAMBDA (X) 00036675
  3366. (COND (X X) (T U))) (GET U (QUOTE NEWNAME)))) 00036680
  3367. ((EQ (CAR U) (QUOTE *SQ)) (PREPSQ (CADR U))) 00036685
  3368. ((AND (EQ (CAR U) (QUOTE EXPT)) (EQUAL (CADDR U) 1)) 00036690
  3369. (CADR U)) 00036695
  3370. ((ATOM (CAR U)) U) 00036700
  3371. (T (PREPF U))))) 00036710
  3372. 00036720
  3373. (MINUSCHK (LAMBDA (U) 00036730
  3374. (COND 00036740
  3375. ((ATOM U) 00036750
  3376. (COND ((MINUSP U) (LIST (QUOTE MINUS) (MINUS U))) (T U))) 00036760
  3377. ((MINUSP (CADR U)) 00036770
  3378. (LIST (QUOTE MINUS) 00036780
  3379. (LIST (QUOTE QUOTIENT) (MINUS (CADR U)) (CADDR U)))) 00036790
  3380. (T U)))) 00036800
  3381. 00036810
  3382. (MKFR (LAMBDA (U V) 00036820
  3383. (COND (*FLOAT (QUOTIENT (PLUS 0.0 U) V)) 00036830
  3384. (T 00036840
  3385. ((LAMBDA(M) 00036850
  3386. ((LAMBDA(N1 N2) 00036860
  3387. (COND ((ONEP N2) N1) 00036870
  3388. (T (LIST (QUOTE QUOTIENT) N1 N2)))) 00036880
  3389. (QUOTIENT U M) 00036890
  3390. (QUOTIENT V M))) 00036900
  3391. (GCDN U V)))))) 00036910
  3392. 00036920
  3393. )) 00036930
  3394. 00036940
  3395. DEFLIST (((*SQ SQPRINT)) SPECPRN) 00036950
  3396. 00036960
  3397. DEFINE (( 00036970
  3398. 00036980
  3399. (SQPRINT (LAMBDA (U) 00036990
  3400. (PROG (Z) 00037000
  3401. (SETQ Z ORIG*) 00037010
  3402. (COND ((LESSP POSN* 20) (SETQ ORIG* POSN*))) 00037020
  3403. (MAPRIN 00037030
  3404. (SETQ *OUTP 00037040
  3405. (COND ((NULL (CAAR U)) 0) (T (PREPSQ (CAR U)))))) 00037050
  3406. (SETQ ORIG* Z)))) 00037060
  3407. 00037070
  3408. (VARPRI (LAMBDA (U V W) 00037080
  3409. (PROG NIL 00037090
  3410. (COND ((NULL V) (RETURN NIL)) 00037100
  3411. (*FORT (GO D)) 00037110
  3412. ((AND (EQUAL V 0) U *NERO) (GO C))) 00037120
  3413. (COND ((NULL W) (TERPRI*))) 00037130
  3414. (COND ((EQCAR V (QUOTE MAT)) (GO M)) ((NULL U) (GO A))) 00037140
  3415. (INPRINT (QUOTE SETQ) (GET (QUOTE SETQ) (QUOTE INFIX)) U) 00037150
  3416. (OPRIN (QUOTE SETQ)) 00037160
  3417. A (MAPRIN V) 00037170
  3418. (COND (W (GO C)) 00037180
  3419. ((AND (NULL *NAT) (NULL *FORT)) (PRINC* **DOLLAR))) 00037190
  3420. C (RETURN V) 00037210
  3421. D (COND ((NULL (OR W (EQ POSN* 0))) (PROG2 (SETQ POSN* 0)
  3422. (TERPRI))))
  3423. (COND ((EQ POSN* 0) (SETQ COUNT* 1)))
  3424. (SETQ FORTVAR* NIL)
  3425. (COND ((OR W (ATOM V) (NOT (EQ POSN* 0))) (GO A)))
  3426. (SETQ FORTVAR* (QUOTE ANS)) 00037230
  3427. (COND ((OR (NULL U) (NOT (ATOM (CAR U)))) (GO E))) 00037240
  3428. (SETQ FORTVAR* (CAR U)) 00037250
  3429. E (COND ((GREATERP POSN* 5) (GO A))) 00037260
  3430. (SPACES 6) 00037265
  3431. (SETQ POSN* 6)
  3432. (PRINC* FORTVAR*)
  3433. (OPRIN (QUOTE EQUAL)) 00037280
  3434. (GO A) 00037290
  3435. M (MATPRI (CDR V) (COND (U (CAR U)) (T NIL))) 00037300
  3436. (GO C)))) 00037310
  3437. 00037320
  3438. )) 00037330
  3439. 00037340
  3440. DEFINE (( 00037350
  3441. 00037360
  3442. (SIMPDF (LAMBDA (U) 00037370
  3443. (PROG (V X Y N) 00037380
  3444. (COND ((NULL SUBFG*) (RETURN (MKSQ (CONS (QUOTE DF) U) 1)))) 00037390
  3445. (SETQ V (CDR U)) 00037400
  3446. (SETQ U (SIMPCAR U)) 00037410
  3447. A (COND ((OR (NULL V) (NULL (CAR U))) (RETURN U))) 00037420
  3448. (SETQ X (COND ((NULL Y) (SIMP (CAR V))) (T Y))) 00037430
  3449. (SETQ Y NIL) 00037440
  3450. (COND 00037450
  3451. ((OR (NULL (KERNP X)) (NOT (ONEP (CDAAAR X)))) (GO E)) 00037460
  3452. ((OR (NULL (CDR V)) 00037470
  3453. (NOT 00037480
  3454. (NUMBERP 00037490
  3455. (SETQ N (PREPSQ (SETQ Y (SIMP (CADR V)))))))) 00037500
  3456. (GO C1))) 00037510
  3457. (SETQ Y NIL) 00037520
  3458. (SETQ V (CDR V)) 00037530
  3459. (SETQ X (CAAAAR X)) 00037540
  3460. C (COND ((ZEROP N) (GO D))) 00037550
  3461. (SETQ U (DIFF1 U X)) 00037560
  3462. (SETQ N (SUB1 N)) 00037570
  3463. (GO C) 00037580
  3464. C1 (SETQ U (DIFF1 U (CAAAAR X))) 00037590
  3465. D (SETQ V (CDR V)) 00037600
  3466. (GO A) 00037610
  3467. E (MESPRI (QUOTE (DIFFERENTIATION WITH RESPECT TO)) 00037620
  3468. (CAR V) 00037630
  3469. (QUOTE (NOT ALLOWED)) 00037640
  3470. NIL 00037650
  3471. T) 00037660
  3472. (SETQ ERFG* T)
  3473. (ERROR*)))) 00037670
  3474. 00037680
  3475. (DIFF1 (LAMBDA (U V) 00037690
  3476. (PROG (W X Y Z Z1) 00037700
  3477. (COND 00037710
  3478. ((KERNP (CONS (CDR U) 1)) (SETQ W (CONS (CAAADR U) 1)))) 00037720
  3479. (SETQ X (DIFF2 (CAR U) V)) 00037730
  3480. (SETQ Y 00037740
  3481. (COND ((NULL W) (DIFF2 (CDR U) V)) 00037750
  3482. (T (DIFFK (LIST (CONS W 1)) V)))) 00037760
  3483. (SETQ Z 00037770
  3484. (COND ((NULL (CAR X)) (CONS NIL 1)) 00037780
  3485. (T (CONS (CAR X) (MULTF (CDR X) (CDR U)))))) 00037790
  3486. (COND ((NULL (CAR Y)) (RETURN Z))) 00037800
  3487. (SETQ Z1 00037810
  3488. (NEGSQ 00037820
  3489. (MULTSQ Y 00037830
  3490. (COND ((NULL W) 00037840
  3491. (CONS (CAR U) (NMULTF (CDR U) 2))) 00037850
  3492. (T 00037860
  3493. (CONS (MULTN (CDAADR U) (CAR U)) 00037870
  3494. (MULTF2 W (CDR U)))))))) 00037880
  3495. (RETURN 00037890
  3496. (COND 00037900
  3497. ((AND *EXP *MCD) 00037910
  3498. (CANCEL 00037920
  3499. (CONS (ADDF (MULTF (CAR X) 00037930
  3500. (COND 00037940
  3501. ((NULL W) (MULTF (CDR U) (CDR Y))) 00037950
  3502. (T (MULTF2 W (CDR Y))))) 00037960
  3503. (MULTF (CDR X) (CAR Z1))) 00037970
  3504. (MULTF (CDR X) (CDR Z1))))) 00037980
  3505. (T (ADDSQ Z Z1))))))) 00037990
  3506. 00038000
  3507. (DIFF2 (LAMBDA (U V) 00038010
  3508. (COND ((ATOM U) (CONS NIL 1)) 00038020
  3509. (T 00038030
  3510. (ADDSQ (DIFF2 (CDR U) V) 00038040
  3511. (ADDSQ (MULTS2 (CAAR U) (DIFF2 (CDAR U) V)) 00038050
  3512. (DIFFK U V))))))) 00038060
  3513. 00038070
  3514. (DIFFK (LAMBDA (U *S*) 00038080
  3515. (PROG (V W X Y Z) 00038090
  3516. (SETQ X (CAAR U)) 00038100
  3517. (COND 00038110
  3518. ((AND (EQ (CAR X) *S*) (SETQ X (CONS 1 1))) (GO D)) 00038120
  3519. ((OR (ATOM (CAR X)) 00038130
  3520. (AND (ATOM (CAAR X)) (GET (CAAR X) (QUOTE **ARRAY)))) 00038140
  3521. (RETURN (COND ((AND (SETQ Z (FKERN (CAR X))) 00038150
  3522. (ASSOC (QUOTE REP) (CDDR Z))) 00038151
  3523. (MKSQ (LIST (QUOTE DF) (CAR X) *S*) 1)) 00038152
  3524. (T (CONS NIL 1)))))) 00038153
  3525. (SETQ Y (FKERN (CAR X))) 00038160
  3526. (COND 00038170
  3527. ((AND (SETQ V (ASSOC (QUOTE DFN) (CDDR Y))) 00038180
  3528. (SETQ V (ASSOC *S* (CADR V))) 00038190
  3529. (SETQ X (CDR V))) 00038200
  3530. (GO D)) 00038210
  3531. ((OR (AND (NOT (ATOM (CAAR X))) 00038220
  3532. (SETQ X (NMULTSQ (DIFF2 (CAR X) *S*) (CDR X)))) 00038230
  3533. (AND (EQ (CAAR X) (QUOTE *SQ)) 00038240
  3534. (SETQ X (DIFF1 (CADAR X) *S*)))) 00038250
  3535. (GO B)) 00038260
  3536. ((OR (NOT (SETQ V (GET* (CAAR X) (QUOTE DFN)))) 00038270
  3537. (NOT 00038280
  3538. (DFP (SETQ W 00038290
  3539. (MAPCAR (CDAR X) 00038300
  3540. (FUNCTION 00038310
  3541. (LAMBDA(J) 00038320
  3542. (DIFF1 (SIMP J) *S*))))) 00038330
  3543. V))) 00038340
  3544. (GO H))) 00038350
  3545. (SETQ Z (CDAR X)) 00038360
  3546. (SETQ X (CONS NIL 1)) 00038370
  3547. (COND 00038380
  3548. ((NULL 00038390
  3549. (*EVAL 00038400
  3550. (CONS (QUOTE OR) 00038410
  3551. (MAPCAR W 00038420
  3552. (FUNCTION 00038430
  3553. (LAMBDA(J) 00038440
  3554. (LIST (QUOTE QUOTE) (CAR J)))))))) 00038450
  3555. (GO B))) 00038460
  3556. A (COND ((NULL W) (GO B)) 00038470
  3557. ((CAAR W) 00038480
  3558. (SETQ X 00038490
  3559. (ADDSQ (MULTSQ (CAR W) 00038500
  3560. (SIMP 00038510
  3561. (SUBLIS 00038520
  3562. (PAIR (CAAR V) Z) 00038530
  3563. (CDAR V)))) 00038540
  3564. X)))) 00038550
  3565. (SETQ W (CDR W)) 00038560
  3566. (SETQ V (CDR V)) 00038570
  3567. (GO A) 00038580
  3568. B (COND 00038590
  3569. ((SETQ V (ASSOC (QUOTE DFN) (CDDR Y))) (GO C)) 00038600
  3570. (T (ACONC Y (SETQ V (LIST (QUOTE DFN) NIL))))) 00038610
  3571. (SETQ DSUBL* (CONS (CDR V) DSUBL*)) 00038620
  3572. C (RPLACA (CDR V) (XADD (CONS *S* X) (CADR V) NIL T)) 00038630
  3573. (COND ((NULL (CAR X)) (RETURN X))) 00038640
  3574. D (SETQ U (CAR U)) 00038650
  3575. (SETQ W 00038660
  3576. (COND ((ONEP (CDAR U)) (CDR U)) 00038670
  3577. (T 00038680
  3578. (MULTF2 (GETPOWER (COND (Y Y) 00038690
  3579. (T (FKERN (CAAR U)))) 00038700
  3580. (SUB1 (CDAR U))) 00038710
  3581. (MULTN (CDAR U) (CDR U)))))) 00038720
  3582. (RETURN (CONS (MULTF (CAR X) W) (CDR X))) 00038730
  3583. H (SETQ V 00038740
  3584. (COND 00038750
  3585. ((EQ (CAAR X) (QUOTE DF)) 00038760
  3586. (CONS (CAAR X) (CONS (CADAR X) 00038765
  3587. (ORDAD *S* (CDDAR X))))) 00038770
  3588. (T (LIST (QUOTE DF) (CAR X) *S*)))) 00038780
  3589. (SETQ X 00038790
  3590. (COND ((SETQ W (OPMTCH V)) (SIMP W)) (T (MKSQ V 1)))) 00038800
  3591. (GO B)))) 00038810
  3592. 00038820
  3593. (DFP (LAMBDA (U V) 00038830
  3594. (COND ((NULL U) (NULL V)) 00038840
  3595. ((NULL V) NIL) 00038850
  3596. ((CAAR U) (AND (CAR V) (DFP (CDR U) (CDR V)))) 00038860
  3597. (T (DFP (CDR U) (CDR V)))))) 00038870
  3598. 00038880
  3599. )) 00038890
  3600. 00038900
  3601. DEFINE (( 00038910
  3602. 00038920
  3603. (GCDN (LAMBDA (P Q) 00038930
  3604. (GCDN0 (ABS P) (ABS Q)))) 00038940
  3605. 00038950
  3606. (GCDN0 (LAMBDA (P Q) 00038960
  3607. (COND ((EQUAL P Q) P) 00038970
  3608. (*FLOAT (COND ((GREATERP P Q) Q) (T P))) 00038980
  3609. ((GREATERP Q P) (GCDN1 Q P)) 00038990
  3610. (T (GCDN1 P Q))))) 00039000
  3611. 00039010
  3612. (GCDN1 (LAMBDA (P Q) 00039020
  3613. ((LAMBDA (X) (COND ((ZEROP X) Q) (T (GCDN1 Q X)))) 00039030
  3614. (REMAINDER P Q)))) 00039040
  3615. 00039050
  3616. )) 00039060
  3617. 00039070
  3618. DEFINE (( 00039080
  3619. 00039090
  3620. (QUOTF (LAMBDA (P Q) 00039100
  3621. (COND ((NULL P) NIL) 00039110
  3622. ((EQUAL P Q) 1) 00039120
  3623. ((EQUAL Q 1) P) 00039130
  3624. ((ATOM Q) 00039140
  3625. (COND 00039150
  3626. ((ATOM P) 00039160
  3627. (COND (*FLOAT (TIMES P (RECIP (PLUS 0.0 Q)))) 00039165
  3628. (T ((LAMBDA (Z) 00039170
  3629. (COND ((ZEROP (CDR Z)) (CAR Z)) 00039180
  3630. (T NIL))) 00039200
  3631. (DIVIDE P Q))))) 00039210
  3632. (T (QUOTK (CAAR P) P Q)))) 00039220
  3633. ((ATOM P) NIL) 00039230
  3634. (T 00039240
  3635. ((LAMBDA(X Y) 00039250
  3636. (COND 00039260
  3637. ((EQ (CAR X) (CAR Y)) 00039270
  3638. ((LAMBDA(N) 00039280
  3639. (COND 00039290
  3640. ((NOT (MINUSP N)) 00039300
  3641. ((LAMBDA(W) 00039310
  3642. (COND 00039320
  3643. (W 00039330
  3644. ((LAMBDA(V Y) 00039340
  3645. (COND ((NULL Y) V) 00039350
  3646. (T 00039360
  3647. ((LAMBDA(Z) 00039370
  3648. (COND (Z (APPEND V Z)) (T NIL))) 00039380
  3649. (QUOTF Y Q))))) 00039390
  3650. (COND ((ZEROP N) W) 00039400
  3651. (T (LIST (CONS (MKSP (CAR X) N) W)))) 00039410
  3652. (ADDF P 00039420
  3653. (MULTF 00039430
  3654. (COND ((ZEROP N) Q) 00039440
  3655. (T (MULTF2 (MKSP (CAR X) N) Q))) 00039450
  3656. (MULTN -1 W))))) 00039460
  3657. (T NIL))) 00039470
  3658. (QUOTF (CDAR P) (CDAR Q)))) 00039480
  3659. (T NIL))) 00039490
  3660. (DIFFERENCE (CDR X) (CDR Y)))) 00039500
  3661. ((ORDP X Y) (QUOTK X P Q)) 00039510
  3662. (T NIL))) 00039520
  3663. (CAAR P) 00039530
  3664. (CAAR Q)))))) 00039540
  3665. 00039550
  3666. (QUOTK (LAMBDA (X P Q) 00039560
  3667. ((LAMBDA(W) 00039570
  3668. (COND (W 00039580
  3669. (COND ((NULL (CDR P)) (LIST (CONS X W))) 00039590
  3670. (T 00039600
  3671. ((LAMBDA(Y) 00039610
  3672. (COND (Y (CONS (CONS X W) Y)) (T NIL))) 00039620
  3673. (QUOTF (CDR P) Q))))) 00039630
  3674. (T NIL))) 00039640
  3675. (QUOTF (CDAR P) Q)))) 00039650
  3676. 00039660
  3677. )) 00039670
  3678. 00039680
  3679. DEFINE (( 00039690
  3680. 00039700
  3681. (ABSONE (LAMBDA (U) 00039710
  3682. (AND (NUMBERP U) (ONEP (ABS U))))) 00039720
  3683. 00039730
  3684. (CDARX (LAMBDA (U) 00039740
  3685. (COND ((NULL (CDR U)) (CDAR U)) 00039750
  3686. (T (ERRACH (LIST (QUOTE CDARX) U)))))) 00039760
  3687. 00039770
  3688. )) 00039780
  3689. 00039790
  3690. DEFINE (( 00039800
  3691. 00039810
  3692. (PRMCON (LAMBDA (P) 00039820
  3693. (PROG (X Y Q) 00039830
  3694. (SETQ Q P) 00039840
  3695. (COND ((ATOM P) (ERRACH (LIST (QUOTE PRMCON) P))) 00039850
  3696. ((AND (NULL (CDR P)) (SETQ X (CAR P))) (GO B))) 00039860
  3697. (SETQ Y (CAAAR P)) 00039870
  3698. A (COND 00039880
  3699. ((OR (AND (OR (ATOM Q) (NOT (EQ (CAAAR Q) Y))) 00039890
  3700. (SETQ X (CONS 1 (GCD (REVERSE (CONS Q X)))))) 00039900
  3701. (AND (NULL (CDR Q)) 00039910
  3702. (SETQ X 00039920
  3703. (CONS (CAAR Q) (GCD (CONS (CDAR Q) X)))))) 00039930
  3704. (GO B))) 00039940
  3705. (SETQ X (CONS (CDAR Q) X)) 00039950
  3706. (SETQ Q (CDR Q)) 00039960
  3707. (GO A) 00039970
  3708. B (RETURN 00039980
  3709. (CONS (QUOTF P 00039990
  3710. (COND ((ATOM (CAR X)) (CDR X)) (T (LIST X)))) 00040000
  3711. X))))) 00040010
  3712. 00040020
  3713. (GCD (LAMBDA (L) 00040030
  3714. (COND ((NULL (CDR L)) (CAR L)) 00040040
  3715. ((MEMBER 1 L) 1) 00040050
  3716. (T (GCD (CONS (GCD1 (CAR L) (CADR L)) (CDDR L))))))) 00040060
  3717. 00040070
  3718. (GCD1 (LAMBDA (U V) 00040080
  3719. (COND 00040090
  3720. ((OR (NULL U) (NULL V)) (ERRACH (LIST (QUOTE GCD1) U V))) 00040100
  3721. ((EQUAL U V) U) 00040110
  3722. ((ATOM U) 00040120
  3723. (COND ((ATOM V) (GCDN U V)) 00040130
  3724. (T (GCD (NCONS (CDR V) (LIST U (CDAR V))))))) 00040140
  3725. ((ATOM V) (GCD (NCONS (CDR U) (LIST V (CDAR U))))) 00040150
  3726. (T 00040160
  3727. ((LAMBDA(X Y) 00040170
  3728. (COND ((EQ X Y) 00040180
  3729. (PROG (N W X1 Y1 Z Z1 Z2 Z3) 00040190
  3730. (SETQ X1 (PRMCON U)) 00040200
  3731. (SETQ Y1 (PRMCON V)) 00040210
  3732. (SETQ W 1) 00040220
  3733. (SETQ Z1 (CAR X1)) 00040230
  3734. (SETQ Z2 (CAR Y1)) 00040240
  3735. (COND 00040250
  3736. ((OR (NULL *GCD) (ABSONE Z1) (ABSONE Z2)) 00040260
  3737. (GO A)) 00040270
  3738. ((OR (ATOM Z1) (ATOM Z2)) 00040280
  3739. (ERRACH (LIST (QUOTE GCDK) U V X1 Y1))) 00040290
  3740. ((EQ (CAAAR Z1) (CAAAR Z2)) (GO C))) 00040300
  3741. A (SETQ W (MULTF W (GCD1 (CDDR X1) (CDDR Y1)))) 00040310
  3742. (RETURN 00040320
  3743. (COND 00040330
  3744. ((OR (ATOM (CADR X1)) (ATOM (CADR Y1))) W) 00040340
  3745. ((ORDP (CADR X1) (CADR Y1)) 00040350
  3746. (MULTF2 (CADR Y1) W)) 00040360
  3747. (T (MULTF2 (CADR X1) W)))) 00040370
  3748. C (COND ((ORDP Z1 Z2) (GO D))) 00040380
  3749. (SETQ Z Z1) 00040390
  3750. D1 (SETQ Z1 Z2) 00040400
  3751. (SETQ Z2 Z) 00040410
  3752. D (SETQ Z (REMK Z1 Z2)) 00040420
  3753. (COND (Z (GO G))) 00040430
  3754. (SETQ W (CAR (PRMCON Z2))) 00040440
  3755. (GO A) 00040450
  3756. G (COND ((NULL N) (GO H))) 00040460
  3757. (SETQ Z (QUOTF Z (NMULTF Z3 N))) 00040470
  3758. (COND 00040480
  3759. ((NULL Z) 00040490
  3760. (REDERR 00040500
  3761. (LIST (QUOTE (INTEGER OVERFLOW)) Z3 N)))) 00040510
  3762. H (SETQ N 00040520
  3763. (ADD1 (DIFFERENCE (CDAAR Z1) (CDAAR Z2)))) 00040530
  3764. (SETQ Z3 (CDAR Z2)) 00040540
  3765. (COND 00040550
  3766. ((OR (ATOM Z) 00040560
  3767. (NULL (CDR Z)) 00040570
  3768. (NOT (EQ (CAAAR Z) (CAAAR Z1)))) 00040580
  3769. (GO A))) 00040590
  3770. (GO D1))) 00040600
  3771. ((ORDP X Y) (GCD (CONS V (COEFF U X)))) 00040610
  3772. (T (GCD (CONS U (COEFF V Y)))))) 00040620
  3773. (CAAAR U) 00040630
  3774. (CAAAR V)))))) 00040640
  3775. 00040650
  3776. (COEFF (LAMBDA (U A) 00040660
  3777. (COND ((NULL U) NIL) 00040670
  3778. ((OR (ATOM U) (NOT (EQ (CAAAR U) A))) (LIST U)) 00040680
  3779. (T (CONS (CDAR U) (COEFF (CDR U) A)))))) 00040690
  3780. 00040700
  3781. (REMK (LAMBDA (U V) 00040710
  3782. (REMK1 U V (CAAR V) NIL))) 00040720
  3783. 00040730
  3784. (REMK1 (LAMBDA (U V W Z) 00040740
  3785. (COND 00040750
  3786. ((AND (NOT (ATOM U)) (ORDP (CAAR U) W)) 00040760
  3787. (REMK1 (ADDF (MULTF (CDAR V) U) 00040770
  3788. ((LAMBDA(M X) 00040780
  3789. (COND ((ZEROP M) (MULTN -1 X)) 00040790
  3790. (T 00040800
  3791. (MULTF 00040810
  3792. (LIST (CONS (MKSP (CAAAR U) M) -1)) 00040820
  3793. X)))) 00040830
  3794. (DIFFERENCE (CDAAR U) (CDR W)) 00040840
  3795. (MULTF (CDAR U) V))) 00040850
  3796. V 00040860
  3797. W 00040870
  3798. (MULTF Z (CDAR V)))) 00040880
  3799. ((NULL Z) U) 00040890
  3800. (T (CANCEL (CONS U Z)))))) 00040900
  3801. 00040910
  3802. (REMK* (LAMBDA (U V) 00040920
  3803. (REMK1 U V (CAAR V) 1))) 00040930
  3804. 00040940
  3805. (NMULTF (LAMBDA (U N) 00040950
  3806. (COND ((OR *EXP (KERNLP U)) (NMULTF1 U N)) (T (MKSFP U N))))) 00040960
  3807. 00040970
  3808. (NMULTF1 (LAMBDA (U N) 00040980
  3809. (COND ((ONEP N) U) (T (MULTF U (NMULTF1 U (SUB1 N))))))) 00040990
  3810. 00041000
  3811. )) 00041010
  3812. 00041020
  3813. DEFINE (( 00041030
  3814. 00041040
  3815. (OPERATOR (LAMBDA (U) 00041050
  3816. (PROG NIL 00041060
  3817. (COND 00041070
  3818. ((EQ *MODE (QUOTE SYMBOLIC)) 00041080
  3819. (RETURN (FLAG U (QUOTE OPFN))))) 00041090
  3820. A (COND ((NULL U) (RETURN NIL)) 00041100
  3821. ((OR (NUMBERP (CAR U)) (NOT (ATOM (CAR U)))) 00041110
  3822. (LPRIM* 00041120
  3823. (CONS (CAR U) (QUOTE (CANNOT BE AN OPERATOR))))) 00041130
  3824. ((GET (CAR U) (QUOTE SIMPFN)) 00041140
  3825. (LPRIM* (CONS (CAR U) (QUOTE (ALREADY DEFINED))))) 00041150
  3826. (T (MKOP (CAR U)))) 00041160
  3827. (SETQ U (CDR U)) 00041170
  3828. (GO A)))) 00041180
  3829. 00041190
  3830. (FACTOR (LAMBDA (U) 00041200
  3831. (FACTOR1 U T (QUOTE FACTORS*)))) 00041210
  3832. 00041220
  3833. (FACTOR1 (LAMBDA (U V W) 00041230
  3834. (PROG (X Y) 00041240
  3835. (SETQ Y (GTS W)) 00041250
  3836. A (COND ((NULL U) (GO B)) 00041260
  3837. ((OR (KERNP (SETQ X (SIMPCAR U))) 00041270
  3838. (AND *SUPER (KERNP (SETQ X (MKSFP X 1))))) 00041280
  3839. (GO C)) 00041290
  3840. (T (ERRPRI2 (CAR U)))) 00041300
  3841. (GO D) 00041310
  3842. C (SETQ X (CAAAAR X)) 00041320
  3843. (COND (V (SETQ Y (CONS X Y))) 00041330
  3844. ((NOT (MEMBER X Y)) 00041340
  3845. (MESPRI NIL (CAR U) (QUOTE (NOT FOUND)) NIL NIL)) 00041350
  3846. (T (SETQ Y (DELETE X Y)))) 00041360
  3847. D (SETQ U (CDR U)) 00041370
  3848. (GO A) 00041375
  3849. B (PTS W Y)))) 00041380
  3850. 00041390
  3851. (REMFAC (LAMBDA (U) 00041400
  3852. (FACTOR1 U NIL (QUOTE FACTORS*)))) 00041410
  3853. 00041420
  3854. )) 00041430
  3855. 00041440
  3856. DEFINE (( 00041450
  3857. 00041460
  3858. (FORALLFN* (LAMBDA NIL 00041470
  3859. (FORALLFN (RVLIS)))) 00041480
  3860. 00041490
  3861. (FORALLFN (LAMBDA (U) 00041500
  3862. (PROG (X Y) 00041510
  3863. (SETQ X (MAPCAR U (FUNCTION NEWVAR))) 00041520
  3864. (SETQ Y (PAIR U X)) 00041530
  3865. (SETQ MCOND* (SUBLIS Y MCOND*)) 00041540
  3866. (SETQ FRLIS* (UNION X FRLIS*)) 00041550
  3867. (SETQ X (LIST (COMMAND1 NIL))) 00041560
  3868. (COND (MCOND* (SETQ X (CONS (LIST (QUOTE SETQ) 00041570
  3869. (QUOTE MCOND*) (LIST (QUOTE QUOTE) MCOND*)) X)))) 00041580
  3870. (COND (Y (SETQ X (CONS (LIST (QUOTE SETQ) (QUOTE FRASC*) 00041590
  3871. (LIST (QUOTE QUOTE) Y)) X)))) 00041592
  3872. (RETURN (MKPROG NIL X))))) 00041594
  3873. 00041600
  3874. )) 00041610
  3875. 00041620
  3876. DEFINE (( 00041630
  3877. 00041640
  3878. (LET (LAMBDA (U) 00041650
  3879. (LET0 U NIL))) 00041660
  3880. 00041670
  3881. (LET0 (LAMBDA (U V) 00041680
  3882. (PROG NIL 00041690
  3883. A (COND ((NULL U) (RETURN (SETQ MCOND* (SETQ FRASC* NIL)))) 00041700
  3884. ((OR (NOT (EQCAR (CAR U) (QUOTE EQUAL))) (CDDDAR U)) 00041710
  3885. (ERRPRI2 (CAR U)))) 00041720
  3886. (LET2 (CADAR U) (CAR (CDDAR U)) V T) 00041730
  3887. (SETQ U (CDR U)) 00041740
  3888. (GO A)))) 00041750
  3889. 00041760
  3890. (LET1 (LAMBDA (U V) 00041770
  3891. (LET2 U V NIL T))) 00041780
  3892. 00041790
  3893. (LET2 (LAMBDA (U V W B) 00041800
  3894. (PROG (X Y Z) 00041810
  3895. (SETQ U (SUBLIS FRASC* U)) 00041812
  3896. (SETQ V (SUBLIS FRASC* V)) 00041814
  3897. (COND ((AND FRASC* (EQCAR V (QUOTE *SQ))) 00041816
  3898. (SETQ V (PREPSQ (CADR V))))) 00041818
  3899. A (SETQ X U) 00041820
  3900. (COND ((NUMBERP X) (GO LER1)) 00041840
  3901. ((NOT (ATOM X)) (GO D)) 00041850
  3902. ((AND (SETQ Y (GET X (QUOTE OLDNAME))) 00041860
  3903. (NOT (MEMBER Y (FLATTEN V)))) (LET2 Y V W B))) 00041870
  3904. (COND (B (GO A2))) 00041880
  3905. (REMPROP X (QUOTE NEWNAME)) 00041890
  3906. (REMPROP X (QUOTE OLDNAME)) 00041900
  3907. A2 (COND 00041950
  3908. ((AND (VECTORP X) (VLET X V B)) (RETURN NIL)) 00041960
  3909. ((AND (NULL B) (GET X (QUOTE **ARRAY))) (GO J2)) 00041970
  3910. (W (GO H)) 00041980
  3911. ((MATEXPR V) (GO J))) 00041990
  3912. B1 (SETQ X (SIMP0 X)) 00042000
  3913. C (SETQ X (CAAAR X)) 00042010
  3914. (SETQ Z (FKERN (CAR X))) 00042020
  3915. (COND ((NULL B) (RETURN (RPLACD (CDR Z) NIL))) 00042025
  3916. ((ASSOC (QUOTE USED*) (CDR Z)) (RMSUBS2))) 00042030
  3917. (XADD 00042040
  3918. (COND 00042050
  3919. ((AND (EQUAL V 0) (NOT (EQUAL (CDR X) 1))) 00042060
  3920. (CONS (QUOTE ASYMP) (CDR X))) 00042070
  3921. (T (LIST (QUOTE REP) V (CDR X) NIL))) 00042080
  3922. (CDR Z) 00042090
  3923. (SQCHK (CAR Z)) 00042100
  3924. T) 00042110
  3925. (RPLACW Z (DELASC (QUOTE DFN) Z)) 00042120
  3926. (RETURN NIL) 00042130
  3927. D (COND ((NOT (ATOM (CAR X))) (GO LER2)) 00042140
  3928. ((GET* (CAR X) (QUOTE **ARRAY)) (GO L)) 00042150
  3929. ((EQ (CAR X) (QUOTE DF)) (GO K)) 00042160
  3930. ((NOT (GET* (CAR X) (QUOTE SIMPFN))) (GO LER3)) 00042180
  3931. ((OR W 00042190
  3932. (EQ (CAR X) (QUOTE TIMES)) 00042200
  3933. (XN (FLATTEN (CDR X)) FRLIS*)) 00042210
  3934. (GO H))) 00042220
  3935. (SETQ X (SIMP0 X)) 00042230
  3936. (COND ((NOT (EQUAL (CDR X) 1)) (GO LER1))) 00042240
  3937. E (COND ((NOT (KERNP X)) (GO G)) 00042250
  3938. ((NOT (ONEP (CDAAR X))) 00042260
  3939. (SETQ V (LIST (QUOTE QUOTIENT) V (CDAAR X))))) 00042270
  3940. (GO C) 00042280
  3941. G (COND ((NOT (KERNLP (CAR X))) (GO M))) 00042290
  3942. (SETQ X U) 00042300
  3943. H (RMSUBS) 00042305
  3944. (COND 00042310
  3945. ((OR (NULL 00042320
  3946. (SETQ Y 00042330
  3947. (KERNLP 00042340
  3948. (CAR (SETQ X (SIMP0 X)))))) 00042350
  3949. (NOT (ATOM (CDR X)))) 00042360
  3950. (GO LER2)) 00042370
  3951. ((AND (ONEP Y) (ONEP (CDR X))) (GO H1))) 00042380
  3952. (SETQ V (LIST (QUOTE TIMES) (CDR X) V)) 00042390
  3953. (COND 00042400
  3954. ((NOT (ONEP Y)) 00042410
  3955. (SETQ V (ACONC V (LIST (QUOTE QUOTIENT) 1 Y))))) 00042420
  3956. H1 (SETQ X (KLISTT (CAR X))) 00042430
  3957. (SETQ Y 00042440
  3958. (LIST (CONS W (COND (MCOND* MCOND*) (T T))) 00042450
  3959. V 00042460
  3960. NIL)) 00042470
  3961. (COND 00042480
  3962. ((AND (NULL W) (NULL (CDR X)) (ONEP (CDAR X))) (GO H2))) 00042490
  3963. (RETURN (SETQ MATCH* (XADD (CONS X Y) MATCH* U B))) 00042500
  3964. H2 (SETQ X (CAAR X)) 00042510
  3965. (COND ((NOT (MATEXPR V)) (GO H3)) 00042511
  3966. ((NOT (REDMSG (CAR X) (QUOTE MATRIX) T)) (ERROR*))) 00042512
  3967. (FLAG (LIST (CAR X)) (QUOTE MATFN)) 00042513
  3968. H3 (RETURN (PUT (CAR X) 00042514
  3969. (QUOTE OPMTCH*) 00042530
  3970. (XADD (CONS (CDR X) Y) 00042540
  3971. (GET (CAR X) (QUOTE OPMTCH*)) 00042550
  3972. U B))) 00042560
  3973. J (SETQ MATP* T) 00042590
  3974. (COND ((GET X (QUOTE MATRIX)) (GO J1)) 00042600
  3975. ((NOT (REDMSG X (QUOTE MATRIX) T)) (ERROR*))) 00042610
  3976. (PUT X (QUOTE MATRIX) (QUOTE MATRIX)) 00042620
  3977. J1 (COND ((EQCAR V (QUOTE MAT)) (RETURN (SETM X V))) 00042630
  3978. (T (GO B1))) 00042640
  3979. J2 (REMPROP X (QUOTE MATRIX)) 00042650
  3980. (REMPROP X (QUOTE **ARRAY)) 00042660
  3981. (REMPROP X (QUOTE ARRAY))
  3982. (RETURN NIL) 00042670
  3983. K (COND 00042680
  3984. ((AND (NOT (ATOMLIS (CADR X))) (CDDDR X)) (GO LER1)) 00042690
  3985. ((AND (NOT (GET* (CAADR X) (QUOTE SIMPFN))) 00042700
  3986. (SETQ X (CADR X))) 00042710
  3987. (GO LER3)) 00042720
  3988. ((OR (NOT (FRLP (CDADR X))) 00042730
  3989. (NOT (FRLP (CDDR X))) 00042740
  3990. (NOT (MEMBER (CADDR X) (CDADR X)))) 00042750
  3991. (GO H))) 00042760
  3992. (SETQ Z (POSN (CADDR X) (CDADR X))) 00042770
  3993. (COND 00042780
  3994. ((NOT (GET (CAADR X) (QUOTE DFN))) 00042790
  3995. (PUT (CAADR X) 00042800
  3996. (QUOTE DFN) 00042810
  3997. (NLIST NIL (LENGTH (CDADR X)))))) 00042820
  3998. (COND 00042830
  3999. ((NULL (REPN (GET (CAADR X) (QUOTE DFN)) Z V X)) 00042840
  4000. (GO LER1))) 00042850
  4001. (RETURN NIL) 00042860
  4002. L (COND ((AND (SETQ Z (ASSOC* X (GET (CAR X) (QUOTE KLIST)))) 00042865
  4003. (ASSOC (QUOTE USED*) (CDR Z))) (RMSUBS2))) 00042870
  4004. (SETEL (CONS (CAR X) (MAPCAR (CDR X) (FUNCTION 00042875
  4005. REVAL))) V) 00042880
  4006. (RETURN NIL) 00042890
  4007. M (COND ((NULL *SUPER) (GO LER1))) 00042900
  4008. (SETQ X (CONS (MKSFP (CAR X) 1) 1)) 00042910
  4009. (GO E) 00042920
  4010. LER1 (ERRPRI2 U) 00042930
  4011. (ERROR*) 00042940
  4012. LER2 (ERRPRI1 U) 00042950
  4013. (ERROR*) 00042960
  4014. LER3 (COND ((NOT (REDMSG (CAR X) (QUOTE OPERATOR) T)) (ERROR*))) 00042970
  4015. (MKOP (CAR X)) 00042980
  4016. (GO A)))) 00042990
  4017. 00043000
  4018. (FRLP (LAMBDA (U) 00043010
  4019. (OR (NULL U) (AND (MEMBER (CAR U) FRLIS*) (FRLP (CDR U)))))) 00043020
  4020. 00043030
  4021. (SIMP0 (LAMBDA (U) 00043040
  4022. (PROG (X) 00043050
  4023. (SETQ SUBFG* NIL) 00043060
  4024. (SETQ X (SIMP U)) 00043070
  4025. (SETQ SUBFG* T) 00043080
  4026. (RETURN X)))) 00043090
  4027. 00043100
  4028. (MATCH (LAMBDA (U) 00043220
  4029. (LET0 U T))) 00043230
  4030. 00043240
  4031. (CLEAR (LAMBDA (U) 00043250
  4032. (PROG NIL 00043260
  4033. (RMSUBS) 00043270
  4034. A (COND ((NULL U) (RETURN (SETQ MCOND* (SETQ FRASC* NIL))))) 00043280
  4035. B (LET2 (CAR U) NIL NIL NIL) 00043330
  4036. (SETQ U (CDR U)) 00043340
  4037. (GO A)))) 00043350
  4038. 00043360
  4039. (KLISTT (LAMBDA (U) 00043370
  4040. (COND ((ATOM U) NIL) (T (CONS (CAAR U) (KLISTT (CDARX U))))))) 00043380
  4041. 00043390
  4042. )) 00043400
  4043. 00043410
  4044. DEFINE (( 00043420
  4045. 00043430
  4046. (KERNP (LAMBDA (U) 00043440
  4047. (AND (ATOM (CDR U)) 00043450
  4048. (NOT (ATOM (CAR U))) 00043460
  4049. (NULL (CDAR U)) 00043470
  4050. (ATOM (CDAAR U))))) 00043480
  4051. 00043490
  4052. (KERNLP (LAMBDA (U) 00043500
  4053. (COND ((ATOM U) U) ((NULL (CDR U)) (KERNLP (CDAR U))) (T NIL)))) 00043510
  4054. 00043520
  4055. (RMSUBS (LAMBDA NIL 00043530
  4056. (PROG2 (RMSUBS1) (RMSUBS2)))) 00043531
  4057. 00043532
  4058. (RMSUBS2 (LAMBDA NIL 00043533
  4059. (PROG2 (RPLACA *SQVAR* NIL) (SETQ *SQVAR* (LIST T))))) 00043534
  4060. 00043550
  4061. (RMSUBS1 (LAMBDA NIL 00043560
  4062. (PROG NIL 00043570
  4063. (MAP (APPEND DSUBL* SUBL*) 00043580
  4064. (FUNCTION (LAMBDA (J) (RPLACA (CAR J) NIL)))) 00043590
  4065. (SETQ SUBL* NIL)))) 00043600
  4066. 00043610
  4067. (XADD (LAMBDA (U V W B) 00043620
  4068. (PROG (X) 00043630
  4069. (SETQ X (ASSOC* (CAR U) V)) 00043640
  4070. (COND ((NULL X) (GO C)) ((NULL B) (GO B1))) 00043650
  4071. (RMSUBS1) 00043660
  4072. (RPLACD X (CDR U)) 00043670
  4073. A (RETURN V) 00043680
  4074. B1 (SETQ V (DELETE X V)) 00043690
  4075. (GO A) 00043700
  4076. C (COND ((NULL B) (MESPRI NIL W (QUOTE (NOT FOUND)) NIL NIL)) 00043710
  4077. (T (SETQ V (NCONC V (LIST U))))) 00043720
  4078. (GO A)))) 00043730
  4079. 00043740
  4080. (REPN (LAMBDA (U N V W) 00043750
  4081. (PROG NIL 00043760
  4082. A (COND ((OR (NULL U) (ZEROP N)) (RETURN NIL)) 00043770
  4083. ((NOT (ONEP N)) (GO B)) 00043780
  4084. ((CAR U) (REDEFPRI W))) 00043790
  4085. (RETURN (RPLACA U (CONS (CDADR W) V))) 00043800
  4086. B (SETQ U (CDR U)) 00043810
  4087. (SETQ N (SUB1 N)) 00043820
  4088. (GO A)))) 00043830
  4089. 00043840
  4090. (DENOM (LAMBDA (U) 00043850
  4091. (PROG2 (LET1 U (MK*SQ (CONS (CDR (SIMP *ANS)) 1)))
  4092. (SETQ MCOND* (SETQ FRASC* NIL)))))
  4093. 00043870
  4094. (NUMER* (LAMBDA (U)
  4095. (LET1 U (MK*SQ (CONS (CAR (SIMP *ANS)) 1))))) 00043890
  4096. 00043900
  4097. (ND (LAMBDA (U V) 00043910
  4098. (PROG2 (NUMER* U) (DENOM V))))
  4099. (NUMER (LAMBDA (U)
  4100. (PROG2 (NUMER* U) (SETQ MCOND* (SETQ FRASC* NIL)))))
  4101. 00043930
  4102. (SAVEAS (LAMBDA (U) 00043940
  4103. (SETK U *ANS))) 00043950
  4104. 00043960
  4105. (SETK (LAMBDA (U V) 00043970
  4106. (PROG2 (LET1 U 00043980
  4107. (COND 00043990
  4108. ((AND(NOT (ATOM U))(NOT (ATOM V))(XN (CDR U) FRLIS*)) 00044000
  4109. (PREPSQ (CADR V))) 00044010
  4110. (T V))) 00044020
  4111. V))) 00044030
  4112. 00044040
  4113. (TERMS (LAMBDA NIL 00044050
  4114. (PRINTTY 00044060
  4115. (COND 00044070
  4116. ((EQCAR *ANS (QUOTE *SQ)) (TERMS1 (CAADR *ANS))) 00044080
  4117. (T (SCNT *ANS)))))) 00044090
  4118. 00044100
  4119. (TERMS1 (LAMBDA (U) 00044110
  4120. (PROG (N) 00044120
  4121. (SETQ N 0) 00044130
  4122. A (COND ((NULL U) (RETURN N)) ((ATOM U) (RETURN (ADD1 N)))) 00044140
  4123. (SETQ N (PLUS N (TERMS1 (CDAR U)))) 00044150
  4124. (SETQ U (CDR U)) 00044160
  4125. (GO A)))) 00044170
  4126. 00044180
  4127. )) 00044190
  4128. 00044200
  4129. DEFINE (( 00044210
  4130. 00044220
  4131. (ANTISYMMETRIC (LAMBDA (U) 00044230
  4132. (FLAG U (QUOTE ANTISYMMETRIC)))) 00044240
  4133. 00044250
  4134. (SYMMETRIC (LAMBDA (U) 00044260
  4135. (FLAG U (QUOTE SYMMETRIC)))) 00044270
  4136. 00044280
  4137. )) 00044290
  4138. 00044300
  4139. FLAG ((PLUS TIMES CONS) SYMMETRIC) 00044310
  4140. 00044320
  4141. FLAG ((PLUS TIMES) NARY) 00044321
  4142. 00044322
  4143. DEFINE (( 00044330
  4144. 00044340
  4145. (MKCOEFF (LAMBDA (U V) 00044350
  4146. (PROG (W X Y Z) 00044360
  4147. (COND ((NOT (ATOM U)) (SETQ U (REVAL U)))) 00044370
  4148. (SETQ X FACTORS*) 00044380
  4149. (SETQ FACTORS* (LIST U)) 00044390
  4150. (SETQ W 00044400
  4151. (COND 00044410
  4152. ((EQCAR *ANS (QUOTE *SQ)) (CADR *ANS)) 00044420
  4153. (T (SIMP *ANS)))) 00044430
  4154. (SETQ Y (CONS (FORMOP (CAR W)) (FORMOP (CDR W)))) 00044440
  4155. (COND 00044450
  4156. ((NULL (EQUAL (CDR Y) 1)) 00044460
  4157. (LPRIM* (QUOTE (MKCOEFF GIVEN RATIONAL FUNCTION))))) 00044470
  4158. (SETQ W (CDR Y)) 00044480
  4159. (SETQ Y (CAR Y)) 00044490
  4160. A (COND ((OR (ATOM Y) (NOT (EQUAL (CAAAR Y) U))) (GO B))) 00044500
  4161. (SETQ Z 00044510
  4162. (CONS (CONS (CDAAR Y) 00044520
  4163. (PREPSQ (CANCEL (CONS (CDAR Y) W)))) 00044530
  4164. Z)) 00044540
  4165. (SETQ Y (CDR Y)) 00044550
  4166. (GO A) 00044560
  4167. B (COND ((NULL Y) (GO B1))) 00044570
  4168. (SETQ Z (CONS (CONS 0 (PREPSQ (CANCEL (CONS Y W)))) Z)) 00044580
  4169. B1 (COND 00044590
  4170. ((OR (AND (NOT (ATOM V)) (ATOM (CAR V)) 00044595
  4171. (SETQ Y (GET* (CAR V) (QUOTE **ARRAY)))) 00044600
  4172. (AND (ATOM V) 00044605
  4173. (SETQ Y (GET* V (QUOTE **ARRAY))) 00044610
  4174. (NULL (CDR Y)))) 00044615
  4175. (GO G))) 00044630
  4176. (SETQ Y (EXPLODE V)) 00044640
  4177. (SETQ V NIL) 00044650
  4178. C (COND ((NULL Z) (GO D))) 00044660
  4179. (SETQ V 00044670
  4180. (CONS (LIST (QUOTE EQUAL) 00044680
  4181. (COMPRESS (APPEND Y (EXPLODE (CAAR Z)))) 00044690
  4182. (CDAR Z)) 00044700
  4183. V)) 00044710
  4184. (SETQ Z (CDR Z)) 00044720
  4185. (GO C) 00044730
  4186. D (*APPLY (QUOTE LET) (LIST V)) 00044740
  4187. (COND 00044760
  4188. (*MSG 00044770
  4189. (LPRI 00044780
  4190. (NCONC (MAPLIST V (FUNCTION CADAR)) 00044790
  4191. (QUOTE (ARE NON ZERO)))))) 00044800
  4192. E (SETQ FACTORS* X) 00044805
  4193. (RETURN NIL) 00044810
  4194. G (SETQ Z (REVERSE Z)) 00044815
  4195. (COND ((ATOM V) (SETQ V (LIST V (QUOTE *))))) 00044820
  4196. (COND 00044840
  4197. (*MSG 00044850
  4198. (LPRI 00044860
  4199. (APPEND (QUOTE (HIGHEST POWER IS)) (LIST (CAAR Z)))))) 00044870
  4200. (SETQ Y (PAIR (CDR V) Y)) 00044871
  4201. G0 (COND ((AND (MEMBER (QUOTE *) (FLATTEN (CAAR Y))) 00044872
  4202. (SETQ Y (PLUS (CDAR Y) (MINUS (REVAL 00044873
  4203. (SUBST 0 (QUOTE *) (CAAR Y))))))) (GO G1))) 00044874
  4204. (SETQ Y (CDR Y)) 00044875
  4205. (GO G0) 00044876
  4206. G1 (COND 00044877
  4207. ((GREATERP (CAAR Z) Y) (REDERR (QUOTE (ARRAY TOO SMALL))))) 00044890
  4208. H (COND 00044900
  4209. ((OR (NULL Z) (NOT (EQUAL Y (CAAR Z)))) 00044910
  4210. (SETEL (SUBST Y (QUOTE *) V) 0)) 00044915
  4211. (T (PROG2 (SETEL (SUBST Y (QUOTE *) V) (CDAR Z)) 00044920
  4212. (SETQ Z (CDR Z))))) 00044925
  4213. (COND ((ZEROP Y) (GO E))) 00044930
  4214. (SETQ Y (SUB1 Y)) 00044950
  4215. (GO H)))) 00044960
  4216. 00044970
  4217. )) 00044980
  4218. 00044990
  4219. 00045000
  4220. DEFINE (( 00045010
  4221. 00045020
  4222. (WEIGHT (LAMBDA (U) 00045030
  4223. (PROG (X Y) 00045040
  4224. (RMSUBS) 00045050
  4225. A (COND ((NULL U) (RETURN NIL)) 00045060
  4226. ((OR (NOT (EQ (CAAR U) (QUOTE EQUAL))) 00045070
  4227. (NOT (AND (ATOM (CADAR U)) 00045075
  4228. (NOT (NUMBERP (CADAR U))))) 00045080
  4229. (NOT 00045090
  4230. (AND (NUMBERP (CADDAR U)) 00045100
  4231. (FIXP (CADDAR U)) 00045110
  4232. (NOT (MINUSP (CADDAR U)))))) 00045115
  4233. (ERRPRI1 (CAR U)))) 00045120
  4234. (SETQ Y (CADAR U)) 00045125
  4235. (COND ((SETQ X (GET Y (QUOTE OLDNAME))) (GO C))) 00045130
  4236. (SETQ X (NEWVAR Y)) 00045135
  4237. (PUT Y (QUOTE NEWNAME) X) 00045140
  4238. (PUT X (QUOTE OLDNAME) Y) 00045145
  4239. (FLAG (LIST X) (QUOTE WEIGHT)) 00045150
  4240. B (LET2 X 00045155
  4241. (LIST (QUOTE TIMES) 00045160
  4242. Y 00045165
  4243. (LIST (QUOTE EXPT) (QUOTE K*) (CADDAR U))) 00045170
  4244. NIL 00045175
  4245. T) 00045180
  4246. (SETQ U (CDR U)) 00045185
  4247. (GO A) 00045190
  4248. C (COND ((NOT (FLAGP Y (QUOTE WEIGHT))) (ERRPRI1 (CAR U)))) 00045195
  4249. (SETQ Y X) 00045200
  4250. (SETQ X (CADAR U)) 00045205
  4251. (GO B)))) 00045210
  4252. 00045215
  4253. (WTLEVEL (LAMBDA (N) 00045220
  4254. (PROG (X) 00045225
  4255. (SETQ N (REVAL N)) 00045230
  4256. (COND 00045235
  4257. ((NOT (AND (NUMBERP N) (FIXP N) (NOT (MINUSP N)))) 00045240
  4258. (ERRPRI1 N))) 00045245
  4259. (SETQ X (ASSOC (QUOTE ASYMP) (CDDR (FKERN (QUOTE K*))))) 00045250
  4260. (COND ((EQUAL N (CDR X)) (RETURN NIL)) 00045255
  4261. ((NOT (GREATERP N (CDR X))) (RMSUBS2))) 00045260
  4262. (RMSUBS1) 00045265
  4263. (RPLACD X N)))) 00045270
  4264. 00045300
  4265. )) 00045310
  4266. 00045320
  4267. DEFLIST (((WEIGHT RLIS) (WTLEVEL NORLIS)) STAT) 00045330
  4268. 00045340
  4269. LET1 ((EXPT K* 2) 0) 00045350
  4270. 00045360
  4271. COMMENT ((ELEMENTARY FUNCTION PROPERTIES)) 00045370
  4272. 00045380
  4273. DEFLIST (((LOG IDEN) (COS IDEN) (SIN IDEN)) SIMPFN) 00045390
  4274. 00045400
  4275. DEFLIST (( 00045410
  4276. (LOG (((LOG E) (((LOG E) . 1)) (REP 1 1 NIL)) 00045420
  4277. ((LOG 1) (((LOG 1) . 1)) (REP 0 1 NIL)))) 00045430
  4278. (COS (((COS 0) (((COS 0) . 1)) (REP 1 1 NIL)))) 00045440
  4279. (SIN (((SIN 0) (((SIN 0) . 1)) (REP 0 1 NIL)))) 00045450
  4280. ) KLIST) 00045460
  4281. 00045470
  4282. DEFLIST (( 00045480
  4283. (EXPT (((X Y) TIMES Y (EXPT X (PLUS Y (MINUS 1)))) 00045490
  4284. ((X Y) TIMES (LOG X) (EXPT X Y)))) 00045500
  4285. (LOG (((X) QUOTIENT 1 X))) 00045510
  4286. (COS (((X) MINUS (SIN X)))) 00045520
  4287. (SIN (((X) COS X))) 00045530
  4288. ) DFN) 00045540
  4289. 00045550
  4290. DEFLIST (( 00045560
  4291. (COS ((((MINUS ***X)) (NIL . T) (COS ***X) NIL))) 00045570
  4292. (SIN ((((MINUS ***X)) (NIL . T) (MINUS (SIN ***X)) NIL))) 00045580
  4293. ) OPMTCH*) 00045590
  4294. 00045600
  4295. PTS (FRLIS* (***X)) 00045610
  4296. 00045620
  4297. DEFINE (( 00045630
  4298. 00045640
  4299. (MSIMP (LAMBDA (U V) 00045650
  4300. (PROG (X Y Z) 00045660
  4301. (COND ((AND (NULL V) SUBFG*) (SETQ U (SUBLIS VREP* U)))) 00045670
  4302. (SETQ U (MSIMP1 U V)) 00045680
  4303. A1 (COND ((NULL U) (RETURN Z))) 00045690
  4304. A0 (SETQ X (CAR U)) 00045700
  4305. A (COND ((AND V (NULL X)) (GO D)) 00045710
  4306. ((NULL X) (GO NULLU)) 00045720
  4307. ((OR (AND (NULL V) (VECTORP (CAR X))) 00045730
  4308. (AND V (MATP (CAR X)))) 00045740
  4309. (GO B))) 00045750
  4310. BACK (SETQ X (CDR X)) 00045760
  4311. (GO A) 00045770
  4312. B (SETQ Y (LIST (CAR X))) 00045780
  4313. (SETQ X (CDR X)) 00045790
  4314. C (COND ((NULL X) (GO D)) 00045800
  4315. ((AND (NULL V) (VECTORP (CAR X))) 00045810
  4316. (REDERR 00045820
  4317. (APPEND (QUOTE (REDUNDANT VECTOR)) (LIST (CAR U))))) 00045830
  4318. ((AND V (MATP (CAR X))) (SETQ Y (ACONC Y (CAR X))))) 00045840
  4319. (SETQ X (CDR X)) 00045850
  4320. (GO C) 00045860
  4321. D (SETQ X (SETDIFF (CAR U) Y)) 00045870
  4322. (SETQ Z 00045880
  4323. (ADDM1 (CONS (COND ((NULL X) (CONS 1 1)) 00045890
  4324. (T (SIMPTIMES X))) 00045900
  4325. (REVERSE Y)) 00045910
  4326. Z)) 00045920
  4327. (SETQ U (CDR U)) 00045930
  4328. (GO A1) 00045940
  4329. E (VECTOR (LIST (CAAR U))) 00045950
  4330. (GO A0) 00045960
  4331. NULLU 00045970
  4332. (COND 00045980
  4333. ((AND (ATOM (CAAR U)) 00045990
  4334. (NOT (NUMBERP (CAAR U))) 00046000
  4335. (REDMSG (CAAR U) (QUOTE VECTOR) T)) 00046010
  4336. (GO E)) 00046020
  4337. (T 00046030
  4338. (REDERR 00046040
  4339. (APPEND (QUOTE (MISSING VECTOR)) (LIST (CAR U)))))) 00046050
  4340. (GO BACK)))) 00046060
  4341. 00046070
  4342. (MSIMP1 (LAMBDA (U1 *S*) ((LAMBDA (U) 00046080
  4343. (COND ((NUMBERP U) (LIST (LIST U))) 00046090
  4344. ((ATOM U) 00046100
  4345. ((LAMBDA(X) 00046110
  4346. (COND ((AND X SUBFG* (EQUAL (CADDR X) 1)) 00046115
  4347. (MSIMP1 (CADR X) *S*)) 00046120
  4348. (T 00046130
  4349. (PROG2 00046140
  4350. (COND ((NULL *S*) (FLAG (LIST U) (QUOTE USED*))) 00046150
  4351. (T NIL)) 00046160
  4352. (LIST (LIST U)))))) 00046170
  4353. (ASSOC (QUOTE REP) (CDDR (FKERN U))))) 00046180
  4354. ((EQ (CAR U) (QUOTE PLUS)) 00046190
  4355. (MAPCON (CDR U) 00046200
  4356. (FUNCTION (LAMBDA (J) (MSIMP1 (CAR J) *S*))))) 00046210
  4357. ((EQ (CAR U) (QUOTE MINUS)) 00046220
  4358. (MSIMPTIMES (LIST -1 (CARX (CDR U))) *S*)) 00046230
  4359. ((EQ (CAR U) (QUOTE TIMES)) (MSIMPTIMES (CDR U) *S*)) 00046240
  4360. ((EQ (CAR U) (QUOTE QUOTIENT)) 00046241
  4361. (MSIMPTIMES (LIST (CADR U) 00046242
  4362. (LIST (QUOTE RECIP) (CARX (CDDR U)))) 00046243
  4363. *S*)) 00046244
  4364. ((OR (NULL *S*) (EQCAR U (QUOTE MAT)) (NOT (MATEXPR U))) 00046250
  4365. (LIST (LIST U))) 00046260
  4366. ((EQ (CAR U) (QUOTE RECIP)) (MSIMPRS (CARX (CDR U)) NIL)) 00046270
  4367. ((EQ (CAR U) (QUOTE SOLVE)) 00046280
  4368. (MSIMPRS (CADR U) (MATSIMP (MSIMP (CADDR U) T)))) 00046290
  4369. (T 00046340
  4370. ((LAMBDA(Z) 00046350
  4371. (COND 00046360
  4372. ((OR (NOT (EQ (CAR U) (QUOTE EXPT))) 00046370
  4373. (NOT (NUMBERP Z)) 00046380
  4374. (NOT (FIXP Z))) 00046390
  4375. (REDERR (QUOTE (MATRIX SYNTAX)))) 00046400
  4376. ((MINUSP Z) 00046410
  4377. (MSIMPRS 00046420
  4378. (CONS (QUOTE TIMES) (NLIST (CADR U) (MINUS Z))) NIL)) 00046430
  4379. (T (MSIMPTIMES (NLIST (CADR U) Z) T)))) 00046440
  4380. ((LAMBDA(Y) 00046450
  4381. (COND 00046460
  4382. ((AND (EQCAR Y (QUOTE MINUS)) (NUMBERP (CADR Y))) 00046470
  4383. (MINUS (CADR Y))) 00046480
  4384. (T Y))) 00046490
  4385. (REVAL (CADDR U))))))) (EMTCH U1)))) 00046500
  4386. 00046510
  4387. (MSIMPTIMES (LAMBDA (U V) 00046520
  4388. (COND ((NULL U) (ERRACH (QUOTE MSIMPTIMES))) 00046530
  4389. ((NULL (CDR U)) (MSIMP1 (CAR U) V)) 00046540
  4390. (T 00046550
  4391. ((LAMBDA(*S*) 00046560
  4392. (MAPCON (MSIMPTIMES (CDR U) V) 00046570
  4393. (FUNCTION 00046580
  4394. (LAMBDA(*S1*) 00046590
  4395. (MAPCAR *S* 00046600
  4396. (FUNCTION 00046610
  4397. (LAMBDA(K) 00046620
  4398. (APPEND (CAR *S1*) K)))))))) 00046630
  4399. (MSIMP1 (CAR U) V)))))) 00046640
  4400. 00046650
  4401. (ADDM1 (LAMBDA (U V) 00046660
  4402. (COND ((NULL V) (LIST U)) 00046670
  4403. ((EQUAL (CDR U) (CDAR V)) 00046680
  4404. ((LAMBDA(X) 00046690
  4405. (COND ((NULL (CAR X)) (CDR V)) 00046700
  4406. (T (CONS (CONS X (CDR U)) (CDR V))))) 00046710
  4407. (ADDSQ (CAR U) (CAAR V)))) 00046720
  4408. ((ORDP (CDR U) (CDAR V)) (CONS U V)) 00046730
  4409. (T (CONS (CAR V) (ADDM1 U (CDR V))))))) 00046740
  4410. 00046750
  4411. )) 00046760
  4412. 00046770
  4413. DEFINE (( 00046780
  4414. 00046790
  4415. (MATP (LAMBDA (U) 00046800
  4416. (COND ((ATOM U) (FLAGP** U (QUOTE MATRIX))) 00046810
  4417. (T (EQCAR U (QUOTE MAT)))))) 00046820
  4418. 00046830
  4419. (MATEXPR (LAMBDA (U) 00046840
  4420. (AND MATP* (MATEXPR1 U)))) 00046850
  4421. 00046860
  4422. (MATEXPR1 (LAMBDA (U) 00046870
  4423. (COND ((NULL U) NIL) 00046880
  4424. ((ATOM U) (MATP U)) 00046890
  4425. ((MEMBER (CAR U) (QUOTE (*SQ DET TRACE))) NIL) 00046900
  4426. ((OR (FLAGP** (CAR U) (QUOTE MATFN)) (MATEXPR1 (CADR U))) T) 00046910
  4427. (T 00046920
  4428. (*EVAL 00046930
  4429. (CONS (QUOTE OR) (MAPCAR (CDR U) (FUNCTION MATEXPR1)))))))) 00046940
  4430. 00046950
  4431. )) 00046960
  4432. 00046970
  4433. FLAG ((MAT) MATFN) 00046971
  4434. 00046972
  4435. DEFINE (( 00046980
  4436. 00046990
  4437. (MATSM (LAMBDA (U) 00047000
  4438. ((LAMBDA(X) 00047010
  4439. (COND 00047020
  4440. ((AND (NULL (CDR X)) (NULL (CDAR X))) (SIMP (CAAR X))) 00047030
  4441. (T (CONS (QUOTE MAT) X)))) 00047040
  4442. (MAPC2 (MATSIMP (MSIMP U T)) 00047050
  4443. (FUNCTION (LAMBDA (J) (MK*SQ (SUBS2 J)))))))) 00047060
  4444. 00047070
  4445. )) 00047080
  4446. 00047090
  4447. DEFINE (( 00047100
  4448. 00047110
  4449. (MATSIMP (LAMBDA (U) 00047120
  4450. (PROG (X) 00047130
  4451. (SETQ X (SMMULT (CAAR U) (MMULT (CDAR U)))) 00047140
  4452. A (SETQ U (CDR U)) 00047150
  4453. (COND ((NULL U) (RETURN X))) 00047160
  4454. (SETQ X (MADD X (SMMULT (CAAR U) (MMULT (CDAR U))))) 00047170
  4455. (GO A)))) 00047180
  4456. 00047190
  4457. (MMULT (LAMBDA (U) 00047200
  4458. (PROG (Y Z) 00047210
  4459. (SETQ Y (GETM* (CAR U))) 00047220
  4460. A (SETQ U (CDR U)) 00047230
  4461. (COND ((NULL U) (RETURN Y))) 00047240
  4462. (SETQ Z (GETM* (CAR U))) 00047250
  4463. (COND 00047260
  4464. ((NOT (EQUAL (LENGTH (CAR Y)) (LENGTH Z))) 00047270
  4465. (REDERR (QUOTE (MATRIX MISMATCH))))) 00047280
  4466. (SETQ Y (MULTM Y Z)) 00047290
  4467. (GO A)))) 00047300
  4468. 00047310
  4469. (SMMULT (LAMBDA (*S* V) 00047320
  4470. (COND ((EQUAL *S* (CONS 1 1)) V) 00047330
  4471. (T (MAPC2 V (FUNCTION (LAMBDA (J) (MULTSQ *S* J)))))))) 00047340
  4472. 00047350
  4473. (GETM* (LAMBDA (U) 00047360
  4474. (COND ((EQCAR U (QUOTE MAT)) (SIMPDET* (CDR U))) 00047370
  4475. (T 00047380
  4476. ((LAMBDA(X) 00047390
  4477. (COND 00047400
  4478. ((OR (NULL X) (EQ X (QUOTE MATRIX))) 00047410
  4479. (REDERR 00047420
  4480. (CONS (QUOTE MATRIX) (CONS U (QUOTE (NOT SET)))))) 00047430
  4481. (T (MLIST U (CAR X) (CADR X))))) 00047440
  4482. (COND ((ATOM U) (GET U (QUOTE MATRIX))) (T NIL))))))) 00047450
  4483. 00047460
  4484. (MLIST (LAMBDA (U M N) 00047470
  4485. (PROG (M1 N1 X Y Z) 00047480
  4486. (SETQ M1 M) 00047490
  4487. A (SETQ Y NIL) 00047500
  4488. (SETQ N1 N) 00047510
  4489. B (COND 00047520
  4490. ((NULL (SETQ X (GETEL (LIST U M1 N1)))) 00047530
  4491. (REDERR (CONS U (CONS (LIST M1 N1) (QUOTE (NOT SET))))))) 00047540
  4492. (SETQ Y (CONS (SIMP X) Y)) 00047550
  4493. (SETQ N1 (SUB1 N1)) 00047560
  4494. (COND ((NOT (ZEROP N1)) (GO B))) 00047570
  4495. (SETQ Z (CONS Y Z)) 00047580
  4496. (SETQ M1 (SUB1 M1)) 00047590
  4497. (COND ((ZEROP M1) (RETURN Z))) 00047600
  4498. (GO A)))) 00047610
  4499. 00047620
  4500. )) 00047630
  4501. 00047640
  4502. DEFINE (( 00047650
  4503. 00047660
  4504. (MADD (LAMBDA (U V) 00047670
  4505. (MAPCAR (PAIR U V) 00047680
  4506. (FUNCTION (LAMBDA (J) (MADD1 (CAR J) (CDR J))))))) 00047690
  4507. 00047700
  4508. (MADD1 (LAMBDA (U V) 00047710
  4509. (COND ((NULL U) NIL) 00047720
  4510. (T (CONS (ADDSQ (CAR U) (CAR V)) (MADD1 (CDR U) (CDR V))))))) 00047730
  4511. 00047740
  4512. )) 00047750
  4513. 00047760
  4514. DEFLIST (((MATRIX RLIS)) STAT) 00047770
  4515. 00047780
  4516. DEFINE (( 00047790
  4517. 00047800
  4518. (MATRIX (LAMBDA (U) 00047810
  4519. (PROG NIL 00047820
  4520. (SETQ MATP* T) 00047830
  4521. A (COND ((NULL U) (RETURN NIL)) 00047840
  4522. ((ATOM (CAR U)) 00047850
  4523. (PUT (CAR U) 00047860
  4524. (QUOTE MATRIX) 00047870
  4525. ((LAMBDA (X) (COND (X X) (T (QUOTE MATRIX)))) 00047880
  4526. (GET* (CAR U) (QUOTE **ARRAY))))) 00047890
  4527. (T 00047900
  4528. (PROG2 (*APPLY (QUOTE AARRAY) (LIST (LIST (CAR U)))) 00047910
  4529. (PUT (CAAR U) (QUOTE MATRIX) 00047915
  4530. (MAPCAR (CDAR U) (FUNCTION REVAL)))))) 00047920
  4531. (SETQ U (CDR U)) 00047930
  4532. (GO A)))) 00047940
  4533. 00047950
  4534. )) 00047960
  4535. 00047970
  4536. DEFINE (( 00047980
  4537. 00047990
  4538. (MULTM (LAMBDA (U *S*) 00048000
  4539. (MAPCAR U 00048010
  4540. (FUNCTION 00048020
  4541. (LAMBDA (J) (MULTM1 J *S* (LENGTH (CAR *S*)) NIL)))))) 00048030
  4542. 00048040
  4543. (MULTM1 (LAMBDA (U V N W) 00048050
  4544. (COND ((ZEROP N) W) 00048060
  4545. (T (MULTM1 U V (SUB1 N) (CONS (MELEM U V N) W)))))) 00048070
  4546. 00048080
  4547. (MELEM (LAMBDA (U V N) 00048090
  4548. (COND ((NULL U) (CONS NIL 1)) 00048100
  4549. (T 00048110
  4550. ((LAMBDA (X) (COND ((NULL (CAR X)) (CONS NIL 1)) (T X))) 00048120
  4551. (ADDSQ (MULTSQ (CAR U) (NTH (CAR V) N)) 00048130
  4552. (MELEM (CDR U) (CDR V) N))))))) 00048140
  4553. 00048150
  4554. )) 00048160
  4555. 00048170
  4556. DEFINE (( 00048180
  4557. 00048190
  4558. (MATPRI (LAMBDA (U X) 00048200
  4559. (PROG (V M N) 00048210
  4560. (SETQ M 1) 00048220
  4561. (COND ((NULL X) (SETQ X (QUOTE MAT)))) 00048230
  4562. A (COND ((NULL U) (RETURN NIL))) 00048240
  4563. (SETQ N 1) 00048250
  4564. (SETQ V (CAR U)) 00048260
  4565. B (COND ((NULL V) (GO C)) 00048270
  4566. ((AND (EQUAL (CAR V) 0) *NERO) (GO B1))) 00048280
  4567. (MAPRIN (LIST X M N)) 00048290
  4568. (OPRIN (QUOTE EQUAL)) 00048350
  4569. (SETQ ORIG* POSN*) 00048360
  4570. (MATHPRINT (CAR V)) 00048370
  4571. (SETQ ORIG* 0) 00048380
  4572. (TERPRI*) 00048390
  4573. B1 (SETQ V (CDR V)) 00048400
  4574. (SETQ N (ADD1 N)) 00048410
  4575. (GO B) 00048420
  4576. C (SETQ U (CDR U)) 00048430
  4577. (SETQ M (ADD1 M)) 00048440
  4578. (GO A)))) 00048450
  4579. 00048460
  4580. )) 00048470
  4581. 00048480
  4582. DEFINE (( 00048490
  4583. 00048500
  4584. (SETM (LAMBDA (U V) 00048510
  4585. (PROG (N M X Y) 00048520
  4586. (SETQ V (CDR V)) 00048530
  4587. (SETQ Y (LIST (LENGTH V) (LENGTH (CAR V)))) 00048540
  4588. (COND 00048550
  4589. ((NOT (EQ (SETQ X (GET U (QUOTE MATRIX))) (QUOTE MATRIX))) 00048560
  4590. (GO A))) 00048570
  4591. (*APPLY (QUOTE AARRAY) (LIST (LIST (CONS U Y)))) 00048580
  4592. (PUT U (QUOTE MATRIX) Y) 00048590
  4593. (GO A1) 00048600
  4594. A (COND 00048610
  4595. ((NOT (EQUAL X Y)) (REDERR (QUOTE (MATRIX MISMATCH))))) 00048620
  4596. A1 (SETQ M 1) 00048630
  4597. B (SETQ Y (CAR V)) 00048640
  4598. (SETQ N 1) 00048650
  4599. C (COND ((NULL Y) (GO D))) 00048660
  4600. (SETEL (LIST U M N) (CAR Y)) 00048670
  4601. (SETQ N (ADD1 N)) 00048680
  4602. (SETQ Y (CDR Y)) 00048690
  4603. (GO C) 00048700
  4604. D (SETQ V (CDR V)) 00048710
  4605. (COND ((NULL V) (RETURN NIL))) 00048720
  4606. (SETQ M (ADD1 M)) 00048730
  4607. (GO B)))) 00048740
  4608. 00048750
  4609. )) 00048760
  4610. 00048770
  4611. DEFINE (( 00048780
  4612. 00048790
  4613. (MSIMPRS (LAMBDA (U V) 00048800
  4614. ((LAMBDA(X) 00048810
  4615. (LIST 00048820
  4616. (LIST 00048830
  4617. (CONS (QUOTE MAT) 00048840
  4618. (MAPC2 00048850
  4619. (COND 00048860
  4620. ((AND (NULL (CDR X)) (NULL V)) 00048870
  4621. (SMMULT (REVPR (CAAR X)) 00048880
  4622. (*MATINV (MMULT (CDAR X)) NIL))) 00048890
  4623. (T (*MATINV (MATSIMP X) V))) 00048900
  4624. (FUNCTION MK*SQ)))))) 00048910
  4625. (MSIMP U T)))) 00048920
  4626. 00048930
  4627. )) 00048940
  4628. 00048950
  4629. DEFINE (( 00048960
  4630. 00048970
  4631. (AUGMENT (LAMBDA (U V) 00048980
  4632. (COND ((NULL U) NIL) 00048990
  4633. (T 00049000
  4634. (CONS (APPEND (CAR U) (CAR V)) (AUGMENT (CDR U) (CDR V)))))) 00049010
  4635. ) 00049020
  4636. 00049030
  4637. )) 00049040
  4638. 00049050
  4639. DEFINE (( 00049060
  4640. 00049070
  4641. (SETMATELEM (LAMBDA (U I J ELEM) 00049080
  4642. (PROG (A) 00049090
  4643. (SETQ A (NTH U I)) 00049100
  4644. LOOP (COND ((EQUAL J 1) (RETURN (RPLACA A ELEM)))) 00049110
  4645. (SETQ J (SUB1 J)) 00049120
  4646. (SETQ A (CDR A)) 00049130
  4647. (GO LOOP)))) 00049140
  4648. 00049150
  4649. )) 00049160
  4650. 00049170
  4651. DEFINE (( 00049180
  4652. 00049190
  4653. (LIPSON (LAMBDA (U M N V) 00049200
  4654. (PROG (AA AA1 K K1 K2 I J TEMP BB C0 CI1 CI2 AAK) 00049210
  4655. (SETQ AA (CONS 1 1)) 00049220
  4656. (SETQ K 2) 00049230
  4657. BEG (SETQ K1 (SUB1 K)) 00049240
  4658. (SETQ K2 (SUB1 K1)) 00049250
  4659. (COND ((GREATERP K M) (GO FB)) ((EQUAL K 2) (GO PIVOT))) 00049260
  4660. (SETQ AA (REVPR (NTH (NTH U K2) K2))) 00049270
  4661. PIVOT 00049280
  4662. (SETQ AA1 (NTH (NTH U K1) K1)) 00049290
  4663. (COND ((NULL (EQUAL AA1 (CONS NIL 1))) (GO L2))) 00049300
  4664. (SETQ I K) 00049310
  4665. L (COND ((GREATERP I M) (GO SING)) 00049320
  4666. ((EQUAL (NTH (NTH U I) K1) (CONS NIL 1)) (GO L1))) 00049330
  4667. (SETQ J K1) 00049340
  4668. L0 (COND ((GREATERP J N) (GO PL2))) 00049350
  4669. (SETQ TEMP (NTH (NTH U I) J)) 00049360
  4670. (SETMATELEM U I J (NEGSQ (NTH (NTH U K1) J))) 00049370
  4671. (SETMATELEM U K1 J TEMP) 00049380
  4672. (SETQ J (ADD1 J)) 00049390
  4673. (GO L0) 00049400
  4674. L1 (SETQ I (ADD1 I)) 00049410
  4675. (GO L) 00049420
  4676. PL2 (SETQ AA1 (NTH (NTH U K1) K1)) 00049430
  4677. L2 (SETQ I K) 00049440
  4678. L2A (COND ((GREATERP I M) (GO SING))) 00049450
  4679. (SETQ BB 00049460
  4680. (ADDSQ (MULTSQ AA1 (NTH (NTH U I) K)) 00049470
  4681. (NEGSQ 00049480
  4682. (MULTSQ (NTH (NTH U K1) K) 00049490
  4683. (NTH (NTH U I) K1))))) 00049500
  4684. (COND ((EQUAL BB (CONS NIL 1)) (GO L2B))) 00049510
  4685. (GO L3) 00049520
  4686. L2B (SETQ I (ADD1 I)) 00049530
  4687. (GO L2A) 00049540
  4688. L3 (SETQ C0 (MULTSQ BB AA)) 00049550
  4689. (COND ((EQUAL K M) (GO EV)) ((EQUAL I K) (GO COMP))) 00049560
  4690. (SETQ J K1) 00049570
  4691. L3A (COND ((GREATERP J N) (GO COMP))) 00049580
  4692. (SETQ TEMP (NTH (NTH U I) J)) 00049590
  4693. (SETMATELEM U I J (NEGSQ (NTH (NTH U K) J))) 00049600
  4694. (SETMATELEM U K J TEMP) 00049610
  4695. (SETQ J (ADD1 J)) 00049620
  4696. (GO L3A) 00049630
  4697. COMP (SETQ I (ADD1 K)) 00049640
  4698. (SETQ AAK (NTH (NTH U K) K)) 00049650
  4699. COMP1 00049660
  4700. (COND ((GREATERP I M) (GO EV))) 00049670
  4701. (SETQ CI1 00049680
  4702. (MULTSQ (ADDSQ (MULTSQ (NTH (NTH U K1) K) 00049690
  4703. (NTH (NTH U I) K1)) 00049700
  4704. (NEGSQ (MULTSQ AA1 (NTH (NTH U I) K)))) 00049710
  4705. AA)) 00049720
  4706. (SETQ CI2 00049730
  4707. (MULTSQ (ADDSQ (MULTSQ (NTH (NTH U K) K1) 00049740
  4708. (NTH (NTH U I) K)) 00049750
  4709. (NEGSQ 00049760
  4710. (MULTSQ AAK (NTH (NTH U I) K1)))) 00049770
  4711. AA)) 00049780
  4712. (SETQ J (ADD1 K)) 00049790
  4713. COMP2 00049800
  4714. (COND ((GREATERP J N) (GO COMP3))) 00049810
  4715. (SETMATELEM U 00049820
  4716. I 00049830
  4717. J 00049840
  4718. (MULTSQ 00049850
  4719. (ADDSQ (MULTSQ (NTH (NTH U I) J) C0) 00049860
  4720. (ADDSQ 00049870
  4721. (MULTSQ (NTH (NTH U K) J) CI1) 00049880
  4722. (MULTSQ (NTH (NTH U K1) J) CI2))) 00049890
  4723. AA)) 00049900
  4724. (SETQ J (ADD1 J)) 00049910
  4725. (GO COMP2) 00049920
  4726. COMP3 00049930
  4727. (SETQ I (ADD1 I)) 00049940
  4728. (GO COMP1) 00049950
  4729. EV (SETMATELEM U K K C0) 00049960
  4730. (SETQ J (ADD1 K)) 00049970
  4731. EV1 (COND ((GREATERP J N) (GO BOT))) 00049980
  4732. (SETMATELEM U 00049990
  4733. K 00050000
  4734. J 00050010
  4735. (MULTSQ (ADDSQ (MULTSQ AA1 (NTH (NTH U K) J)) 00050020
  4736. (NEGSQ 00050030
  4737. (MULTSQ 00050040
  4738. (NTH (NTH U K) K1) 00050050
  4739. (NTH (NTH U K1) J)))) 00050060
  4740. AA)) 00050070
  4741. (SETQ J (ADD1 J)) 00050080
  4742. (GO EV1) 00050090
  4743. BOT (SETQ K (ADD1 (ADD1 K))) 00050100
  4744. (GO BEG) 00050110
  4745. FB (COND ((EQUAL (NTH (NTH U M) M) (CONS NIL 1)) (GO SING))) 00050120
  4746. (RETURN U) 00050130
  4747. SING (COND 00050140
  4748. ((NULL V) 00050150
  4749. (RETURN (PROG2 (SETMATELEM U N N (CONS NIL 1)) U)))) 00050160
  4750. (REDERR (QUOTE (SINGULAR MATRIX)))))) 00050170
  4751. 00050180
  4752. )) 00050190
  4753. 00050200
  4754. DEFINE (( 00050210
  4755. 00050220
  4756. (BACKSUB (LAMBDA (U M N) 00050230
  4757. (PROG (DET IJ I J JJ SUM) 00050240
  4758. (SETQ DET (NTH (NTH U M) M)) 00050250
  4759. (SETQ J (ADD1 M)) 00050260
  4760. ROWM (COND ((GREATERP J N) (GO ROWS))) 00050270
  4761. (SETMATELEM U 00050280
  4762. M 00050290
  4763. J 00050300
  4764. (CANCEL (MULTSQ (NTH (NTH U M) J) (REVPR DET)))) 00050310
  4765. (SETQ J (ADD1 J)) 00050320
  4766. (GO ROWM) 00050330
  4767. ROWS (SETQ IJ 1) 00050340
  4768. ROWS1 00050350
  4769. (COND ((GREATERP IJ (SUB1 M)) (GO DONE))) 00050360
  4770. (SETQ I (DIFFERENCE M IJ)) 00050370
  4771. (SETQ JJ (ADD1 M)) 00050380
  4772. ROWS2 00050390
  4773. (COND ((GREATERP JJ N) (GO ROWS5))) 00050400
  4774. (SETQ J (ADD1 I)) 00050410
  4775. (SETQ DET (NTH (NTH U I) I)) 00050420
  4776. (SETQ SUM (CONS NIL 1)) 00050430
  4777. ROWS3 00050440
  4778. (COND ((GREATERP J M) (GO ROWS4))) 00050450
  4779. (SETQ SUM 00050460
  4780. (ADDSQ SUM 00050470
  4781. (CANCEL (MULTSQ (NTH (NTH U I) J) (NTH (NTH U J) JJ))))) 00050480
  4782. (SETQ J (ADD1 J)) 00050490
  4783. (GO ROWS3) 00050500
  4784. ROWS4 00050510
  4785. (SETMATELEM U 00050520
  4786. I 00050530
  4787. JJ 00050540
  4788. (CANCEL 00050550
  4789. (MULTSQ (ADDSQ (NTH (NTH U I) JJ) (NEGSQ SUM)) 00050560
  4790. (REVPR DET)))) 00050570
  4791. (SETQ JJ (ADD1 JJ)) 00050580
  4792. (GO ROWS2) 00050590
  4793. ROWS5 00050600
  4794. (SETQ IJ (ADD1 IJ)) 00050610
  4795. (GO ROWS1) 00050620
  4796. DONE (RETURN U)))) 00050630
  4797. 00050640
  4798. )) 00050650
  4799. 00050660
  4800. DEFINE (( 00050670
  4801. 00050680
  4802. (RHSIDE (LAMBDA (U M) 00050690
  4803. (COND ((NULL U) NIL) 00050700
  4804. (T (CONS (RHSIDE1 (CAR U) M) (RHSIDE (CDR U) M)))))) 00050710
  4805. 00050720
  4806. )) 00050730
  4807. 00050740
  4808. DEFINE (( 00050750
  4809. 00050760
  4810. (RHSIDE1 (LAMBDA (U M) 00050770
  4811. (PROG NIL 00050780
  4812. A (COND ((EQUAL M 0) (RETURN U))) 00050790
  4813. (SETQ U (CDR U)) 00050800
  4814. (SETQ M (SUB1 M)) 00050810
  4815. (GO A)))) 00050820
  4816. 00050830
  4817. )) 00050840
  4818. 00050850
  4819. DEFINE (( 00050860
  4820. 00050870
  4821. (GENERATEIDENT (LAMBDA (N) 00050880
  4822. (PROG (I K U V) 00050890
  4823. (SETQ I 1) 00050900
  4824. (SETQ V NIL) 00050910
  4825. E (COND ((GREATERP I N) (GO A))) 00050920
  4826. (SETQ U NIL) 00050930
  4827. (SETQ K 1) 00050940
  4828. C (COND ((GREATERP K N) (GO D)) ((EQUAL K I) (GO B))) 00050950
  4829. (SETQ U (CONS (CONS NIL 1) U)) 00050960
  4830. (SETQ K (ADD1 K)) 00050970
  4831. (GO C) 00050980
  4832. B (SETQ U (CONS (CONS 1 1) U)) 00050990
  4833. (SETQ K (ADD1 K)) 00051000
  4834. (GO C) 00051010
  4835. D (SETQ I (ADD1 I)) 00051020
  4836. (SETQ V (CONS U V)) 00051030
  4837. (GO E) 00051040
  4838. A (RETURN V)))) 00051050
  4839. 00051060
  4840. (*MATINV (LAMBDA (U V) 00051070
  4841. (PROG (A B M N X) 00051080
  4842. (SETQ A U) 00051090
  4843. (SETQ X SUBFG*) 00051092
  4844. (SETQ SUBFG* NIL) 00051094
  4845. (SETQ M (LENGTH A)) 00051100
  4846. (SETQ N (LENGTH (CAR A))) 00051110
  4847. (COND 00051120
  4848. ((NOT (EQUAL M N)) (REDERR (QUOTE (NON SQUARE MATRIX))))) 00051130
  4849. (SETQ B (COND (V V) (T (GENERATEIDENT M)))) 00051140
  4850. (COND 00051150
  4851. ((AND V (NOT (EQUAL M (LENGTH B)))) 00051160
  4852. (REDERR (QUOTE (EQUATION MISMATCH))))) 00051170
  4853. (SETQ A (AUGMENT A B)) 00051180
  4854. (SETQ N (LENGTH (CAR A))) 00051190
  4855. (SETQ A (LIPSON A M N T)) 00051200
  4856. (SETQ A (BACKSUB A M N)) 00051210
  4857. (SETQ SUBFG* X) 00051212
  4858. (RETURN (MAPC2 (RHSIDE A M) (FUNCTION 00051220
  4859. (LAMBDA (J) (SIMP (PREPSQ J))))))))) 00051221
  4860. 00051230
  4861. )) 00051240
  4862. 00051250
  4863. DEFINE (( 00051260
  4864. 00051270
  4865. (SIMPDET (LAMBDA (U) 00051280
  4866. (SIMPDET1 U T))) 00051290
  4867. 00051300
  4868. (SIMPTRACE (LAMBDA (U) 00051310
  4869. (SIMPDET1 U NIL))) 00051320
  4870. 00051330
  4871. (SIMPDET1 (LAMBDA (U V) 00051340
  4872. (PROG (N) 00051350
  4873. (COND 00051360
  4874. ((AND (NOT (EQCAR (CAR U) (QUOTE *COMMA*))) 00051370
  4875. (NOT (MATEXPR (CAR U)))) 00051380
  4876. (REDERR (QUOTE (MATRIX EXPRESSION REQUIRED))))) 00051390
  4877. (SETQ U 00051400
  4878. (COND 00051410
  4879. ((EQCAR (CAR U) (QUOTE *COMMA*)) 00051420
  4880. (MAPCAR U 00051430
  4881. (FUNCTION 00051440
  4882. (LAMBDA(J) 00051450
  4883. (MAPCAR 00051460
  4884. (COND 00051470
  4885. ((EQCAR J (QUOTE *COMMA*)) (CDR J)) 00051480
  4886. (T J)) 00051490
  4887. (FUNCTION SIMP)))))) 00051500
  4888. (T (MATSIMP (MSIMP (CARX U) T))))) 00051510
  4889. (COND 00051520
  4890. ((NOT (EQUAL (LENGTH U) (LENGTH (CAR U)))) 00051530
  4891. (REDERR (QUOTE (NON SQUARE MATRIX))))) 00051540
  4892. (COND (V (RETURN (DETQ U)))) 00051550
  4893. (SETQ N 1) 00051560
  4894. (SETQ V (CONS NIL 1)) 00051570
  4895. A (COND ((NULL U) (RETURN V))) 00051580
  4896. (SETQ V (ADDSQ (NTH (CAR U) N) V)) 00051590
  4897. (SETQ U (CDR U)) 00051600
  4898. (SETQ N (ADD1 N)) 00051610
  4899. (GO A)))) 00051620
  4900. 00051630
  4901. (SIMPDET* (LAMBDA (U) 00051640
  4902. (MAPC2 U (FUNCTION SIMP)))) 00051650
  4903. 00051660
  4904. (SIMPMAT (LAMBDA (U) 00051670
  4905. (REDERR (QUOTE (MATRIX MISMATCH))))) 00051680
  4906. 00051690
  4907. )) 00051700
  4908. 00051710
  4909. DEFLIST (((DET SIMPDET) (TRACE SIMPTRACE) (MAT SIMPMAT)) SIMPFN) 00051720
  4910. 00051730
  4911. DEFINE (( 00051740
  4912. 00051750
  4913. (DETQ (LAMBDA (U) 00051760
  4914. (PROG (V X) 00051770
  4915. (SETQ X SUBFG*) 00051772
  4916. (SETQ SUBFG* NIL) 00051774
  4917. (SETQ V (LENGTH U)) 00051776
  4918. (SETQ V (NTH (NTH (LIPSON U V V NIL) V) V)) 00051777
  4919. (SETQ SUBFG* X) 00051778
  4920. (RETURN (SIMP (PREPSQ V)))))) 00051779
  4921. 00051780
  4922. )) 00051790
  4923. 00051800
  4924. DEFLIST (((CONS SIMPDOT)) SIMPFN) 00051810
  4925. 00051820
  4926. FLAG ((CONS) VOP) 00051830
  4927. 00051840
  4928. DEFINE (( 00051870
  4929. 00051880
  4930. (VOP (LAMBDA (U) 00051890
  4931. (FLAG U (QUOTE VOP)))) 00051900
  4932. 00051910
  4933. (VECTORP (LAMBDA (U) 00051920
  4934. (AND (ATOM U) 00051930
  4935. (NOT (NUMBERP U)) 00051940
  4936. (OR (FLAGP U (QUOTE MASS)) 00051950
  4937. (FLAGP U (QUOTE VECTOR)) 00051960
  4938. (MEMBER U INDICES*))))) 00051970
  4939. 00051980
  4940. (ISIMPQ (LAMBDA (U) 00051990
  4941. (CONS (ISIMP (CAR U)) (CDR U)))) 00052000
  4942. 00052010
  4943. (ISIMP (LAMBDA (U) 00052020
  4944. (COND 00052030
  4945. ((OR (NULL SUBFG*) 00052035
  4946. (AND (NULL INDICES*) 00052040
  4947. (NULL GAMIDEN*) 00052050
  4948. (NULL (GET (QUOTE EPS) (QUOTE KLIST))))) 00052060
  4949. U) 00052070
  4950. (T (ISIMP1 U INDICES* NIL NIL NIL))))) 00052080
  4951. 00052090
  4952. (ISIMP1 (LAMBDA (U I V W X) 00052100
  4953. (COND 00052110
  4954. ((ATOM U) 00052120
  4955. (COND 00052130
  4956. ((OR V X) (REDERR (APPEND (QUOTE (UNMATCHED INDEX ERROR)) I))) 00052140
  4957. (W (MULTF (EMULT W) (ISIMP1 U I V NIL X))) 00052150
  4958. (T U))) 00052160
  4959. (T 00052170
  4960. (ADDF (ISIMP2 (CAR U) I V W X) 00052180
  4961. (COND ((NULL (CDR U)) NIL) 00052190
  4962. (T (ISIMP1 (CDR U) I V W X)))))))) 00052200
  4963. 00052210
  4964. (ISIMP2 (LAMBDA (U I V W X) 00052220
  4965. (PROG (Z) 00052230
  4966. (COND ((ATOM (SETQ Z (CAAR U))) (GO A)) 00052240
  4967. ((AND (EQ (CAR Z) (QUOTE CONS)) (XN (CDR Z) I)) 00052250
  4968. (RETURN (DOTSUM U I V W X))) 00052260
  4969. ((EQ (CAR Z) (QUOTE G)) (RETURN (SPUR0 U I V W X))) 00052270
  4970. ((EQ (CAR Z) (QUOTE EPS)) (RETURN (ESUM U I V W X)))) 00052280
  4971. A (RETURN (MULTF2 (CAR U) (ISIMP1 (CDR U) I V W X)))))) 00052290
  4972. 00052300
  4973. (DOTSUM (LAMBDA (U I V W X) 00052310
  4974. (PROG (I1 N U1 U2 V1 Y Z) 00052320
  4975. (SETQ N (CDAR U)) 00052330
  4976. (COND 00052340
  4977. ((NOT (MEMBER (CAR (SETQ U1 (CDAAR U))) I)) 00052350
  4978. (SETQ U1 (REVERSE U1)))) 00052360
  4979. (SETQ U2 (CADR U1)) 00052370
  4980. (SETQ U1 (CAR U1)) 00052380
  4981. (SETQ V1 (CDR U)) 00052390
  4982. (COND ((EQUAL N 2) (GO H)) ((NOT (ONEP N)) (REDERR U))) 00052400
  4983. A (COND 00052410
  4984. ((NOT (MEMBER U1 I)) 00052420
  4985. (RETURN (MULTF (MKDOT U1 U2) (ISIMP1 V1 I1 V W X))))) 00052430
  4986. A1 (SETQ I1 (DELETE U1 I)) 00052440
  4987. (COND ((EQ U1 U2) (RETURN (MULTN 4 (ISIMP1 V1 I1 V W X)))) 00052450
  4988. ((NOT (SETQ Z (ASSOC U1 V))) (GO C)) 00052460
  4989. ((MEMBER U2 I) (GO D))) 00052470
  4990. (SETQ U1 (CDR Z)) 00052480
  4991. (GO E) 00052490
  4992. C (COND 00052500
  4993. ((SETQ Z (MEMLIS U1 X)) 00052510
  4994. (RETURN 00052520
  4995. (SPUR0 (CONS (CONS (CONS (QUOTE G) (SUBST U2 U1 Z)) 1) 00052530
  4996. V1) 00052540
  4997. I1 00052550
  4998. V 00052560
  4999. W 00052570
  5000. (DELETE Z X)))) 00052580
  5001. ((SETQ Z (MEMLIS U1 W)) 00052590
  5002. (RETURN 00052600
  5003. (ESUM (CONS (CONS (CONS (QUOTE EPS) (SUBST U2 U1 Z)) 1) 00052610
  5004. V1) 00052620
  5005. I1 00052630
  5006. V 00052640
  5007. (DELETE Z W) 00052650
  5008. X))) 00052660
  5009. ((AND (MEMBER U2 I) (NULL Y)) (GO G))) 00052670
  5010. (RETURN (ISIMP1 V1 I (CONS (CONS U1 U2) V) W X)) 00052680
  5011. D (SETQ U1 U2) 00052690
  5012. (SETQ U2 (CDR Z)) 00052700
  5013. E (SETQ I I1) 00052710
  5014. (SETQ V (DELETE Z V)) 00052720
  5015. (GO A) 00052730
  5016. G (SETQ Y T) 00052740
  5017. (SETQ Z U1) 00052750
  5018. (SETQ U1 U2) 00052760
  5019. (SETQ U2 Z) 00052770
  5020. (GO A1) 00052780
  5021. H (COND ((EQ U1 U2) (REDERR U))) 00052790
  5022. (SETQ I (DELETE U1 I)) 00052800
  5023. (SETQ U1 U2) 00052810
  5024. (GO A)))) 00052820
  5025. 00052830
  5026. )) 00052840
  5027. 00052850
  5028. DEFINE (( 00052860
  5029. 00052870
  5030. (VMULT (LAMBDA (U) 00052880
  5031. (PROG (Z) 00052890
  5032. (SETQ U 00052900
  5033. (REVERSE 00052910
  5034. (MAPCAR U (FUNCTION (LAMBDA (J) (MSIMP J NIL)))))) 00052920
  5035. A (COND ((NULL U) (RETURN Z)) 00052930
  5036. ((NULL Z) (SETQ Z (CAR U))) 00052940
  5037. (T (SETQ Z (VMULT1 (CAR U) Z)))) 00052950
  5038. (SETQ U (CDR U)) 00052960
  5039. (GO A)))) 00052970
  5040. 00052980
  5041. (VMULT1 (LAMBDA (U *S1*) 00052990
  5042. (COND ((NULL *S1*) NIL) 00053000
  5043. (T 00053010
  5044. (MAPCON U 00053020
  5045. (FUNCTION 00053030
  5046. (LAMBDA(*S*) 00053040
  5047. (MAPCAR *S1* 00053050
  5048. (FUNCTION 00053060
  5049. (LAMBDA(J) 00053070
  5050. (CONS (MULTSQ (CAAR *S*) (CAR J)) 00053080
  5051. (APPEND (CDAR *S*) 00053090
  5052. (CDR J))))))))))))) 00053100
  5053. 00053110
  5054. )) 00053120
  5055. 00053130
  5056. DEFINE (( 00053140
  5057. 00053150
  5058. (SIMPDOT (LAMBDA (U) 00053160
  5059. (COND ((CDDR U) (ERRACH (LIST (QUOTE SIMPDOT) U))) 00053170
  5060. (T 00053180
  5061. (MKVARG U 00053190
  5062. (FUNCTION 00053200
  5063. (LAMBDA(J) 00053210
  5064. (MKSQ (CONS (QUOTE CONS) (ORD2 (CAR J) (CADR J))) 00053220
  5065. 1)))))))) 00053230
  5066. 00053240
  5067. (MKVARG (LAMBDA (U *PI*) 00053250
  5068. (PROG (Z) 00053260
  5069. (SETQ U (VMULT U)) 00053270
  5070. (SETQ Z (CONS NIL 1)) 00053280
  5071. A (COND ((NULL U) (RETURN Z))) 00053290
  5072. (SETQ Z (ADDSQ (MULTSQ (*PI* (CDAR U)) (CAAR U)) Z)) 00053300
  5073. (SETQ U (CDR U)) 00053310
  5074. (GO A)))) 00053320
  5075. 00053330
  5076. (MKDOT (LAMBDA (U V) 00053340
  5077. (MKSF (CONS (QUOTE CONS) (ORD2 U V)) 1))) 00053350
  5078. 00053360
  5079. (VLET (LAMBDA (U V B) 00053370
  5080. (PROG2 00053375
  5081. (AND B (FLAGP U (QUOTE USED*)) (RMSUBS2)) 00053380
  5082. (SETQ VREP* (XADD (CONS U V) VREP* U B))))) 00053385
  5083. 00053390
  5084. )) 00053400
  5085. 00053410
  5086. DEFINE (( 00053420
  5087. 00053430
  5088. (INDEX (LAMBDA (U) 00053440
  5089. (SETQ INDICES* (UNION INDICES* U)))) 00053450
  5090. 00053460
  5091. (REMIND (LAMBDA (U) 00053470
  5092. (PROG2 (VECTOR U) (SETQ INDICES* (SETDIFF INDICES* U))))) 00053480
  5093. 00053490
  5094. (MASS (LAMBDA (U) 00053500
  5095. (COND ((NULL U) NIL) 00053510
  5096. (T 00053520
  5097. (PROG2 (PUT (CADAR U) (QUOTE MASS) (CADDAR U)) 00053530
  5098. (MASS (CDR U))))))) 00053540
  5099. 00053550
  5100. (MSHELL (LAMBDA (U) 00053560
  5101. (PROG (X Z) 00053570
  5102. A (COND ((NULL U) (RETURN (LET Z)))) 00053580
  5103. (SETQ X (GETMAS (CAR U))) 00053590
  5104. (SETQ Z 00053600
  5105. (CONS (LIST (QUOTE EQUAL) 00053610
  5106. (LIST (QUOTE CONS) (CAR U) (CAR U)) 00053620
  5107. (LIST (QUOTE TIMES) X X)) 00053630
  5108. Z)) 00053640
  5109. (SETQ U (CDR U)) 00053650
  5110. (GO A)))) 00053660
  5111. 00053670
  5112. (GETMAS (LAMBDA (U) 00053680
  5113. ((LAMBDA(X) 00053690
  5114. (COND (X X) (T (REDERR (CONS U (QUOTE (HAS NO MASS))))))) 00053700
  5115. (GET* U (QUOTE MASS))))) 00053710
  5116. 00053720
  5117. (VECTOR (LAMBDA (U) 00053730
  5118. (FLAG U (QUOTE VECTOR)))) 00053740
  5119. 00053750
  5120. )) 00053760
  5121. 00053770
  5122. DEFINE (( 00053780
  5123. 00053790
  5124. (VCREP (LAMBDA (U) 00053800
  5125. ((LAMBDA(X) 00053810
  5126. (COND 00053820
  5127. ((AND SUBFG* (NOT (EQUAL X (CAR U)))) 00053830
  5128. (NCONC U (LIST (LIST (QUOTE REP) X 1 NIL NIL)))) 00053840
  5129. (T NIL))) 00053850
  5130. (SUBLIS VREP* (CAR U))))) 00053860
  5131. 00053870
  5132. )) 00053880
  5133. 00053890
  5134. DEFLIST (((MSHELL RLIS) (MASS RLIS) (INDEX RLIS) (REMIND RLIS) (VECTOR 00053900
  5135. RLIS) (VOP RLIS)) STAT) 00053910
  5136. 00053920
  5137. FLAG ((EPS) VOP) 00053950
  5138. 00053960
  5139. DEFLIST (((G SIMPGAMMA) (EPS SIMPEPS)) SIMPFN) 00053970
  5140. 00053980
  5141. FLAG ((G) NONCOM) 00053990
  5142. 00054000
  5143. DEFLIST (((G GMULT)) MRULE) 00054010
  5144. 00054020
  5145. DEFINE (( 00054030
  5146. 00054040
  5147. (GMULT (LAMBDA (U V) 00054050
  5148. (COND 00054060
  5149. ((OR (NOT (EQUAL (CDR U) 1)) (NOT (EQUAL (CDR V) 1))) 00054070
  5150. (ERRACH (LIST (QUOTE GMULT) U V))) 00054080
  5151. ((NOT (EQ (CADAR U) (CADAR V))) (QUOTE FAILED)) 00054090
  5152. (T (GCHECK (REVERSE (CDDAR U)) (CDDAR V) (CADAR U)))))) 00054100
  5153. 00054110
  5154. (NONCOM (LAMBDA (U) 00054120
  5155. (FLAG U (QUOTE NONCOM)))) 00054130
  5156. 00054140
  5157. )) 00054150
  5158. 00054160
  5159. DEFINE (( 00054170
  5160. 00054180
  5161. (SPUR (LAMBDA (U) 00054190
  5162. (PROG2 (RMSUBS) 00054200
  5163. (MAP U 00054210
  5164. (FUNCTION 00054220
  5165. (LAMBDA(J) 00054230
  5166. (PROG2 (REMFLAG (LIST (CAR J)) (QUOTE NOSPUR)) 00054240
  5167. (REMFLAG (LIST (CAR J)) (QUOTE REDUCE))))))))) 00054250
  5168. 00054260
  5169. (NOSPUR (LAMBDA (U) 00054270
  5170. (FLAG U (QUOTE NOSPUR)))) 00054280
  5171. 00054290
  5172. (REDUCE (LAMBDA (U) 00054300
  5173. (PROG2 (NOSPUR U) (FLAG U (QUOTE REDUCE))))) 00054310
  5174. 00054320
  5175. (SIMPGAMMA (LAMBDA (*S*) 00054330
  5176. (COND 00054340
  5177. ((OR (NULL *S*) (NULL (CDR *S*))) 00054350
  5178. (REDERR (QUOTE (MISSING ARGUMENTS FOR G OPERATOR)))) 00054360
  5179. (T 00054370
  5180. (PROG NIL 00054380
  5181. (SETQ GAMIDEN* (UNION (LIST (CAR *S*)) GAMIDEN*)) 00054390
  5182. (SETQ *NCMP T) 00054400
  5183. (RETURN 00054410
  5184. (MKVARG (CDR *S*) 00054420
  5185. (FUNCTION 00054430
  5186. (LAMBDA(J) 00054440
  5187. (CONS (GCHECK (REVERSE J) NIL (CAR *S*)) 00054450
  5188. 1)))))))))) 00054460
  5189. 00054470
  5190. (GCHECK (LAMBDA (U V L) 00054480
  5191. (COND ((EQ (CAR V) (QUOTE A)) (GCHKA U (CDR V) T L)) 00054490
  5192. (T (GCHKV U V T L))))) 00054500
  5193. 00054510
  5194. (GCHKA (LAMBDA (U V X W) 00054520
  5195. (COND ((NULL U) (MULTN (NB X) (MKG (CONS (QUOTE A) V) W))) 00054530
  5196. ((EQ (CAR U) (QUOTE A)) (GCHKV (CDR U) V X W)) 00054540
  5197. (T (GCHKA (CDR U) (CONS (CAR U) V) (NOT X) W))))) 00054550
  5198. 00054560
  5199. (GCHKV (LAMBDA (U V X L) 00054570
  5200. (COND ((NULL U) 00054580
  5201. (COND ((NULL V) (NB X)) (T (MULTN (NB X) (MKG V L))))) 00054590
  5202. ((EQ (CAR U) (QUOTE A)) (GCHKA (CDR U) V X L)) 00054600
  5203. (T (GCHKV (CDR U) (CONS (CAR U) V) X L))))) 00054610
  5204. 00054620
  5205. (MKG (LAMBDA (U L) 00054630
  5206. (LIST (CONS (CONS (CONS (QUOTE G) (CONS L U)) 1) 1)))) 00054640
  5207. 00054650
  5208. (MKA (LAMBDA (L) 00054660
  5209. (MKG (LIST (QUOTE A)) L))) 00054670
  5210. 00054680
  5211. (MKG1 (LAMBDA (U L) 00054690
  5212. (COND 00054700
  5213. ((OR (NOT (FLAGP L (QUOTE NOSPUR))) 00054710
  5214. (NULL (CDR U)) 00054720
  5215. (CDDR U) 00054730
  5216. (ORDOP (CAR U) (CADR U)) 00054740
  5217. (EQ (CAR U) (QUOTE A))) 00054750
  5218. (MKG U L)) 00054760
  5219. (T 00054770
  5220. (ADDF (MULTN 2 (MKDOT (CAR U) (CADR U))) 00054780
  5221. (MULTN -1 (MKG (REVERSE U) L))))))) 00054790
  5222. 00054800
  5223. (NB (LAMBDA (U) 00054810
  5224. (COND (U 1) (T -1)))) 00054820
  5225. 00054830
  5226. )) 00054840
  5227. 00054850
  5228. DEFINE (( 00054860
  5229. 00054870
  5230. (SPUR0 (LAMBDA (U I V1 V2 V3) 00054880
  5231. (PROG (L V W I1 Z KAHP) 00054890
  5232. (SETQ L (CADAAR U)) 00054900
  5233. (SETQ V (CDDAAR U)) 00054910
  5234. (COND ((NOT (ONEP (CDAR U))) (SETQ V (APPN V (CDAR U))))) 00054920
  5235. (SETQ U (CDR U)) 00054930
  5236. (COND 00054940
  5237. ((AND (NOT (FLAGP L (QUOTE NOSPUR)))
  5238. (OR (AND (EQ (CAR V) (QUOTE A)) 00054960
  5239. (OR (LESSP (LENGTH V) 5) 00054970
  5240. (NOT (EVENP (CDR V))))) 00054980
  5241. (AND (NOT (EQ (CAR V) (QUOTE A))) 00054990
  5242. (NOT (EVENP V))))) 00055000
  5243. (RETURN NIL)) 00055010
  5244. ((NULL I) (GO END))) 00055020
  5245. A (COND ((NULL V) (GO END1)) ((MEMBER (CAR V) I) (GO B))) 00055030
  5246. A1 (SETQ W (CONS (CAR V) W)) 00055040
  5247. (SETQ V (CDR V)) 00055050
  5248. (GO A) 00055060
  5249. B (COND ((MEMBER (CAR V) (CDR V)) (GO KAH1)) 00055070
  5250. ((MEMBER (CAR V) I1) (GO A1)) 00055080
  5251. ((SETQ Z (BASSOC (CAR V) V1)) (GO E)) 00055090
  5252. ((SETQ Z (MEMLIS (CAR V) V2)) 00055100
  5253. (RETURN 00055110
  5254. ((LAMBDA(X) 00055120
  5255. (COND 00055130
  5256. ((AND (FLAGP L (QUOTE REDUCE)) 00055140
  5257. (NULL V1) 00055150
  5258. (NULL V3) 00055160
  5259. (NULL (CDR V2))) 00055170
  5260. (MULTF (MKG* X L) (MULTF (MKEPS1 Z) (ISIMP U)))) 00055180
  5261. (T 00055190
  5262. (ISIMP1 00055200
  5263. (SPUR0 (CONS (CAAR (MKG X L)) U) 00055210
  5264. NIL 00055220
  5265. V1 00055230
  5266. (DELETE Z V2) 00055240
  5267. V3) 00055250
  5268. I 00055260
  5269. NIL 00055270
  5270. (LIST Z) 00055280
  5271. NIL)))) 00055290
  5272. (APPEND (REVERSE W) V)))) 00055300
  5273. ((SETQ Z (MEMLIS (CAR V) V3)) (GO C)) 00055310
  5274. (T 00055320
  5275. (RETURN 00055330
  5276. (ISIMP1 U 00055340
  5277. I 00055350
  5278. V1 00055360
  5279. V2 00055370
  5280. (CONS (CONS L (APPEND (REVERSE W) V)) 00055380
  5281. V3))))) 00055390
  5282. C (SETQ V3 (DELETE Z V3)) 00055400
  5283. (SETQ KAHP NIL) 00055410
  5284. (COND 00055420
  5285. ((AND (FLAGP L (QUOTE NOSPUR)) 00055430
  5286. (FLAGP (CAR Z) (QUOTE NOSPUR))) 00055440
  5287. (ERROR (QUOTE HELP))) 00055450
  5288. ((FLAGP (CAR Z) (QUOTE NOSPUR)) (SETQ KAHP (CAR Z)))) 00055460
  5289. (SETQ Z (CDR Z)) 00055470
  5290. (SETQ I1 NIL) 00055480
  5291. C1 (COND ((EQ (CAR V) (CAR Z)) (GO D))) 00055490
  5292. (SETQ I1 (CONS (CAR Z) I1)) 00055500
  5293. (SETQ Z (CDR Z)) 00055510
  5294. (GO C1) 00055520
  5295. D (SETQ Z (CDR Z)) 00055530
  5296. (SETQ I (DELETE (CAR V) I)) 00055540
  5297. (SETQ V (CDR V)) 00055550
  5298. (COND ((NOT (FLAGP L (QUOTE NOSPUR))) (GO D0))) 00055560
  5299. (SETQ W (CONS W (CONS V (CONS I1 Z)))) 00055570
  5300. (SETQ I1 (CAR W)) 00055580
  5301. (SETQ Z (CADR W)) 00055590
  5302. (SETQ V (CADDR W)) 00055600
  5303. (SETQ W (CDDDR W)) 00055610
  5304. D0 (SETQ W (REVERSE W)) 00055620
  5305. (COND 00055630
  5306. ((AND (OR (NULL V) (NOT (EQ (CAR W) (QUOTE A)))) 00055640
  5307. (SETQ V (APPEND V W))) 00055650
  5308. (GO D1)) 00055660
  5309. ((NOT (EVENP V)) (SETQ U (MULTN -1 U)))) 00055670
  5310. (SETQ V (CONS (QUOTE A) (APPEND V (CDR W)))) 00055680
  5311. D1 (COND (KAHP (SETQ L KAHP))) 00055690
  5312. (SETQ VARS* NIL) 00055700
  5313. (SETQ Z (MULTF (MKG (REVERSE I1) L) 00055710
  5314. (MULTF (BRACE V L I) (MULTF (MKG1 Z L) U)))) 00055720
  5315. (SETQ Z (ISIMP1 Z (APPEND VARS* I) V1 V2 V3)) 00055730
  5316. (COND ((NULL Z) (RETURN Z)) 00055780
  5317. ((NULL (SETQ Z (QUOTF Z 2))) 00055790
  5318. (ERRACH (LIST (QUOTE SPUR0) U I V1 V2 V3)))) 00055800
  5319. (RETURN Z) 00055810
  5320. E (SETQ V1 (DELETE Z V1)) 00055820
  5321. (SETQ I (DELETE (CAR W) I)) 00055830
  5322. (SETQ V (CONS (OTHER (CAR V) Z) (CDR V))) 00055840
  5323. (GO A) 00055850
  5324. KAH1 (COND ((EQ (CAR V) (CADR V)) (GO K2))) 00055860
  5325. (SETQ KAHP T) 00055870
  5326. (SETQ I1 (CONS (CAR V) I1)) 00055880
  5327. (GO A1) 00055890
  5328. K2 (SETQ I (DELETE (CAR V) I)) 00055900
  5329. (SETQ V (CDDR V)) 00055910
  5330. (SETQ U (MULTN 4 U)) 00055920
  5331. (GO A) 00055930
  5332. END (SETQ W (REVERSE V)) 00055940
  5333. END1 (COND (KAHP (GO END2)) 00055950
  5334. ((NULL (SETQ Z (SPURR W L NIL 1))) (RETURN NIL)) 00055960
  5335. (T (RETURN (COND ((AND (GET (QUOTE EPS) (QUOTE KLIST)) 00055970
  5336. (NOT (FLAGP L (QUOTE NOSPUR)))) 00055971
  5337. (ISIMP1 (MULTF Z U) I V1 V2 V3)) 00055972
  5338. (T (MULTF Z (ISIMP1 U I V1 V2 V3))))))) 00055973
  5339. END2 (SETQ VARS* NIL) 00055980
  5340. (SETQ Z (MULTF (KAHANE (REVERSE W) I1 L) U)) 00055990
  5341. (RETURN (ISIMP1 Z (APPEND VARS* (SETDIFF I I1)) V1 V2 V3))))) 00056000
  5342. 00056040
  5343. (APPN (LAMBDA (U N) 00056050
  5344. (COND ((ONEP N) U) (T (APPEND U (APPN U (SUB1 N))))))) 00056060
  5345. 00056070
  5346. (OTHER (LAMBDA (U V) 00056080
  5347. (COND ((EQ U (CAR V)) (CDR V)) (T (CAR V))))) 00056090
  5348. 00056100
  5349. )) 00056110
  5350. 00056120
  5351. DEFINE (( 00056130
  5352. 00056140
  5353. (KAHANE (LAMBDA (U I L) 00056150
  5354. (PROG (K2 LD LU M P V W X Y) 00056160
  5355. (SETQ K2 0) 00056170
  5356. (SETQ M 0) 00056180
  5357. (SETQ W (LIST T T NIL)) 00056190
  5358. (COND ((EQ (CAR U) (QUOTE A)) (GO B))) 00056200
  5359. A (COND 00056210
  5360. ((AND (NULL U) (SETQ W (CONS NIL (CONS NIL (CONS NIL W))))) 00056220
  5361. (GO KETJAK)) 00056230
  5362. ((MEMBER (CAR U) I) (GO D))) 00056240
  5363. (SETQ P (NOT P)) 00056250
  5364. B (SETQ W (CONS (CAR U) W)) 00056260
  5365. C (SETQ U (CDR U)) 00056270
  5366. (GO A) 00056280
  5367. D (SETQ W (CONS (CAR U) (CONS P (CONS NIL W)))) 00056290
  5368. (SETQ X NIL) 00056300
  5369. KETJAK 00056310
  5370. (SETQ W (REVERSE W)) 00056320
  5371. TJARUM 00056330
  5372. (COND ((CADR W) (SETQ LU (CONS W LU))) 00056340
  5373. (T (SETQ LD (CONS W LD)))) 00056350
  5374. (COND ((NULL U) (GO DJANGER)) (X (GO MAS))) 00056360
  5375. (SETQ W (REVERSE W)) 00056370
  5376. (SETQ X T) 00056380
  5377. (GO TJARUM) 00056390
  5378. MAS (SETQ W (LIST T (SETQ P (NOT P)) (CAR U))) 00056400
  5379. (SETQ K2 (ADD1 K2)) 00056410
  5380. (GO C) 00056420
  5381. DJANGER 00056430
  5382. (SETQ LU (REVERSE LU)) 00056440
  5383. BARUNA 00056450
  5384. (COND ((NULL LU) (GO JAVA))) 00056460
  5385. (SETQ V (CAR LU)) 00056470
  5386. (SETQ LU (CDR LU)) 00056480
  5387. WAJANG 00056490
  5388. (SETQ X (CONS (CAR V) (CADR V))) 00056495
  5389. (SETQ P (NULL (CADDR V))) 00056500
  5390. (SETQ M (ADD1 M)) 00056510
  5391. (SETQ W NIL) 00056520
  5392. RINDIK 00056530
  5393. (SETQ Y (REVERSE V)) 00056540
  5394. R1 (COND ((CADR Y) (SETQ LU (DELETE Y LU))) 00056545
  5395. (T (SETQ LD (DELETE Y LD)))) 00056550
  5396. (COND ((EQ Y V) (GO RINDIK)) 00056555
  5397. (P (AND (SETQ V Y) 00056560
  5398. (SETQ X (CONS (CAR V) (CADR V))) 00056565
  5399. (SETQ P NIL)))) 00056570
  5400. (SETQ V (CDDDR V)) 00056575
  5401. BANDJAR 00056580
  5402. (COND ((CDDDR V) (GO SUBAK)) 00056585
  5403. ((NULL (CADDR V)) (GO WADAH)) 00056590
  5404. ((AND (EQ (CADDR V) (CAR X)) 00056595
  5405. (EQ (CADR V) (CDR X))) (GO BARIS))) 00056596
  5406. (SETQ V 00056600
  5407. (SASSOC (CADDR V) 00056605
  5408. (COND ((CADR V) LU) (T LD)) 00056610
  5409. (FUNCTION 00056650
  5410. (LAMBDA NIL (ERRACH (QUOTE KAHANE)))))) 00056660
  5411. (SETQ Y V) 00056670
  5412. (GO R1) 00056680
  5413. SUBAK 00056700
  5414. (SETQ W (CONS (CAR V) W)) 00056710
  5415. (SETQ V (CDR V)) 00056720
  5416. (GO BANDJAR) 00056730
  5417. WADAH 00056740
  5418. (SETQ U (MKG (REVERSE W) L)) 00056750
  5419. (GO BARUNA) 00056760
  5420. BARIS 00056770
  5421. (COND ((AND W (CDR X)) (SETQ W (NCONC (CDR W) (LIST (CAR W)))))) 00056775
  5422. (SETQ U (MULTF (BRACE W L NIL) U)) 00056780
  5423. (GO BARUNA) 00056790
  5424. JAVA (COND ((NULL LD) (GO HOME))) 00056800
  5425. (SETQ V (CAR LD)) 00056810
  5426. (SETQ LD (CDR LD)) 00056820
  5427. (GO WAJANG) 00056830
  5428. HOME (SETQ K2 (QUOTIENT K2 2)) 00056840
  5429. (SETQ X (EXPT 2 K2)) 00056850
  5430. (COND 00056860
  5431. ((ZEROP (REMAINDER (DIFFERENCE K2 M) 2)) 00056870
  5432. (SETQ X (MINUS X)))) 00056880
  5433. (RETURN (MULTN X U))))) 00056890
  5434. 00056900
  5435. (BRACE (LAMBDA (U L I) 00056910
  5436. (COND ((NULL U) 2) 00056920
  5437. ((OR (XN I U) (FLAGP L (QUOTE NOSPUR))) 00056930
  5438. (ADDF (MKG1 U L) (MKG1 (REVERSE U) L))) 00056935
  5439. ((EQ (CAR U) (QUOTE A)) 00056940
  5440. (COND ((EVENP U) (ADDF (MKG U L) 00056950
  5441. (MULTN -1 (MKG (CONS (QUOTE A) 00056952
  5442. (REVERSE (CDR U))) L)))) 00056954
  5443. (T (MULTF (MKA L) (SPR2 (CDR U) L 2 NIL))))) 00056960
  5444. ((EVENP U) (SPR2 U L 2 NIL)) 00056970
  5445. (T (SPR1 U L 2 NIL))))) 00056980
  5446. 00056990
  5447. (SPR1 (LAMBDA (U L N B) 00057000
  5448. (COND ((NULL U) NIL) 00057010
  5449. ((NULL (CDR U)) (MULTN N (MKG1 U L))) 00057020
  5450. (T 00057030
  5451. (PROG (M X Z) 00057040
  5452. (SETQ X U) 00057050
  5453. (SETQ M 0) 00057060
  5454. A (COND ((NULL X) (RETURN Z))) 00057070
  5455. (SETQ Z 00057080
  5456. (ADDF (MULTF (MKG1 (LIST (CAR X)) L) 00057090
  5457. (COND 00057100
  5458. ((NULL B) 00057110
  5459. (SPURR (REMOVE U M) L NIL N)) 00057120
  5460. (T (SPR1 (REMOVE U M) L N NIL)))) 00057130
  5461. Z)) 00057140
  5462. (SETQ X (CDR X)) 00057150
  5463. (SETQ N (MINUS N)) 00057160
  5464. (SETQ M (ADD1 M)) 00057170
  5465. (GO A)))))) 00057180
  5466. 00057190
  5467. (SPR2 (LAMBDA (U L N B) 00057200
  5468. (COND ((AND (NULL (CDDR U)) (NULL B)) 00057210
  5469. (MULTN N (MKDOT (CAR U) (CADR U)))) 00057220
  5470. (T 00057230
  5471. ((LAMBDA (X) (COND (B (ADDF (SPR1 U L N B) X)) (T X))) 00057240
  5472. (ADDF (SPURR U L NIL N) 00057250
  5473. (MULTF (MKA L) 00057255
  5474. (SPURR (APPEND U (LIST (QUOTE A))) L NIL N)))))))) 00057260
  5475. 00057270
  5476. (EVENP (LAMBDA (U) 00057410
  5477. (OR (NULL U) (NOT (EVENP (CDR U)))))) 00057420
  5478. 00057430
  5479. (BASSOC (LAMBDA (U V) 00057440
  5480. (COND ((NULL V) NIL) 00057450
  5481. ((OR (EQ U (CAAR V)) (EQ U (CDAR V))) (CAR V)) 00057460
  5482. (T (BASSOC U (CDR V)))))) 00057470
  5483. 00057480
  5484. (MEMLIS (LAMBDA (U V) 00057490
  5485. (COND ((NULL V) NIL) 00057500
  5486. ((MEMBER U (CAR V)) (CAR V)) 00057510
  5487. (T (MEMLIS U (CDR V)))))) 00057520
  5488. 00057530
  5489. )) 00057540
  5490. 00057550
  5491. DEFINE (( 00057560
  5492. 00057570
  5493. (SPURR (LAMBDA (U L V N) 00057580
  5494. (PROG (M W X Y Z) 00057590
  5495. A (COND ((NULL U) (GO B)) ((MEMBER (CAR U) (CDR U)) (GO G))) 00057600
  5496. (SETQ V (CONS (CAR U) V)) 00057610
  5497. (SETQ U (CDR U)) 00057620
  5498. (GO A) 00057630
  5499. B (COND ((NULL V) (RETURN N)) 00057640
  5500. ((FLAGP L (QUOTE NOSPUR)) 00057650
  5501. (RETURN (MULTN N (MKG* V L)))) 00057660
  5502. (T (RETURN (SPRGEN V N)))) 00057670
  5503. G (SETQ X (CAR U)) 00057680
  5504. (SETQ Y (CDR U)) 00057690
  5505. (SETQ W Y) 00057700
  5506. (SETQ M 0) 00057710
  5507. H (COND 00057720
  5508. ((EQ X (CAR W)) 00057730
  5509. (RETURN 00057740
  5510. (ADDF (MULTF (MKDOT X X) (SPURR (DELETE X Y) L V N)) 00057750
  5511. Z)))) 00057760
  5512. (SETQ Z 00057770
  5513. (ADDF (MULTF (MKDOT X (CAR W)) 00057780
  5514. (SPURR (REMOVE Y M) L V (TIMES 2 N))) 00057790
  5515. Z)) 00057800
  5516. (SETQ W (CDR W)) 00057810
  5517. (SETQ N (MINUS N)) 00057820
  5518. (SETQ M (ADD1 M)) 00057830
  5519. (GO H)))) 00057840
  5520. 00057850
  5521. (SPRGEN (LAMBDA (V N) 00057860
  5522. (PROG (X Z) 00057870
  5523. (COND 00057880
  5524. ((NOT (EQ (CAR V) (QUOTE A))) (RETURN (SPRGEN1 V N))) 00057890
  5525. ((NULL (SETQ X (COMB1 (SETQ V (CDR V)) 4 NIL))) 00057900
  5526. (RETURN NIL)) 00057910
  5527. ((NULL (CDR X)) (GO E))) 00057920
  5528. C (COND ((NULL X) (RETURN (MULTF2 (MKSP (QUOTE I) 1) Z)))) 00057930
  5529. (SETQ Z 00057940
  5530. (ADDF (MULTN (ASIGN (CAR X) V N) 00057950
  5531. (MULTF (MKEPS1 (CAR X)) 00057960
  5532. (SPRGEN1 (SETDIFF V (CAR X)) 1))) 00057970
  5533. Z)) 00057980
  5534. D (SETQ X (CDR X)) 00057990
  5535. (GO C) 00058000
  5536. E (SETQ Z (MULTN N (MKEPS1 (CAR X)))) 00058010
  5537. (GO D)))) 00058020
  5538. 00058030
  5539. (ASIGN (LAMBDA (U V N) 00058031
  5540. (COND ((NULL U) N) 00058032
  5541. (T (ASIGN (CDR U) V (TIMES (ASIGN1 (CAR U) V -1) N)))))) 00058033
  5542. 00058034
  5543. (ASIGN1 (LAMBDA (U V N) 00058035
  5544. (COND ((NULL V) (ERROR (QUOTE ARG))) 00058036
  5545. ((EQ U (CAR V)) N) 00058037
  5546. (T (ASIGN1 U (CDR V) (MINUS N)))))) 00058038
  5547. 00058039
  5548. (SPRGEN1 (LAMBDA (U N) 00058040
  5549. (COND ((NULL U) NIL) 00058050
  5550. ((NULL (CDDR U)) (MULTN N (MKDOT (CAR U) (CADR U)))) 00058060
  5551. (T 00058070
  5552. (PROG (W X Y Z) 00058080
  5553. (SETQ X (CAR U)) 00058090
  5554. (SETQ U (CDR U)) 00058100
  5555. (SETQ Y U) 00058110
  5556. A (COND ((NULL U) (RETURN Z)) 00058120
  5557. ((NULL (SETQ W (MKDOT X (CAR U)))) (GO B))) 00058130
  5558. (SETQ Z 00058140
  5559. (ADDF (MULTF W (SPRGEN1 (DELETE (CAR U) Y) N)) 00058150
  5560. Z)) 00058160
  5561. B (SETQ N (MINUS N)) 00058170
  5562. (SETQ U (CDR U)) 00058180
  5563. (GO A)))))) 00058190
  5564. 00058200
  5565. (COMB1 (LAMBDA (U N V) 00058210
  5566. ((LAMBDA(M) 00058220
  5567. (COND ((ONEP N) 00058230
  5568. (APPEND V (MAPCAR U (FUNCTION (LAMBDA (J) (LIST J)))))) 00058240
  5569. ((MINUSP M) NIL) 00058250
  5570. ((ZEROP M) (CONS U V)) 00058260
  5571. (T 00058270
  5572. (COMB1 (CDR U) 00058280
  5573. N 00058290
  5574. (APPEND V 00058300
  5575. (MAPCONS (COMB1 (CDR U) (SUB1 N) NIL) 00058310
  5576. (CAR U))))))) 00058320
  5577. (DIFFERENCE (LENGTH U) N)))) 00058330
  5578. 00058340
  5579. )) 00058350
  5580. 00058360
  5581. DEFINE (( 00058370
  5582. 00058380
  5583. (SIMPEPS (LAMBDA (U) 00058390
  5584. (MKVARG U 00058400
  5585. (FUNCTION 00058410
  5586. (LAMBDA(J) 00058420
  5587. (CONS (COND ((REPEATS J) NIL) (T (MKEPS1 J))) 1)))))) 00058430
  5588. 00058440
  5589. (MKEPS1 (LAMBDA (U) 00058450
  5590. ((LAMBDA(X) 00058460
  5591. (MULTN (NB (PERMP X U)) (MKSF (CONS (QUOTE EPS) X) 1))) 00058470
  5592. (ORDN U)))) 00058480
  5593. 00058490
  5594. (PERMP (LAMBDA (U V) 00058500
  5595. (COND ((NULL U) T) 00058510
  5596. ((EQ (CAR U) (CAR V)) (PERMP (CDR U) (CDR V))) 00058520
  5597. (T (NOT (PERMP (CDR U) (SUBST (CAR V) (CAR U) (CDR V)))))))) 00058530
  5598. 00058540
  5599. )) 00058550
  5600. 00058560
  5601. DEFINE (( 00058570
  5602. 00058580
  5603. (ESUM (LAMBDA (U I V W XX) 00058590
  5604. (PROG (X Y Z) 00058600
  5605. (SETQ X (CAR U)) 00058610
  5606. (SETQ U (CDR U)) 00058620
  5607. (COND 00058630
  5608. ((NOT (ONEP (CDR X))) 00058640
  5609. (SETQ U 00058650
  5610. (MULTF (NMULTF (MKEPS1 (CDAR X)) (SUB1 (CDR X))) 00058660
  5611. U)))) 00058670
  5612. (SETQ X (CDAR X)) 00058680
  5613. A (COND ((REPEATS X) (RETURN NIL))) 00058690
  5614. B (COND ((NULL X) 00058700
  5615. (RETURN (ISIMP1 U I V (CONS (REVERSE Y) W) XX))) 00058710
  5616. ((NOT (MEMBER (CAR X) I)) (GO D)) 00058720
  5617. ((NOT (SETQ Z (BASSOC (CAR X) V))) (GO C))) 00058730
  5618. (SETQ V (DELETE Z V)) 00058740
  5619. (SETQ I (DELETE (CAR X) I)) 00058750
  5620. (SETQ X 00058760
  5621. (APPEND (REVERSE Y) (CONS (OTHER (CAR X) Z) (CDR X)))) 00058770
  5622. (SETQ Y NIL) 00058780
  5623. (GO A) 00058790
  5624. C (COND ((SETQ Z (MEMLIS (CAR X) W)) (GO C1)) 00058800
  5625. ((SETQ Z (MEMLIS (CAR X) XX)) 00058810
  5626. (RETURN 00058820
  5627. (SPUR0 (CONS (CONS (CONS (QUOTE G) Z) 1) U) 00058830
  5628. I 00058840
  5629. V 00058850
  5630. (CONS (APPEND (REVERSE Y) X) W) 00058860
  5631. (DELETE Z XX))))) 00058870
  5632. (RETURN (ISIMP1 U I V (CONS (APPEND (REVERSE Y) X) W) XX)) 00058880
  5633. C1 (SETQ X (APPEND (REVERSE Y) X)) 00058890
  5634. (SETQ Y (XN I (XN X Z))) 00058900
  5635. (RETURN 00058910
  5636. (ISIMP1 (MULTF (EMULT1 Z X Y) U) 00058920
  5637. (SETDIFF I Y) 00058930
  5638. V 00058940
  5639. (DELETE Z W) 00058950
  5640. XX)) 00058960
  5641. D (SETQ Y (CONS (CAR X) Y)) 00058970
  5642. (SETQ X (CDR X)) 00058980
  5643. (GO B)))) 00058990
  5644. 00059000
  5645. (EMULT (LAMBDA (U) 00059010
  5646. (COND ((NULL (CDR U)) (MKEPS1 (CAR U) 1)) 00059020
  5647. ((NULL (CDDR U)) (EMULT1 (CAR U) (CADR U) NIL)) 00059030
  5648. (T (MULTF (EMULT1 (CAR U) (CADR U) NIL) (EMULT (CDDR U))))))) 00059040
  5649. 00059050
  5650. (EMULT1 (LAMBDA (U V I) 00059060
  5651. ((LAMBDA(X *S*) 00059070
  5652. ((LAMBDA(M N) 00059080
  5653. (COND ((EQUAL M 4) (TIMES 6 (TIMES 4 N))) 00059090
  5654. ((EQUAL M 3) 00059100
  5655. (MULTN (TIMES 6 N) (MKDOT (CAR X) (CAR *S*)))) 00059110
  5656. (T 00059120
  5657. (MULTN (TIMES N (COND ((ZEROP M) 1) (T M))) 00059130
  5658. (CAR 00059140
  5659. (DETQ 00059150
  5660. (MAPLIST X 00059160
  5661. (FUNCTION 00059170
  5662. (LAMBDA(*S1*) 00059180
  5663. (MAPLIST *S* 00059190
  5664. (FUNCTION 00059200
  5665. (LAMBDA 00059210
  5666. (J) 00059220
  5667. (CONS 00059230
  5668. (MKDOT 00059240
  5669. (CAR *S1*) 00059250
  5670. (CAR J)) 00059260
  5671. 1))))))))))))) 00059270
  5672. (LENGTH I) 00059280
  5673. ((LAMBDA (J) (NB(COND((PERMP U (APPEND I X)) (NOT J)) (T J)))) 00059290
  5674. (PERMP V (APPEND I *S*))))) 00059300
  5675. (SETDIFF U I) 00059310
  5676. (SETDIFF V I)))) 00059320
  5677. 00059330
  5678. )) 00059340
  5679. 00059350
  5680. DEFLIST (((NONCOM RLIS) (SPUR RLIS) (NOSPUR RLIS) (REDUCE RLIS)) STAT) 00059360
  5681. 00059370
  5682. 00059380
  5683. DEFINE (( 00059390
  5684. 00059400
  5685. (MKG* (LAMBDA (U L) 00059410
  5686. (COND ((NULL U) 1) 00059420
  5687. ((NOT (FLAGP L (QUOTE REDUCE))) (MKG1 U L)) 00059430
  5688. ((LESSP (LENGTH U) 3) (MKG1 U L)) 00059440
  5689. ((AND (EQCAR U (QUOTE A)) (EQUAL (LENGTH U) 3)) 00059450
  5690. ((LAMBDA(Y) 00059460
  5691. (PROG2 (SETQ INDICES* (APPEND Y INDICES*)) 00059470
  5692. (ADDF (MULTF (MKA L) (MKDOT (CADR U) (CADDR U))) 00059480
  5693. (MULTF2 (MKSP (QUOTE I) 1) 00059490
  5694. (MULTF (MKG1 Y L) 00059500
  5695. (MKEPS1 00059510
  5696. (APPEND (CDR U) Y))))))) 00059520
  5697. (LIST (GENSYM) (GENSYM)))) 00059530
  5698. (T (RED* U L))))) 00059540
  5699. 00059550
  5700. (RED* (LAMBDA (U L) 00059560
  5701. (PROG (I X) 00059570
  5702. (SETQ X (ACONC (EXPLODE L) (QUOTE I))) 00059580
  5703. (SETQ I 00059590
  5704. (LIST (COMPRESS (APPEND X (QUOTE (1)))) 00059600
  5705. (COMPRESS (APPEND X (QUOTE (2)))))) 00059610
  5706. (SETQ X (LIST (QUOTE A) (CAR I))) 00059620
  5707. (RETURN 00059630
  5708. (ADDF (SPURR NIL (QUOTE ***) U 3) 00059640
  5709. (ADDF (MULTF (MKG (QUOTE (A)) L) 00059650
  5710. (ISIMP1 00059660
  5711. (GCHECK (QUOTE (A)) U (QUOTE ***)) 00059670
  5712. NIL 00059680
  5713. NIL 00059690
  5714. NIL 00059700
  5715. NIL)) 00059710
  5716. (ADDF 00059720
  5717. (ISIMP1* 00059730
  5718. (ISIMP1 (GCHECK (LIST (CAR I)) U (QUOTE ***)) 00059740
  5719. NIL 00059750
  5720. NIL 00059760
  5721. NIL 00059770
  5722. NIL) 00059780
  5723. (LIST (CAR I)) 00059790
  5724. (LIST (LIST L (CAR I)))) 00059800
  5725. (ADDF (MULTN -1 00059810
  5726. (ISIMP1* 00059820
  5727. (ISIMP1 00059830
  5728. (GCHECK 00059840
  5729. (REVERSE X) 00059850
  5730. U 00059860
  5731. (QUOTE ***)) 00059870
  5732. NIL 00059880
  5733. NIL 00059890
  5734. NIL 00059900
  5735. NIL) 00059910
  5736. (CDR X) 00059920
  5737. (LIST (CONS L X)))) 00059930
  5738. (MULTF (MKSQP (CONS -1 2)) 00059940
  5739. (ISIMP1* 00059950
  5740. (ISIMP1 00059960
  5741. (GCHECK 00059970
  5742. (REVERSE I) 00059980
  5743. U 00059990
  5744. (QUOTE ***)) 00060000
  5745. NIL 00060010
  5746. NIL 00060020
  5747. NIL 00060030
  5748. NIL) 00060040
  5749. I 00060050
  5750. (LIST (CONS L I)))))))))))) 00060060
  5751. 00060070
  5752. (ISIMP1* (LAMBDA (U I V) 00060080
  5753. (COND ((NULL U) NIL) (T (ISIMP1 U I NIL NIL V))))) 00060090
  5754. 00060100
  5755. )) 00060110
  5756. 00060120
  5757. INIT NIL 00060130
  5758. 00060140
  5759. 00060150
  5760. COMMENT ((E N D O F R E D U C E P R O G R A M)) 00060160
  5761. 00060170
  5762. 00060180