1Package $obsolescent
2
3export ArrDerMod;
4export MultiArrDerMod;
5export AllReducedGroebnerBases;
6///export adjoint;
7///export AffHilbert;
8///export AffPoincare;
9export Bin;
10///export Comp;
11export Fact;
12export FactorAlgExt;
13export Factorial;
14///export FloatApprox10;
15///export Functions;
16///export Hilbert;
17export HomogElimMat;
18///export ID;
19///export ILogBase;
20export iroot;
21export jacobian;
22///export List;
23///export log;
24///export Log;
25///export LogToTerm;
26///export MantissaAndExponent;
27export minimalize;
28export Minimalize;
29export minimalized;
30export Minimalized;
31///export Mod2Rat;
32///export MinGensGeneral;
33export NewRingFp;
34///export Poincare;
35export PreImage;
36export PrimaryDecomposition0;
37///export rank;
38///export Rank;
39export ReadExpr;
40///export RingSet;
41export SubalgebraRepr;
42export sylvester;
43export TmpNBM;
44export TensorMat;
45export UniversalGroebnerBasis;
46///export WeightsMatrix;
47
48----- OBSOLETE ------
49export isqrt;
50export CompleteToOrd;
51
52----------------------------------------------------------------------
53
54--  CallCount := Record[];  -- to reduce number of warnings
55
56-- // ADDED: April 2014
57-- // SUGGESTED EXPIRATION DATE: April 2015
58-- Define List(M)
59--   If type(M) <> MAT Then
60--     error("\"List\" not implemented for type "+sprint(type(M)));
61--   EndIf;
62-- --  if not("List" IsIn Fields($.CallCount)) then
63-- --    $.CallCount.List := 0;
64--   PrintLn "--> WARNING: List(MATRIX) works but is obsolescent (from CoCoA-5.1.0).";
65--   PrintLn "--> WARNING: Please use \"GetRows(MATRIX)\" to get rid of this message.";
66-- --  endif;
67-- --  incr(ref $.CallCount.List);
68--   Return GetRows(M);
69-- EndDefine; -- List
70
71
72-- // ADDED April 2014
73--   // Suggested EXPIRATION DATE: April 2015
74-- Define Mod2Rat(res, mod, DenomBound)
75--   PrintLn "--> WARNING: Mod2Rat is obsolescent (from CoCoA-5.1.0).";
76--   PrintLn "--> WARNING: Please use RatReconstructWithBounds instead.";
77--   NumerBound := div(mod,2*DenomBound);
78--   ans := RatReconstructWithBounds(0,NumerBound, DenomBound, [res], [mod]);
79--   If ans.failed Then Return 0; EndIf;
80--   Return ans.ReconstructedRat;
81-- EndDefine; -- Mod2Rat
82
83
84-- // renamed to adj
85-- // ADDED March 2015
86-- // Suggested expiration date: March 2016
87-- define adjoint(M)
88--   PrintLn "--> WARNING: adjoint is obsolescent (from CoCoA-5.1.3); use adj instead";
89--   return adj(M);
90-- enddefine; -- adjoint
91
92
93-- // Was in approx.cpkg5
94-- // ADDED April 2014
95-- // Suggested EXPIRATION date: April 2015
96-- // Update entry for "FloatApprox" when you delete this fn!!
97-- Define FloatApprox10(N, RelativeError)
98--   PrintLn "--> WARNING: FloatApprox10 is obsolescent (from CoCoA-5.1.0); use FloatApprox (binary) instead";
99--   If type(N) <> INT And type(N) <> RAT Then error("FloatApprox10: first argument must be rational"); EndIf;
100--   If type(RelativeError) <> INT And type(RelativeError) <> RAT Then
101--     error("FloatApprox10: second argument must be rational");
102--   EndIf;
103--   If RelativeError <= 0 Or RelativeError > 0.1 Then RelativeError := 0.1; EndIf;
104--   If N = 0 Then Return 0; EndIf;
105--   Ndigits := 1;
106--   Power := 1/5;
107--   While Power > RelativeError Do
108--     Power := Power/10;
109--     incr(ref Ndigits);
110--   EndWhile;
111--   Tmp := MantissaAndExponent(N, Ndigits);
112--   Return Tmp.Mantissa*10^(Tmp.Exponent - Ndigits + 1);
113-- EndDefine; -- FloatApprox10
114
115
116-- // Was in float.cpkg5
117-- // ADDED April 2014
118-- // Suggested EXPIRATION date: April 2015
119-- Define MantissaAndExponent(X, SigFig)
120--   PrintLn "--> WARNING: MantissaAndExponent is obsolescent (from CoCoA-5.1.0).";
121--   PrintLn "--> WARNING: Please use MantissaAndExponent10 instead.";
122--   Return MantissaAndExponent10(X, SigFig);
123-- EndDefine; -- MantissaAndExponent
124
125
126-- // Was built-in
127-- // ADDED May 2014
128-- // Suggested EXPIRATION date: May 2015
129-- Define Functions(str)
130--   PrintLn "--> WARNING: \"Functions\" is obsolete; instead please use the \"describe\" command.";
131-- EndDefine; -- Functions
132
133
134-- // Was in coclib.cpkg5
135-- // ADDED May 2014
136-- // Suggested EXPIRATION date: May 2016
137-- Define Comp(...)
138--   TopLevel ERR;
139--   PrintLn "--> WARNING: \"Comp\" is obsolete (from CoCoA-5.1.0); instead please";
140--   PrintLn "--> WARNING: use [..] for indexing, or the field selector operator.";
141--   If len(ARGV) = 0 Then error(ERR.BAD_PARAMS_NUM); EndIf;
142--   X := ARGV[1];
143--   L := tail(ARGV);
144--   Foreach I In L Do
145--     If (type(X) IsIn [LIST, MODULEELEM, STRING] And type(I)=INT) Or
146--        (type(X)=RECORD And type(I)=STRING)  Then
147--       X := X[I];
148--     Else
149--       If not(type(X) IsIn [LIST, MODULEELEM, STRING, RECORD]) Then
150-- 	error("Comp: first argument must be in [LIST, MODULEELEM, STRING, RECORD]");
151--       Else
152-- 	error("Comp: arguments must be (LIST/MODULEELEM/STRING,INT) or (RECORD,STRING)");
153--       EndIf;
154--     EndIf;
155--   EndForeach;
156--   Return X;
157-- EndDefine;
158
159
160-- // Was in BackwardCompatible.cpkg5
161-- // ADDED July 2014
162-- // Suggested EXPIRATION date: July 2016
163-- Define Poincare(X)
164--   PrintLn "--> WARNING: \"Poincare\" is obsolescent (from CoCoA-5.1.1)";
165--   PrintLn "--> WARNING: use \"HilbertSeries\" instead.";
166--   Return HilbertSeries(X);
167-- EndDefine;
168
169-- // Was in BackwardCompatible.cpkg5
170-- // ADDED July 2014
171-- // Suggested EXPIRATION date: July 2016
172-- Define Hilbert(X)
173--   PrintLn "--> WARNING: \"Hilbert\" is obsolescent (from CoCoA-5.1.1)";
174--   PrintLn "--> WARNING: use \"HilbertFn\" instead.";
175--   Return HilbertFn(X);
176-- EndDefine;
177
178-- // Was in BackwardCompatible.cpkg5
179-- // ADDED July 2014
180-- // Suggested EXPIRATION date: July 2016
181-- Define AffPoincare(M)
182--   PrintLn "--> WARNING: \"AffPoincare\" is obsolescent (from CoCoA-5.1.1)";
183--   PrintLn "--> WARNING: use \"AffHilbertSeries\" instead.";
184--   Return AffHilbertSeries(M);
185-- EndDefine;
186
187-- // Was in BackwardCompatible.cpkg5
188-- // ADDED July 2014
189-- // Suggested EXPIRATION date: July 2016
190-- Define AffHilbert(...)
191--   PrintLn "--> WARNING: \"AffHilbert\" is obsolescent (from CoCoA-5.1.1)";
192--   PrintLn "--> WARNING: use \"AffHilbertFn\" instead.";
193--   Return AffHilbertFn(...);
194-- EndDefine;
195
196-- // builtin function: insert
197-- // ADDED July 2014
198-- // Suggested EXPIRATION date: July 2016
199
200
201-- // Was builtin
202-- // ADDED July 2014
203-- // Suggested EXPIRATION date: July 2016
204-- Define WeightsMatrix(R)
205--   PrintLn "--> WARNING: \"WeightsMatrix\" is obsolescent (from CoCoA-5.1.1)";
206--   PrintLn "--> WARNING: use \"GradingMat\" instead.";
207--   Return GradingMat(R);
208-- EndDefine;
209
210
211-- // ADDED May 2015
212-- // Suggested EXPIRATION date: May 2017
213-- Define rank(M)
214--   PrintLn "--> WARNING: \"rank\" is obsolescent (from CoCoA-5.1.2)";
215--   PrintLn "--> WARNING: use \"rk\" instead.";
216--   Return rk(M);
217-- EndDefine;
218
219-- // ADDED May 2015
220-- // Suggested EXPIRATION date: May 2017
221-- Define Rank(M)
222--   PrintLn "--> WARNING: \"Rank\" is obsolescent (from CoCoA-5.1.2)";
223--   PrintLn "--> WARNING: use \"rk\" instead.";
224--   Return rk(M);
225-- EndDefine;
226
227-- // ADDED June 2015
228-- // Suggested EXPIRATION date: June 2017
229-- Define RingSet(M)
230--   PrintLn "--> WARNING: \"RingSet\" is obsolescent (from CoCoA-5.1.2)";
231--   PrintLn "--> WARNING: use \"RingsOf\" instead.";
232--   Return RingsOf(M);
233-- EndDefine;
234
235-- // ADDED May 2015
236-- // Suggested EXPIRATION date: May 2017
237-- Define MinGensGeneral(M)
238--   PrintLn "--> WARNING: \"MinGensGeneral\" is obsolescent (from CoCoA-5.1.2)";
239--   PrintLn "--> WARNING: use \"MinSubsetOfGens\" instead.";
240--   Return MinSubsetOfGens(M);
241-- EndDefine;
242
243-- // Was in BackwardCompatible.cpkg5
244-- // ADDED July 2015
245-- // Suggested EXPIRATION date: July 2017
246-- Define PrimaryPoincare(I, Q)
247--   PrintLn "--> WARNING: \"PrimaryPoincare\" is obsolescent (from CoCoA-5.1.2)";
248--   PrintLn "--> WARNING: use \"PrimaryHilbertSeries\" instead.";
249--   Return PrimaryHilbertSeries(I, Q);
250-- EndDefine;
251
252-- // Was in BackwardCompatible.cpkg5
253-- // ADDED July 2015
254-- // Suggested EXPIRATION date: July 2017
255-- Define ID(R)
256--   PrintLn "--> WARNING: \"ID\" is obsolescent (from CoCoA-5.1.2)";
257--   PrintLn "--> WARNING: use \"RingID\" instead.";
258--   Return RingID(R);
259-- EndDefine;
260
261-- // -------- CoCoA-5.1.3 ----------------------------------------------
262-- // log/Log added Sept 2015.
263-- // Suggested expiration date: Jan 2018
264-- define log(t)
265--   PrintLn "--> WARNING: \"log\" is obsolescent (from CoCoA-5.1.3)";
266--   PrintLn "--> WARNING: use \"exponents\" instead.";
267--   return exponents(t);
268-- enddefine; -- log
269
270-- define Log(t)
271--   PrintLn "--> WARNING: \"Log\" is obsolescent (from CoCoA-5.1.3)";
272--   PrintLn "--> WARNING: use \"exponents\" instead.";
273--   return exponents(t);
274-- enddefine; -- Log
275
276
277-- // LogToTerm added Sept 2015.
278-- // Suggested expiration date: Jan 2018
279-- define LogToTerm(P, expv)
280--   PrintLn "--> WARNING: \"LogToTerm\" is obsolescent (from CoCoA-5.1.3)";
281--   PrintLn "--> WARNING: use \"MakeTerm\" instead.";
282--   return MakeTerm(P, expv);
283-- enddefine; -- LogToTerm
284
285
286-- // ILogBase added Nov 2015
287-- // Suggested expiration date: Jan 2018
288-- define ILogBase(N,base)
289--   PrintLn "--> WARNING: \"ILogBase\" is obsolescent (from CoCoA-5.1.3)";
290--   PrintLn "--> WARNING: use \"FloorLogBase\" or \"FloorLog2\" or \"FloorLog10\" instead.";
291--   return FloorLogBase(N,base);
292-- enddefine; -- ILogBase
293
294
295// iroot added Apr 2019
296// Suggested expiration date: Jan 2022
297define iroot(N,R)
298  PrintLn "--> WARNING: \"iroot\" is obsolescent from CoCoA-5.3.0 2020";
299  PrintLn "--> WARNING: use \"FloorRoot\" instead.";
300  if N < 0 then error("iroot: negative args no longer accepted"); endif
301  return FloorRoot(N,R);
302enddefine; -- iroot
303// Next line from BackwardCompatible
304Define Iroot(N,R)    Return iroot(N,R); EndDefine;
305
306
307-- // isqrt added Nov 2015
308-- // Suggested expiration date: Jan 2018
309-- define isqrt(N)
310--   PrintLn "--> WARNING: \"isqrt\" is obsolescent (from CoCoA-5.1.3)";
311--   PrintLn "--> WARNING: use \"FloorSqrt\" instead.";
312--   return FloorSqrt(N);
313-- enddefine; -- isqrt
314
315Define isqrt(...)
316  error("\"isqrt\" is OBSOLETE: use \"FloorSqrt\" instead");
317EndDefine;
318
319-- // CompleteToOrd added Jan 2016
320-- // Suggested expiration date: Jan 2018
321-- define CompleteToOrd(M)
322--   PrintLn "--> WARNING: \"CompleteToOrd\" is obsolescent (from CoCoA-5.1.3)";
323--   PrintLn "--> WARNING: use \"MakeTermOrd\" instead.";
324--   return MakeTermOrd(M);
325-- enddefine; -- CompleteToOrd
326
327Define CompleteToOrd(...)
328  error("\"CompleteToOrd\" is OBSOLETE: use \"MakeTermOrd\" instead");
329EndDefine;
330
331
332// from CoCoA-5.2.0 -------------------------------------------------------
333
334// added Jul 2016
335// Suggested expiration date: May 2019
336define AllReducedGroebnerBases(I)
337  PrintLn "--> WARNING: \"AllReducedGroebnerBases\" is obsolescent from CoCoA-5.2.0 2017";
338  PrintLn "--> WARNING: use \"GroebnerFanIdeals\" instead.";
339  return GroebnerFanIdeals(I);
340enddefine; -- AllReducedGroebnerBases
341
342// added Jul 2016
343// Suggested expiration date: May 2019
344define UniversalGroebnerBasis(I)
345  println "--> WARNING: \"UniversalGroebnerBasis\" is obsolescent from CoCoA-5.2.0 2017";
346  println "--> WARNING: use \"UniversalGBasis\" instead.";
347  return UniversalGBasis(I);
348enddefine; -- UniversalGroebnerBasis
349
350// added Jul 2016
351// Suggested expiration date: May 2019
352define HomogElimMat(M, ElimInds)
353  println "--> WARNING: \"HomogElimMat\" is obsolescent from CoCoA-5.2.0 2017";
354  println "--> WARNING: use \"ElimHomogMat(ElimInds, M)\" instead.";
355  return ElimHomogMat(ElimInds, M);
356enddefine; -- HomogElimMat
357
358
359// added march 2017
360// Suggested expiration date: May 2019
361define TmpNBM(P, pts, toler)
362  println "--> WARNING: \"TmpNBM\" is obsolescent from CoCoA-5.2.0 2017";
363  println "--> WARNING: use \"ApproxPointsNBM(P, pts, toler)\" instead.";
364  return ApproxPointsNBM(P, pts, toler);
365enddefine; -- TmpNBM
366
367// added april 2017
368// Suggested expiration date: May 2019
369define Bin(A,B)
370  println "--> WARNING: \"Bin\" is obsolescent from CoCoA-5.2.0 2017";
371  println "--> WARNING: use \"binomial(A,B)\" instead.";
372  return binomial(A,B);
373enddefine; -- Bin
374
375// added april 2017
376// Suggested expiration date: May 2019
377define Der(A,B)
378  println "--> WARNING: \"Der\" is obsolescent from CoCoA-5.2.0 2017";
379  println "--> WARNING: use \"deriv(A,B)\" instead.";
380  return deriv(A,B);
381enddefine; -- Der
382
383// added april 2017
384// Suggested expiration date: May 2019
385define ReadExpr(R,str)
386  println "--> WARNING: \"ReadExpr\" is obsolescent from CoCoA-5.2.0 2017";
387  println "--> WARNING: use \"RingElem(R,str)\" instead.";
388  return RingElem(R,str);
389enddefine; -- Der
390
391// added May 2017
392// suggested expiration date; AS SOON AS POSSIBLE!!!
393-- Rand() returns a random integer  --> removed
394-- Rand(X,Y) returns a random integer between X and Y  --> in BackwardCompatible
395
396
397define PreImage(phi,y)
398  println "--> WARNING: \"PreImage\" is obsolete";
399  println "--> WARNING: use \"preimage0\" instead";
400  return $HomomorphismFns.preimage_OLD(phi,y);
401EndDefine; -- PreImage
402
403
404// Added Nov 2017
405// suggested expiration date: Nov 2019
406Define Fact(N)
407  println "--> WARNING: \"Fact\" is obsolescent";
408  println "--> WARNING: use \"factorial\" instead";
409  Return factorial(N);
410EndDefine;
411
412// Added Nov 2017
413// suggested expiration date: Nov 2019
414Define Factorial(N)
415  println "--> WARNING: \"Factorial\" is obsolescent";
416  println "--> WARNING: use \"factorial\" instead";
417  Return factorial(N);
418EndDefine;
419
420-- CoCoA-5.2.2 -------------------------------------------------------------
421
422// added Sept 2017
423// Suggested expiration date: Sept 2019
424define minimalized(I)
425  println "--> WARNING: \"minimalized\" obsolescent from CoCoA-5.2.2 2018";
426  if type(I) = IDEAL then
427    println "--> WARNING: use \"IdealOfMinGens(I)\" instead.";
428    return IdealOfMinGens(I);
429  else // MODULE
430    println "--> WARNING: use \"SubmoduleOfMinGens(I)\" instead.";
431    return SubmoduleOfMinGens(I);
432  endif;
433enddefine; -- minimalized
434
435
436// added Sept 2017
437// Suggested expiration date: Sept 2019
438define minimalize(ref I)
439  println "--> WARNING: \"minimalize\" obsolescent from CoCoA-5.2.2 2018";
440  if type(I) = IDEAL then
441    println "--> WARNING: use \"I := IdealOfMinGens(I)\" instead.";
442    I := IdealOfMinGens(I);
443  else // MODULE
444    println "--> WARNING: use \"M := SubmoduleOfMinGens(M)\" instead.";
445    M := SubmoduleOfMinGens(I);
446  endif;
447enddefine; -- minimalize
448
449Define Minimalize(ref I) minimalize(ref I); EndDefine;
450Define Minimalized(I) Return minimalized(ref I); EndDefine;
451
452
453// added Sept 2017
454// Suggested expiration date: Sept 2019
455define SubalgebraRepr(...)
456  println "--> WARNING: \"SubalgebraRepr\" obsolescent from CoCoA-5.2.2 2018";
457  println "--> WARNING: use \"preimage0 / ker\" of \"SubalgebraHom(R, L)\" instead.";
458  if not(len(ARGV) isin [2,3]) then error("2 or 3 arguments"); endif;
459  if len(ARGV) = 3 then
460    P := ARGV[1];
461    f := ARGV[2];
462    L := ARGV[3];
463    phi := SubalgebraHom(ARGV[1], ARGV[3]);
464  endif;
465  if len(ARGV) = 2 then
466    f := ARGV[1];
467    L := ARGV[2];
468    P := NewPolyRing(CoeffRing(RingOf(L[1])), SymbolRange("x",1,len(L)));
469    phi := SubalgebraHom(P, L);
470  endif;
471  PI := preimage0(phi, f);
472  return record[
473		IsInImage := IsZero(f) or not(IsZero(PI)),
474		OnePreImage := PI,
475		ker := ker(phi)
476		];
477enddefine; -- SubalgebraRepr
478
479-- CoCoA-5.2.4 -------------------------------------------------------------
480// Added Apr 2018
481// suggested expiration date: Apr 2020
482Define FactorAlgExt(f)
483  println "--> WARNING: \"FactorAlgExt\" obsolescent from CoCoA-5.2.4 2018";
484  println "--> WARNING: use \"factor\" instead";
485  Return factor(f);
486EndDefine;
487
488// Added Apr 2018
489// suggested expiration date: Apr 2020
490Define PrimaryDecomposition0(I)
491  println "--> WARNING: \"PrimaryDecomposition0\" obsolescent from CoCoA-5.2.4 2018";
492  println "--> WARNING: use \"PrimaryDecomposition\" instead";
493  Return PrimaryDecomposition(I);
494EndDefine;
495
496-- CoCoA-5.2.6 -- not public --------------------------------------------
497
498// Added Aug 2018  ---> no public version until 2020?
499// suggested expiration date: Aug 2020
500define NewRingFp(N)
501  println "--> WARNING: \"NewRingFp\" obsolescent from CoCoA-5.3.0 2020";
502  println "--> WARNING: use \"NewZZmod\" instead";
503  if type(N) <> INT or N < 2 or not(IsProbPrime(N)) then error("NewRingFp: BAD ARG, but use NewZZmod instead!"); endif;
504  return NewZZmod(N);
505enddefine;
506
507define sylvester(f,g,x)
508  println "--> WARNING: \"sylvester\" obsolescent from CoCoA-5.3.0 2020";
509  println "--> WARNING: use \"SylvesterMat\" instead";
510  if type(f) <> RINGELEM or type(g) <> RINGELEM or type(x) <> RINGELEM then error("sylvester: args must be RINGELEM"); endif;
511  return SylvesterMat(f,g,x);
512enddefine; -- sylvester
513
514define jacobian(...)
515  println "--> WARNING: \"jacobian\" obsolescent from CoCoA-5.3.0 2020";
516  println "--> WARNING: use \"JacobianMat\" instead";
517  return JacobianMat(...);
518enddefine; -- jacobian
519
520-- CoCoA-5.3.0 -------------------------------------------------------------
521
522// Added Jan 2020
523// suggested expiration date: Jan 2022
524define ArrDerMod(Q)
525  println "--> WARNING: \"ArrDerMod\" obsolescent from CoCoA-5.3.0 2020";
526  println "--> WARNING: use \"ArrDerModule\" instead";
527  return ArrDerModule(Q);
528enddefine;
529
530// Added Jan 2020
531// suggested expiration date: Jan 2022
532define MultiArrDerMod(MultiA)
533  println "--> WARNING: \"MultiArrDerMod\" obsolescent from CoCoA-5.3.0 2020";
534  println "--> WARNING: use \"MultiArrDerModule\" instead";
535  return MultiArrDerModule(MultiA);
536enddefine;
537
538// Added June 2020
539// suggested expiration date: June 2022
540define TensorMat(M,N)
541  println "--> WARNING: \"TensorMat\" obsolescent from CoCoA-5.3.4 2020";
542  println "--> WARNING: use \"KroneckerProd\" instead";
543  return KroneckerProd(M,N);
544enddefine;
545
546endpackage; -------------------------------------------------------------
547