=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Kan/dr.sm1,v retrieving revision 1.53 retrieving revision 1.56 diff -u -p -r1.53 -r1.56 --- OpenXM/src/kan96xx/Kan/dr.sm1 2006/02/04 02:44:39 1.53 +++ OpenXM/src/kan96xx/Kan/dr.sm1 2013/09/22 01:26:07 1.56 @@ -1,9 +1,9 @@ -% $OpenXM: OpenXM/src/kan96xx/Kan/dr.sm1,v 1.52 2005/11/21 09:12:22 takayama Exp $ +% $OpenXM: OpenXM/src/kan96xx/Kan/dr.sm1,v 1.55 2013/09/22 01:06:20 takayama Exp $ %% dr.sm1 (Define Ring) 1994/9/25, 26 %% This file is error clean. @@@.quiet { } -{ (macro package : dr.sm1, 9/26,1995 --- Version 12/10, 2000. ) message } ifelse +{ (macro package : dr.sm1, 9/26,1995 --- Version 09/22, 2013. ) message } ifelse /ctrlC-hook { %%% define your own routing in case of error. @@ -4525,6 +4525,62 @@ $ [ff ff] fromVectors :: $ ] pop popVariables arg1 +} def + +[(univ2poly) +[(list univ2poly list2) + (Change universal numbers in list to an element of a ring of polynomials) + (defined by other elements in list. If there is no polynomial element,) + (the current ring is used.) +]] putUsages +/univ2poly { + /arg1 set + [/aa /rg /ag /ans] pushVariables + [ + arg1 /aa set + [(CurrentRingp)] system_variable /rg set + aa getRing /ag set + ag tag 0 { } { + ag ring_def + } ifelse + aa univ2poly.aux /ans set + rg ring_def + ans /arg1 set + ] pop + popVariables + arg1 +} def + +/univ2poly.aux { + /arg1 set + [/aa /ans] pushVariables + [ + arg1 /aa set + aa getRing + aa tag 6 eq { + aa { univ2poly.aux} map /ans set + }{ + aa tag 15 eq, aa tag 1 eq, or { aa toString . /ans set } { + aa /ans set + } ifelse + } ifelse + ans /arg1 set + ] pop + popVariables + arg1 +} def + +/sm1log { + /arg1 set + [/ss /fd ] pushVariables + [ + arg1 /ss set + (/tmp/sm1log.txt) (a) file /fd set + fd , [[(date)] extension + ss (string) dc] cat , writestring + fd closefile + ] pop + popVariables } def ;