reduce2.os_source.s.2 449 KB

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