--File: PlaceCompsTest.mesa -- Last Edited by: CSChow, February 2, 1985 2:39:20 am PST -- Last Edited by: Preas, August 27, 1986 3:54:09 pm PDT DIRECTORY Real, Rope, List, TerminalIO, OrderedRefArray, IPCoTab, IPTop, IPChWidthEst, IPMainViewer, IPPlaceProcs, IPPlaceKit, IPPlaceXamples, IPPlaceBinPack; PlaceCompsTest: CEDAR PROGRAM IMPORTS List, OrderedRefArray, IPCoTab, IPMainViewer, IPPlaceProcs, IPPlaceKit, IPPlaceXamples, IPPlaceBinPack = BEGIN A1: PROC[breadth, keep: INT, compList: LIST OF REF] = { coTab: IPCoTab.Ref _ IPMainViewer.mvTop.coTab; comps: LIST OF IPCoTab.Component _ NIL; compList _ List.Reverse[compList]; UNTIL compList = NIL DO comps _ CONS[IPCoTab.GetComponent[coTab, NARROW[compList.first]], comps]; compList _ compList.rest; ENDLOOP; IPMainViewer.trialSolutions _ OrderedRefArray.Create[keep]; IPPlaceProcs.PlaceComps[IPMainViewer.mvTop, comps, IPPlaceXamples.PlaceCompTGenX1, IPPlaceXamples.PlaceEvaluatorX1, IPMainViewer.trialSolutions]; }; --TestA A2: PROC[breadth, keep: INT, compList: LIST OF REF] = { coTab: IPCoTab.Ref _ IPMainViewer.mvTop.coTab; comps: LIST OF IPCoTab.Component _ NIL; compList _ List.Reverse[compList]; UNTIL compList = NIL DO comps _ CONS[IPCoTab.GetComponent[coTab, NARROW[compList.first]], comps]; compList _ compList.rest; ENDLOOP; IPMainViewer.trialSolutions _ OrderedRefArray.Create[keep]; IPPlaceProcs.PlaceComps[IPMainViewer.mvTop, comps, IPPlaceXamples.PlaceCompTGenX1, IPPlaceXamples.PlaceEvaluatorX2, IPMainViewer.trialSolutions]; }; --A2 B1: PROC[keep: NAT] ={ IPMainViewer.trialSolutions _ OrderedRefArray.Create[keep]; IPPlaceProcs.PlaceInit[IPMainViewer.mvTop, IPPlaceXamples.OrderingFnX1, IPPlaceXamples.PlaceCompTGenX1, IPPlaceXamples.PlaceEvaluatorX1, IPMainViewer.trialSolutions] };--B1 B2: PROC[keep: NAT] ={ IPMainViewer.trialSolutions _ OrderedRefArray.Create[keep]; IPPlaceProcs.PlaceInit[IPMainViewer.mvTop, IPPlaceXamples.OrderingFnX1, IPPlaceXamples.PlaceCompTGenX2, IPPlaceXamples.PlaceEvaluatorX2, IPMainViewer.trialSolutions] };--B2 C1: PROC[numb, keep: NAT] ={ IPMainViewer.trialSolutions _ OrderedRefArray.Create[keep]; IPPlaceProcs.RemoveComps[IPMainViewer.mvTop, numb, IPPlaceXamples.RemoveCompsTGenX1, IPPlaceXamples.RemoveEvaluatorX1, IPMainViewer.trialSolutions] }; --C1 D1: PROC[remove, numbOfTrials, keep: NAT] ={ IPMainViewer.trialSolutions _ OrderedRefArray.Create[keep]; IPPlaceProcs.PlaceImprove[IPMainViewer.mvTop, remove, numbOfTrials, IPPlaceXamples.RemoveCompsTGenX1, IPPlaceXamples.RemoveEvaluatorX1, IPPlaceXamples.PlaceCompTGenX2, IPPlaceXamples.PlaceEvaluatorX2, IPMainViewer.trialSolutions] }; --D1 E: PROC[comp: Rope.ROPE, refVer: BOOL, keep: NAT, keepInit: BOOL] ={ IPMainViewer.trialSolutions _ OrderedRefArray.Create[keep]; IPPlaceKit.CompactComp0[IPMainViewer.mvTop, IPCoTab.GetComponent[IPMainViewer.mvTop.coTab, comp], (IF refVer THEN ver ELSE hor), IPPlaceBinPack.PlaceEvaluator1, IPMainViewer.trialSolutions, 0, keepInit]; }; F1: PROC[keep: NAT] ={ IPMainViewer.trialSolutions _ OrderedRefArray.Create[keep]; IPPlaceProcs.PlaceInit[IPMainViewer.mvTop, IPPlaceBinPack.OrderingFn1, IPPlaceBinPack.PlaceCompTGen1, IPPlaceBinPack.PlaceEvaluator1, IPMainViewer.trialSolutions] };--F1 F2: PROC[keep: NAT] ={ IPMainViewer.trialSolutions _ OrderedRefArray.Create[keep]; IPPlaceProcs.PlaceInit[IPMainViewer.mvTop, IPPlaceBinPack.OrderingFn1, IPPlaceBinPack.PlaceCompTGen1, IPPlaceBinPack.PlaceEvaluator2, IPMainViewer.trialSolutions] };--F2 G1: PROC[breadth, keep: INT, compList: LIST OF REF] = { coTab: IPCoTab.Ref _ IPMainViewer.mvTop.coTab; comps: LIST OF IPCoTab.Component _ NIL; compList _ List.Reverse[compList]; UNTIL compList = NIL DO comps _ CONS[IPCoTab.GetComponent[coTab, NARROW[compList.first]], comps]; compList _ compList.rest; ENDLOOP; IPMainViewer.trialSolutions _ OrderedRefArray.Create[keep]; IPPlaceProcs.PlaceComps[IPMainViewer.mvTop, comps, IPPlaceBinPack.PlaceCompTGen1, IPPlaceBinPack.PlaceEvaluator1, IPMainViewer.trialSolutions]; }; --G1 H1: PROC[keep: NAT] ={ IPMainViewer.trialSolutions _ OrderedRefArray.Create[keep]; IPPlaceProcs.PlaceInit[IPMainViewer.mvTop, IPPlaceBinPack.OrderingFn1, IPPlaceBinPack.PlaceCompTGen1, IPPlaceBinPack.PlaceEvaluator1, IPMainViewer.trialSolutions] };--H1 H2: PROC[keep: NAT] ={ IPMainViewer.trialSolutions _ OrderedRefArray.Create[keep]; IPPlaceProcs.PlaceInit[IPMainViewer.mvTop, IPPlaceBinPack.OrderingFn1, IPPlaceBinPack.PlaceCompTGen1, IPPlaceBinPack.PlaceEvaluator2, IPMainViewer.trialSolutions] };--H2 J1: PROC[depth, keep: NAT] ={ IPMainViewer.trialSolutions _ OrderedRefArray.Create[keep]; IPPlaceKit.FTPerturbTop[IPMainViewer.mvTop, IPPlaceBinPack.PlaceEvaluator1, depth, IPMainViewer.trialSolutions, 0] }; --J1 END. ΒCopyright c 1986 by Xerox Corporation. All rights reserved. --Intro: The whole purpose of this module is to use of simple names in place of -- a series of procedures. --Test.A --Test.B ΚG˜˜Icodešœ Οmœ1™<—J˜:J˜8J˜šΟk ˜ K˜K˜K˜K˜ Kšœ˜Kšœ˜K˜Kšœ ˜ Kšœ ˜ Kšœ ˜ K˜ Kšœ˜Kšœ˜K˜K™QK™K˜—šœžœž˜Jšžœh˜oJšœž˜J˜J™J˜š žœžœžœ žœžœžœ˜7J˜.Jšœžœžœžœ˜'Jšœ"˜"šžœ žœž˜Jšœžœžœ˜IJšœ˜Jšžœ˜—Jšœ;˜;Jšœ‘˜‘JšœΟc˜ —J˜J™J˜š žœžœžœ žœžœžœ˜7J˜.Jšœžœžœžœ˜'Jšœ"˜"šžœ žœž˜Jšœžœžœ˜IJšœ˜Jšžœ˜—Jšœ;˜;Jšœ‘˜‘JšœŸœ˜—J˜šžœžœžœ˜Jšœ;˜;Jšœ₯˜₯JšœŸ˜—J˜šžœžœžœ˜Jšœ;˜;Jšœ₯˜₯JšœŸ˜—J˜šΟnœžœ žœ˜Jšœ;˜;Jšœ“˜“JšœŸ˜—J˜š œžœžœ˜,Jšœ;˜;Jšœ   œΜ˜εJšœŸ˜—J˜š žœžœ žœ žœžœ žœ˜DJšœ;˜;KšœcžœžœžœQ˜ΛJšœ˜—š œžœžœ˜Jšœ;˜;Jšœ’˜’JšœŸ ˜—J˜š œžœžœ˜Jšœ;˜;Jšœ’˜’JšœŸ ˜—š žœžœžœ žœžœžœ˜7J˜.Jšœžœžœžœ˜'Jšœ"˜"šžœ žœž˜Jšœžœžœ˜IJšœ˜Jšžœ˜—Jšœ;˜;Jšœ˜JšœŸœ˜—J˜š œžœžœ˜Jšœ;˜;Jšœ’˜’JšœŸ ˜—J˜š œžœžœ˜Jšœ;˜;Jšœ’˜’JšœŸ ˜—J˜š œžœžœ˜Jšœ;˜;Jšœr˜rJ˜JšœŸ˜—J˜Jšžœ˜——…—py