1  //   Copyright (c) 2012-2016 Giovanni Lagorio. John Abbott, Anna M. Bigatti
2 //
3 //   This file is part of the source of CoCoALib, the CoCoA Library.
4 //
5 //   CoCoALib is free software: you can redistribute it and/or modify
6 //   it under the terms of the GNU General Public License as published by
7 //   the Free Software Foundation, either version 3 of the License, or
8 //   (at your option) any later version.
9 //
10 //   CoCoALib is distributed in the hope that it will be useful,
11 //   but WITHOUT ANY WARRANTY; without even the implied warranty of
12 //   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 //   GNU General Public License for more details.
14 //
15 //   You should have received a copy of the GNU General Public License
16 //   along with CoCoALib.  If not, see <http://www.gnu.org/licenses/>.
17 
18 #include "BuiltInOneLiners.H"
19 #include "CoCoALibSupplement.H"
20 
21 using namespace std;
22 using namespace boost;
23 using namespace boost::iostreams;
24 using namespace CoCoA::AST;
25 using namespace CoCoA::LexerNS;
26 using namespace CoCoA::ParserNS;
27 
28 namespace CoCoA {
29 namespace InterpreterNS {
30 
31 //  extern std::vector<NameFunPair> builtIns; // declared in BuiltInFunctions.C
32 
33 ////// functions on BIGINT
34 DECLARE_COCOALIB_FUNCTION1(factorial, INT)
35 DECLARE_COCOALIB_FUNCTION1(primorial, INT)
36 DECLARE_COCOALIB_FUNCTION1(fibonacci, INT)
37 DECLARE_COCOALIB_FUNCTION1(FloorSqrt, INT) // AMB
38 DECLARE_COCOALIB_FUNCTION1(NextProbPrime, INT) // AMB
39 DECLARE_COCOALIB_FUNCTION1(PrevProbPrime, INT) // JAA
40 DECLARE_COCOALIB_FUNCTION1(SmallestNonDivisor, INT) // JAA
41 DECLARE_COCOALIB_FUNCTION2(FactorMultiplicity, INT, INT) // JAA
42 DECLARE_COCOALIB_FUNCTION2(RoundDiv, INT, INT) // JAA
43 DECLARE_COCOALIB_FUNCTION2(FloorRoot, INT, INT) // AMB
44 DECLARE_COCOALIB_FUNCTION3(PowerMod, INT, INT, INT)
45 DECLARE_COCOALIB_FUNCTION2(KroneckerSymbol, INT, INT)
46 DECLARE_COCOALIB_FUNCTION1(IsEven, INT) // AMB
47 DECLARE_COCOALIB_FUNCTION1(IsOdd, INT) // AMB
48 DECLARE_COCOALIB_FUNCTION1(IsSquare, INT) // JAA
49 DECLARE_COCOALIB_FUNCTION1(IsPrime, INT) // AMB
50 DECLARE_COCOALIB_FUNCTION1(IsProbPrime, INT) // AMB
51 DECLARE_COCOALIB_FUNCTION1(EulerTotient, INT) // JAA
52 DECLARE_COCOALIB_FUNCTION1(PrimitiveRoot, INT) // JAA
53 DECLARE_COCOALIBFORC5_FUNCTION1(NextPrime, INT)
54 DECLARE_COCOALIBFORC5_FUNCTION1(PrevPrime, INT)
55 // see BuiltinFunctions-CoCoALib DECLARE_COCOALIBFORC5_FUNCTION1(reseed, INT)
56 DECLARE_COCOALIBFORC5_FUNCTION2(random, INT, INT)
57 DECLARE_COCOALIBFORC5_FUNCTION1(ContFrac, RAT)
58 DECLARE_COCOALIBFORC5_FUNCTION1(CFApproximants, RAT)
59 DECLARE_COCOALIBFORC5_FUNCTION2(BinomialRepr, INT, INT)
60 DECLARE_COCOALIBFORC5_FUNCTION4(BinomialReprShift, INT, INT, INT, INT)
61 DECLARE_COCOALIBFORC5_FUNCTION1(NumPartitions, INT)
62 
63 ////// functions on BIGRAT
64 DECLARE_COCOALIB_FUNCTION2(CFApprox, RAT, RAT) // AMB
65 
66 ////// functions on RINGELEM
67 DECLARE_COCOALIB_FUNCTION1(CanonicalRepr, RINGELEM) // AMB
68 DECLARE_COCOALIB_FUNCTION1(ClearDenom, RINGELEM) // AMB
69 //DECLARE_COCOALIB_FUNCTION1(CommonDenom, RINGELEM) // --> BuiltinFunctions
70 DECLARE_COCOALIB_FUNCTION1(ContentFreeFactor, RINGELEM)
71 //DECLARE_COCOALIB_FUNCTION1(IndetsProd, RINGELEM) // --> BuiltinFunctions
72 DECLARE_COCOALIB_FUNCTION1(IsConstant, RINGELEM) // AMB
73 DECLARE_COCOALIB_FUNCTION1(IsIndet, RINGELEM) // AMB
74 DECLARE_COCOALIB_FUNCTION1(IsIndetPosPower, RINGELEM) // AMB
75 DECLARE_COCOALIB_FUNCTION1(IsEvenPoly, RINGELEM) // JAA
76 DECLARE_COCOALIB_FUNCTION1(IsOddPoly, RINGELEM)  // JAA
77 DECLARE_COCOALIB_FUNCTION1(IsInvertible, RINGELEM)
78 DECLARE_COCOALIB_FUNCTION1(IsIrred, RINGELEM)
79 DECLARE_COCOALIB_FUNCTION1(IsMonomial, RINGELEM) // AMB
80 DECLARE_COCOALIB_FUNCTION1(IsPthPower, RINGELEM) // JAA
81 DECLARE_COCOALIB_FUNCTION1(IsZeroDivisor, RINGELEM) // AMB
82 // DECLARE_COCOALIB_FUNCTION1(LF, RINGELEM) // AMB -- also for ideals
83 DECLARE_COCOALIB_FUNCTION1(PthRoot, RINGELEM) // JAA
84 DECLARE_COCOALIB_FUNCTION1(content, RINGELEM) // AMB
85 DECLARE_COCOALIB_FUNCTION1(FixedDivisor, RINGELEM) // AMB
86 DECLARE_COCOALIB_FUNCTION1(factor, RINGELEM)
87 //DECLARE_COCOALIB_FUNCTION1(factor_AlgExtn, RINGELEM)
88 DECLARE_COCOALIB_FUNCTION1(graeffe, RINGELEM)
89 DECLARE_COCOALIB_FUNCTION1(graeffe3, RINGELEM)
90 DECLARE_COCOALIB_FUNCTION1(CoeffHeight, RINGELEM)
91 DECLARE_COCOALIB_FUNCTION1(RootBound_Birkhoff, RINGELEM)
92 DECLARE_COCOALIB_FUNCTION1(RootBound_Cauchy, RINGELEM)
93 DECLARE_COCOALIB_FUNCTION1(RootBound_Lagrange, RINGELEM)
94 DECLARE_COCOALIB_FUNCTION1(RootBound_LMS, RINGELEM)
95 DECLARE_COCOALIB_FUNCTION1(RootBound_simple, RINGELEM)
96 DECLARE_COCOALIB_FUNCTION1(NumTerms, RINGELEM)
97 DECLARE_COCOALIB_FUNCTION1(SqFreeFactor, RINGELEM)
98 DECLARE_COCOALIB_FUNCTION1(NumRealRoots, RINGELEM)
99 DECLARE_COCOALIB_FUNCTION1(SturmSeq, RINGELEM)
100 DECLARE_COCOALIB_FUNCTION1(monic, RINGELEM) // AMB //if LC(f)==1???
101 //DECLARE_COCOALIB_FUNCTION2(IsDivisible, RINGELEM, RINGELEM) //202002 also for INT
102 DECLARE_COCOALIB_FUNCTION2(deriv, RINGELEM, RINGELEM) // AMB
103 // DECLARE_COCOALIB_FUNCTION2(power, RINGELEM, INT) // 20191209 impl. in cpkg5
104 DECLARE_COCOALIB_FUNCTION2(RatReconstructPoly, RINGELEM, INT) // AMB
105 DECLARE_COCOALIB_FUNCTION2(RingElems, RING, STRING)
106 // DECLARE_COCOALIB_FUNCTION2(ReadExpr, RING, STRING) --> RingElem(R, s)
107 // DECLARE_COCOALIB_FUNCTION3(MinPolyQuot, RINGELEM, IDEAL, RINGELEM) to BIFunc
108 DECLARE_COCOALIB_FUNCTION3(MinPolyQuotDef, RINGELEM, IDEAL, RINGELEM)
109 DECLARE_COCOALIB_FUNCTION3(MinPolyQuotDefLin, RINGELEM, IDEAL, RINGELEM)
110 DECLARE_COCOALIB_FUNCTION3(MinPolyQuotElim, RINGELEM, IDEAL, RINGELEM)
111 DECLARE_COCOALIB_FUNCTION3(MinPolyQuotMat, RINGELEM, IDEAL, RINGELEM)
112 DECLARE_COCOALIBFORC5_FUNCTION1(IsTerm, RINGELEM)
113 DECLARE_COCOALIBFORC5_FUNCTION1(monomials, RINGELEM)
114 DECLARE_COCOALIBFORC5_FUNCTION1(support, RINGELEM)
115 DECLARE_COCOALIBFORC5_FUNCTION2(CoeffListWRT, RINGELEM, RINGELEM) // AMB+JAA
116 DECLARE_COCOALIBFORC5_FUNCTION2(CoeffListWRTSupport, RINGELEM, RINGELEM) // JAA
117 DECLARE_COCOALIBFORC5_FUNCTION2(CoeffOfTerm, RINGELEM, RINGELEM)
118 DECLARE_COCOALIBFORC5_FUNCTION2(DensePoly, RING, INT) // AMB
119 DECLARE_COCOALIBFORC5_FUNCTION2(IsCoprime, RINGELEM, RINGELEM) // AMB
120 DECLARE_COCOALIBFORC5_FUNCTION2(SmoothFactor, INT, INT)
121 DECLARE_COCOALIBFORC5_FUNCTION2(HomogCompt, RINGELEM, INT)
122 
123 ////// functions on MODULEELEM
124 DECLARE_COCOALIB_FUNCTION1(FirstNonZero, MODULEELEM) // AMB
125 DECLARE_COCOALIBFORC5_FUNCTION1(FirstNonZeroPosn, MODULEELEM) // AMB
126 DECLARE_COCOALIBFORC5_FUNCTION1(LPosn, MODULEELEM) // AMB
127 
128 ////// functions on RING (and PolyRing)
129 DECLARE_COCOALIB_FUNCTION0(RingQQ)
130 DECLARE_COCOALIB_FUNCTION0(RingZZ)
131 DECLARE_COCOALIB_FUNCTION1(BaseRing, RING)
132 DECLARE_COCOALIB_FUNCTION1(characteristic, RING)
133 DECLARE_COCOALIB_FUNCTION1(CoeffEmbeddingHom, RING)
134 DECLARE_COCOALIB_FUNCTION1(CoeffRing, RING)
135 DECLARE_COCOALIB_FUNCTION1(DefiningIdeal, RING)
136 DECLARE_COCOALIB_FUNCTION1(EmbeddingHom, RING)
137 DECLARE_COCOALIB_FUNCTION1(GradingDim, RING) // AMB
138 DECLARE_COCOALIB_FUNCTION1(GradingMat, RING) // AMB
139 DECLARE_COCOALIB_FUNCTION1(HVector, RING) // AMB
140 DECLARE_COCOALIB_FUNCTION1(HilbertPoly, RING) // AMB
141 DECLARE_COCOALIB_FUNCTION1(RingID, RING)
142 DECLARE_COCOALIB_FUNCTION1(HasLex, RING)
143 DECLARE_COCOALIB_FUNCTION1(HasMatrixOrdering, RING)
144 DECLARE_COCOALIB_FUNCTION1(HasPositiveGrading, RING) // AMB 2019-09
145 DECLARE_COCOALIB_FUNCTION1(HasStdDegLex, RING)
146 DECLARE_COCOALIB_FUNCTION1(HasStdDegRevLex, RING)
147 DECLARE_COCOALIB_FUNCTION1(IsCommutative, RING)
148 DECLARE_COCOALIB_FUNCTION1(IsField, RING)
149 DECLARE_COCOALIB_FUNCTION1(IsFiniteField, RING)
150 DECLARE_COCOALIB_FUNCTION1(IsFractionField, RING)
151 DECLARE_COCOALIB_FUNCTION1(IsIntegralDomain, RING)
152 DECLARE_COCOALIB_FUNCTION1(IsOrderedDomain, RING)
153 DECLARE_COCOALIB_FUNCTION1(IsPolyRing, RING)
154 DECLARE_COCOALIB_FUNCTION1(IsQQ, RING)
155 DECLARE_COCOALIB_FUNCTION1(IsQuotientRing, RING)
156 DECLARE_COCOALIB_FUNCTION1(IsStdGraded, RING)
157 DECLARE_COCOALIB_FUNCTION1(IsTrueGCDDomain, RING)
158 DECLARE_COCOALIB_FUNCTION1(IsZZ, RING)
159 DECLARE_COCOALIB_FUNCTION1(LogCardinality, RING)
160 DECLARE_COCOALIB_FUNCTION1(NewFractionField, RING)  // AMB
161 DECLARE_COCOALIB_FUNCTION1(NewZZmod, INT)   // JAA
162 DECLARE_COCOALIB_FUNCTION2(NewRingFqLog, INT, INT)  // AMB
163 DECLARE_COCOALIB_FUNCTION2(NewRingFqVec, INT, INT)  // AMB
164 DECLARE_COCOALIB_FUNCTION1(NumIndets, RING)
165 DECLARE_COCOALIB_FUNCTION1(one, RING)
166 DECLARE_COCOALIB_FUNCTION1(OrdMat, RING) // AMB
167 DECLARE_COCOALIB_FUNCTION1(owner, RINGELEM)
168 //DECLARE_COCOALIB_FUNCTION1(zero, RING)  // now also for modules
169 //DECLARE_COCOALIB_FUNCTION1(NewWeylAlgebra, ..)  // AMB
170 //DECLARE_COCOALIB_FUNCTION2(NewQuotientRing, RING, IDEAL)  // moved to BIF
171 DECLARE_COCOALIB_FUNCTION1(QQEmbeddingHom, RING)
172 DECLARE_COCOALIBFORC5_FUNCTION1(RingQQt, INT) // AMB
173 
174 ////// functions for RINGHOM
175 DECLARE_COCOALIB_FUNCTION1(IdentityHom, RING) // AMB
176 DECLARE_COCOALIB_FUNCTION1(QuotientingHom, RING) // AMB
177 DECLARE_COCOALIB_FUNCTION1(codomain, RINGHOM) // AMB
178 DECLARE_COCOALIB_FUNCTION1(domain, RINGHOM) // AMB
179 DECLARE_COCOALIB_FUNCTION2(CanonicalHom, RING, RING) // GL
180 DECLARE_COCOALIB_FUNCTION1(IsInjective, RINGHOM) // JAA
181 DECLARE_COCOALIB_FUNCTION1(IsSurjective, RINGHOM) // JAA
182 DECLARE_COCOALIB_FUNCTION1(ker, RINGHOM) // JAA
183 DECLARE_COCOALIB_FUNCTION1(ker_H, RINGHOM) // JAA
184 DECLARE_COCOALIB_FUNCTION2(ChainCanonicalHom, RING, RING) // AMB
185 DECLARE_COCOALIB_FUNCTION2(LiftPolyFromFpxToQQx, RING, RINGELEM) // AMB
186 
187 ////// functions on MAT
188 //DECLARE_COCOALIB_FUNCTION1(FrobeniusNorm2, MAT) // AMB
189 //DECLARE_COCOALIB_FUNCTION1(OperatorNorm1, MAT) // AMB
190 //DECLARE_COCOALIB_FUNCTION1(OperatorNormInfinity, MAT) // AMB
191 DECLARE_COCOALIB_FUNCTION1(IsAntiSymmetric, MAT) // AMB
192 DECLARE_COCOALIB_FUNCTION1(IsDiagonal, MAT) // AMB
193 DECLARE_COCOALIB_FUNCTION1(IsSymmetric, MAT) // AMB
194 DECLARE_COCOALIB_FUNCTION1(IsTermOrdering, MAT) // AMB
195 DECLARE_COCOALIB_FUNCTION1(LinKer, MAT) // AMB
196 DECLARE_COCOALIB_FUNCTION1(LinKerZZ, MAT) // JAA
197 DECLARE_COCOALIB_FUNCTION1(NumCols, MAT) // AMB
198 DECLARE_COCOALIB_FUNCTION1(NumRows, MAT) // AMB
199 DECLARE_COCOALIB_FUNCTION1(PseudoInverse, MAT) // AMB
200 DECLARE_COCOALIB_FUNCTION1(adj, MAT) // AMB
201 DECLARE_COCOALIB_FUNCTION1(det, MAT) // AMB
202 DECLARE_COCOALIB_FUNCTION1(IsZeroDet, MAT) // JAA
203 DECLARE_COCOALIB_FUNCTION1(DetDirect, MAT) // JAA
204 DECLARE_COCOALIB_FUNCTION1(inverse, MAT) // AMB
205 DECLARE_COCOALIB_FUNCTION1(LawrenceMat, MAT) // AMB 2020-02
206 DECLARE_COCOALIB_FUNCTION1(rref, MAT) // JAA
207 DECLARE_COCOALIB_FUNCTION1(rk, MAT) // AMB
208 DECLARE_COCOALIB_FUNCTION2(ConcatAntiDiag, MAT, MAT) // AMB
209 DECLARE_COCOALIB_FUNCTION2(IdealOfPoints, RING, MAT) // JAA
210 DECLARE_COCOALIB_FUNCTION2(IdealOfProjectivePoints, RING, MAT) // AMB
211 DECLARE_COCOALIB_FUNCTION2(LinSolve, MAT, MAT) // JAA
212 DECLARE_COCOALIB_FUNCTION2(ConcatDiag, MAT, MAT) // AMB
213 DECLARE_COCOALIB_FUNCTION2(ConcatHor, MAT, MAT) // AMB
214 DECLARE_COCOALIB_FUNCTION2(ConcatVer, MAT, MAT) // AMB
215 DECLARE_COCOALIB_FUNCTION2(TensorMat, MAT, MAT) // AMB
216 DECLARE_COCOALIB_FUNCTION4(BlockMat2x2, MAT, MAT, MAT, MAT) // AMB
217 DECLARE_COCOALIBFORC5_FUNCTION1(LexMat, INT)
218 DECLARE_COCOALIBFORC5_FUNCTION1(RevLexMat, INT)
219 DECLARE_COCOALIBFORC5_FUNCTION1(StdDegLexMat, INT)
220 DECLARE_COCOALIBFORC5_FUNCTION1(StdDegRevLexMat, INT)
221 DECLARE_COCOALIBFORC5_FUNCTION1(XelMat, INT)
222 DECLARE_COCOALIBFORC5_FUNCTION1(transposed, MAT)
223 DECLARE_COCOALIBFORC5_FUNCTION2(GetCol, MAT, INT)
224 DECLARE_COCOALIBFORC5_FUNCTION2(GetRow, MAT, INT)
225 DECLARE_COCOALIBFORC5_FUNCTION2(IdentityMat, RING, INT)
226 DECLARE_COCOALIBFORC5_FUNCTION3(NewDenseMat, RING, INT, INT)
227 DECLARE_COCOALIBFORC5_FUNCTION3(ZeroMat, RING, INT, INT)
228 //DECLARE_COCOALIBFORC5_FUNCTION4(FilledMat, RING, INT, INT, RINGELEM) // removed from CoCoALib
229 DECLARE_COCOALIBFORC5_FUNCTION3(ClosePassingPoly, RING, MAT, MAT)
230 
231 ////// functions on IDEAL
232 DECLARE_COCOALIB_FUNCTION1(AlexanderDual, IDEAL) // AMB
233 DECLARE_COCOALIB_FUNCTION1(AreGensMonomial, IDEAL) // AMB
234 DECLARE_COCOALIB_FUNCTION1(AreGensSqFreeMonomial, IDEAL) // AMB
235 DECLARE_COCOALIB_FUNCTION1(DenSigma, IDEAL) // AMB 2018-03
236 DECLARE_COCOALIB_FUNCTION1(DimQuot, IDEAL) // AMB
237 DECLARE_COCOALIB_FUNCTION1(GBasisByHomog, IDEAL) // AMB 2018-08
238 DECLARE_COCOALIB_FUNCTION1(GBasisRealSolve, IDEAL)
239 DECLARE_COCOALIB_FUNCTION1(GBasisSelfSatCore, IDEAL)
240 DECLARE_COCOALIB_FUNCTION1(HasGBasis, IDEAL) // AMB
241 DECLARE_COCOALIB_FUNCTION1(HilbertSeriesQuot, IDEAL) // AMB
242 DECLARE_COCOALIB_FUNCTION1(IdealOfGBasis, IDEAL)  // AMB 2017-02
243 DECLARE_COCOALIB_FUNCTION1(IdealOfMinGens, IDEAL) // AMB 2017-02
244 DECLARE_COCOALIB_FUNCTION1(IsMaximal, IDEAL) // AMB
245 DECLARE_COCOALIB_FUNCTION1(IsPrimary, IDEAL) // AMB 2018-03
246 DECLARE_COCOALIB_FUNCTION1(IsRadical_tmp, IDEAL) // AMB 2018-03
247 DECLARE_COCOALIB_FUNCTION1(IsZeroDim, IDEAL) // AMB
248 DECLARE_COCOALIB_FUNCTION1(MayerVietorisTreeN1, IDEAL)
249 DECLARE_COCOALIB_FUNCTION1(MultiplicityQuot, IDEAL) // AMB
250 //DECLARE_COCOALIB_FUNCTION1(NumGens, IDEAL) now also for modules 2019-03
251 DECLARE_COCOALIB_FUNCTION1(PrimaryDecomposition, IDEAL) // AMB
252 DECLARE_COCOALIB_FUNCTION1(ShapeLemma, IDEAL) // AMB 2018-02
253 //DECLARE_COCOALIB_FUNCTION1(radical_0dim, IDEAL) // AMB 2018-03 -- rm 2019-10
254 DECLARE_COCOALIB_FUNCTION1(radical_tmp, IDEAL) // AMB 2019-10
255 DECLARE_COCOALIB_FUNCTION2(IsSigmaGoodPrime, INT, IDEAL) // AMB
256 DECLARE_COCOALIB_FUNCTION2(MinPowerInIdeal, RINGELEM, IDEAL) // JAA
257 DECLARE_COCOALIB_FUNCTION2(NF, RINGELEM, IDEAL) // AMB
258 DECLARE_COCOALIB_FUNCTION2(colon, IDEAL, IDEAL) // AMB
259 DECLARE_COCOALIB_FUNCTION2(intersect, IDEAL, IDEAL) // AMB
260 //DECLARE_COCOALIB_FUNCTION1(GBasis, IDEAL) now also for modules
261 //DECLARE_COCOALIB_FUNCTION1(MinGens, IDEAL) now also for modules
262 //DECLARE_COCOALIB_FUNCTION1(gens, IDEAL)   now also for modules
263 //DECLARE_COCOALIB_FUNCTION2(IsContained, IDEAL, IDEAL) now also for modules
264 //DECLARE_COCOALIB_FUNCTION2(IsElem, RINGELEM, IDEAL) now also for modules
265 DECLARE_COCOALIBFORC5_FUNCTION1(HilbertNumQuot, IDEAL) // AMB
266 DECLARE_COCOALIBFORC5_FUNCTION1(JanetBasis, IDEAL)
267 DECLARE_COCOALIBFORC5_FUNCTION1(QuotientBasis, IDEAL)
268 DECLARE_COCOALIBFORC5_FUNCTION1(QuotientBasisSorted, IDEAL)
269 
270 ////// functions on MODULE
271 DECLARE_COCOALIB_FUNCTION1(SubmoduleOfMinGens, MODULE) // AMB 2017-09
272 DECLARE_COCOALIBFORC5_FUNCTION2(SubmoduleCols, MODULE, MAT) // AMB
273 DECLARE_COCOALIBFORC5_FUNCTION2(SubmoduleRows, MODULE, MAT) // AMB
274 
275 ////// UTILS
276 DECLARE_COCOALIBFORC5_FUNCTION0(CpuTime)
277 DECLARE_COCOALIBFORC5_FUNCTION0(date)
278 DECLARE_COCOALIBFORC5_FUNCTION0(TimeOfDay)  // time is a keyword (unused)
279 DECLARE_COCOALIB_FUNCTION0(VerbosityLevel)
280 // DECLARE_COCOALIB_FUNCTION0(NewSymbol)
281 // DECLARE_COCOALIB_FUNCTION1(NewSymbols, INT)
282 
283 } // namespace AST
284 } // namespace CoCoA
285