aboutsummaryrefslogtreecommitdiff
path: root/src/algebra
AgeCommit message (Collapse)AuthorFilesLines
2012-05-01 * algebra/integer.spad.pamphlet (Integer): Use %iaddmod, %isubmod,dos-reis2-18/+13
%imulmod. * algebra/si.spad.pamphlet (SingleInteger): Likewise. * interp/c-util.boot (devaluate): Use # in lieu of QVSIZE. * interp/g-opt.boot: %ilfshift and %irshift are now builtin side-effect free operations. * interp/lisp-backend.boot: Translate them. * interp/g-util.boot (mergeSort): Avoid QSDIFFERENCE. * interp/slam.boot: Likewise. * interp/sys-macros.lisp: Likewise. * interp/macros.lisp: Avoid QVMAXINDEX. * interp/vmlisp.lisp (QSDIFFERENCE): Remove. (QSGREATERP): Likewise. (QSLEFTSHIFT): Likewise. (QSLESSP): Likewise. (QSMAX): Likewise. (QSMIN): Likewise. (QSMINUS): Likewise. (QSMINUSP): Likewise. (QSODDP): Likewise. (QSABSVAL): Likewise. (QSPLUS): Likewise. (QSZEROP): Likewise. (QVMAXINDEX): Likewise. (QVSIZE): Likewise. (ZERO?): Likewise.
2012-04-30 * algebra/si.spad.pamphlet (SingleInteger): Use %iaddmod,dos-reis1-4/+7
%isubmod, and %imulmod. * interp/g-opt.boot: These are now builtin side-effect operators. (optIaddmod): New optimizer. Register. (optIsubmod): Likewise. (optImulmod): Likewise. * interp/sys-macros.lisp (QSADDMOD): Remove. (QSDIFMOD): Likewise. (QSMULMOD): Likewise.
2012-04-30 * lisp/core.lisp.in (fixnum?): New.dos-reis1-3/+4
* algebra/sex.spad.pamphlet: Use %float? instead of RNUM. Use %integer? instead of INTP. * interp/g-timer.boot: Use float? instead of RNUMP. * interp/i-coerce.boot: Use fixnum? instead of SINTP or SMINTP. * interp/i-intern.boot: Likewise. * interp/lisp-backend.boot: Likewise. * interp/slam.boot: Likewise. * interp/trace.boot: Likewise. * interp/vmlisp.lisp: Likewise. (INTP): Remove. (BINTP): Likewise. (LESSP): Likewise. (LINTP): Likewise. (MAKESTRING): Likewise. (MAPELT): Likewise. (NUMP): Likewise. (RNUMP): Likewise. (SINTP): Likewise. (SMINTP): Likewise.
2012-03-02 * algebra/catdef.spad.pamphlet (MonoidOperation): Noew CoercibleTodos-reis1-3/+6
SemiGroupOperation T.
2012-02-25 * algebra/catdef.spad.pamphlet (BinaryOperatorCategory): New.dos-reis3-7/+153
(BinaryOperation): Likewise. (IdempotentOperatorCategory): Likewise. (SemiGroupOperatorCategory): Likewise. (SemiGroupOperation): Likewise. (MonoidOperatorCategory): Likewise. (MonoidOperation): Likewise. * algebra/exposed.lsp.pamphlet: Expose them. * algebra/Makefile.in (oa_algebra_layer_0): Include IDEMOPC, SGPOPC, SPGOP, MONOPC, BINOPC. (axiom_algebra_layer_1): Include MONOP.
2012-02-15 * algebra/catdef.spad.pamphlet (Ring): Extends SemiRing.dos-reis3-11/+39
(Dioid): New. Extend OrderedAbelianMonoid and SemiRing. * algebra/exposed.lsp.pamphlet: Expose Dioid.
2012-02-15tidy src/algebra/Makefile.indos-reis1-9/+14
2012-02-12 * algebra/coerce.spad.pamphlet (Type): Redefine as empty Join.dos-reis1-3/+2
* interp/category.boot (Join): Handle empty argument list.
2012-02-07 * algebra/Makefile.in (oa_algebra_layer_0): Include FINITE-.dos-reis1-1/+1
2012-02-07 * interp/lisplib.boot (dbLocateModule): New.dos-reis1-1/+2
(findModule): Use it. Simplify. (loadLib): Tidy. (genericLoadDB): New. (loadDB): Use it. (loadDBIfCan): New. * interp/c-util.boot (lookupDefiningFunction): Give up gracefully if the domain of computation is not compiled yet. * algebra/Makefile.in ($(OUT)/SPADAST.$(FASLEXT)): Require $(OUT)/SUCHTAST.$(FASLEXT).
2012-02-05 * interp/nruncomp.boot (getLocalIndex): Fast track niladicdos-reis2-7/+3
constructors. * algebra/syntax.spad.pamphlet: Miscellaneous cleanup.
2012-02-03 * config/open-axiom.m4 (OPENAXIOM_ALIGNAS_SPECIFIER): New.dos-reis1-0/+2
(OPENAXIOM_CHECK_MISC): Use it. src/ * utils/vm.H: Add more VM data structures. * utils/vm.cc (BasicContext::make_operator): Define. * algebra/Makefile.in (SPADFILES): Include syntax.spad and spad-parser.spad.
2012-01-14 * algebra/catdef.spad.pamphlet (Finite) [random]: Provide defaultdos-reis2-16/+38
implementation. * algebra/boolean.spad.pamphlet (KleeneTrivalentLogic): Now satisfy Finite. Use Maybe Boolean as representation.
2011-12-30 * algebra/fraction.spad.pamphlet (Localize): Tidy.dos-reis1-25/+30
2011-12-27 * algebra/prs.spad.pamphlet (PseudoRemainderSequence): Tidy.dos-reis1-16/+12
2011-12-27 * interp/g-opt.boot (changeVariableDefinitionToStore): Tidy.dos-reis1-1/+3
Remove handling of IF forms as no longer relevant. * algebra/matfuns.spad.pamphlet (MatrixLinearAlgebraFunctions) [rank]: Tidy.
2011-12-27 * algebra/matfuns.spad.pamphletdos-reis1-1/+3
(InnerMatrixLinearAlgebraFunctions) [rank]: Tidy.
2011-12-25 * algebra/rep2.spad.pamphlet (RepresentationPackage2)dos-reis1-2/+3
[areEquivalent?]: Tidy.
2011-12-12 * interp/g-util.boot (liftAassignments!): New.dos-reis1-1/+1
(splitAssignments!): Use it. * algebra/multpoly.spad.pamphlet (SparseMultivariatePolynomial): Fix thinko.
2011-12-11 * interp/g-opt.boot (inlineLocals!): Single-used temporaries should go.dos-reis1-0/+1
(spliceSeqArgs): Splice sequences drapped in %scope cloths too.
2011-12-05 * interp/g-util.boot (splitAssignments): Rework.dos-reis1-1/+1
(spliceSeqArgs): Tidy. * algebra/gdpoly.spad.pamphlet (GeneralDistributedMultivariatePolynomial): Fix thinko.
2011-12-03 * interp/compiler.boot (setqMultiple): Handle lhs and rhs of typedos-reis1-5/+3
Cross instance. * interp/g-util.boot ($DomainNames): Include Cross. * interp/cattable.boot (genCategoryTable): Do not eval Cross. It is bogus to prepopulate the table with builtin functors anyway. * algebra/triset.spad.pamphlet (PolynomialSetUtilitiesPackage)[removeRedundantFactors]: Do not define `c' and `d' in conditional. Make the initializer conditional.
2011-12-03 * interp/g-util.boot (hasNoLeave?): Move from g-opt.boot.dos-reis1-0/+2
(mkLabelled): New. (mkBind): Likewise. * interp/g-opt.boot (groupVariableDefinitions): Use them. * algebra/aggcat.spad.pamphlet (ListAggregate) [merge!]: Declare local variables `r' and `s' before assigning to them.
2011-11-30 * interp/define.boot (registerInlinableDomain): Lose last argument.dos-reis1-30/+36
Recursively nominate constructor argument for inlining. Adjust callers. * interp/c-util.boot: Tidy. * algebra/Makefile.in: Tidy.
2011-11-28 * interp/c-util.boot (inlineDirectCall): Inline a non-side effectdos-reis1-1/+1
free argument in a unary pure function call if it is used exactly once. * algebra/integer.spad.pamphlet (Integer) [reducedSystem]: Fix typo.
2011-11-26 * algebra/indexedp.spad.pamphlet: Avoid direct use or RPLACD.dos-reis2-3/+12
* algebra/poly.spad.pamphlet: Likewise. * interp/define.boot (spadCompileOrSetq): Tidy replacement info. * interp/i-output.boot ($BinaryOperators): New. (binaryInfix?): Tidy.
2011-11-13 * interp/sys-driver.boot (initializeDatabases): Honor --initial-db.dos-reis1-5/+7
(initializeGlobalState): Don't bind $compileDefaultsOnly. * interp/sys-globals.boot ($compileDefaultsOnly): Remove. * interp/define.boot (compDefineCategory): Adjust. (compDefineCategory1): Likewise. (compDefineFunctor1): Clear dbCapsuleDefinitions. * interp/lisplib.boot (compDefineLisplib): Tidy. * interp/daase.lisp (BROWSEOPEN): Use dbSourceFile. (GETDATABASE): Likewise. (LOCALNRLIB): Likewise. (WRITE-BROWSEDB): Likewise. * algebra/Makefile.in (COMPILE_SPAD): Specifiy initial DB. (BOOTSTRAP): Likewise.
2011-11-13 * interp/br-data.boot (buildLibdbConEntry): Exit early if argumentdos-reis1-9/+72
is a builtin constructor. (mkDependentsHashTable): Filter out builtin constructors. * interp/cattable.boot (genCategoryTable): Likewise. * interp/database.boot (getConstructorModemap): Load the contructor if necessary and try again before failing. * interp/define.boot (NRTgetLookupFunction): Handle multiple inheritance of domains. (getBaseExports): Rename from getExportCategory. Adjust caller. Handle multiple inheritance of domains. (extendsCategory): Do not reference $functorForm. Take it from the DB argument. (getTargetFromRhs): Do not optimize codegen.
2011-11-10 * algebra/boolean.spad.pamphlet (IndexedBits) [Not, Or, And]: Remove.dos-reis4-31/+10
Implement ~. \/, and /\ instead. * algebra/si.spad.pamphlet (SingleInteger): Likewise. * algebra/pattern.spad.pamphlet (Pattern): Adjust. * algebra/string.spad.pamphlet (CharacterClass): Likewise.
2011-11-06 * interp/c-doc.boot (checkBalance): Fix a latent logic bug.dos-reis1-8/+7
* algebra/Makefile.in: Tidy.
2011-11-05 * algebra/Makefile.in: Rework bootstrap dependency.dos-reis1-373/+855
2011-11-04 * interp/functor.boot (compCategories): Take second parameter asdos-reis1-1/+1
environment. Adjust callers. (compCategories1): Likewise. (NewbFVectorCopy): Remove as deadcode. (worthlessCode): Tidy. (DescendCode): Take additional environment parameter. Adjust callers. * interp/define.boot (isMacro): Simplify. (wrapDomainSub): Remove. Adjust callers. * algebra/Makefile.in (strap-2/%.$(FASLEXT)): Fix typo.
2011-10-27 * algebra/stream.spad.pamphlet (Stream): Tidy accessors.dos-reis1-15/+17
2011-10-26minor cleanupsdos-reis3-4/+4
2011-10-25 * algebra/modmon.spad.pamphlet (ModMonic): Rename second parameterdos-reis1-17/+15
from Rep to P. Addd capsule-level definition for Rep. [setPoly]: Adjust parameter type. [coerce]: Likewise. [UnVectorise]: Restrict reduction to %, then coerce to Rep. [monomial]: Add appropriate coercion to Rep.
2011-10-25 * algebra/perman.spad.pamphlet (Permanent): Specify type of localdos-reis22-105/+117
variable j. * algebra/patmatch1.spad.pamphlet (PatternMatchTools): Tidy. * algebra/padic.spad.pamphlet: Restrict type of literal constants. * algebra/sttf.spad.pamphlet: Likewise. * algebra/puiseux.spad.pamphlet: Likewise. * algebra/odealg.spad.pamphlet (SystemODESolver) [applyLodo0]: Specify type of local variable ans. * algebra/numtheor.spad.pamphlet (IntegerNumberTheoryFunctions): Tidy. * algebra/naalgc.spad.pamphlet (MonadWithUnit) [rightPower]: Specify type of local variable res. [leftPower]: Likewise. * algebra/lodop.spad.pamphlet (NonCommutativeOperatorDivision) [leftLcm]: Specify type of local variable v. * algebra/intfact.spad.pamphlet (IntegerRoots) [approxSqrt]: Specify type of local variables old and new. * algebra/elfuts.spad.pamphlet (EllipticFunctionsUnivariateTaylorSeries): Restrict types of literal constants. * algebra/ffnb.spad.pamphlet (FiniteFieldNormalBasisExtensionByPolynomial): Likewise. * algebra/fnla.spad.pamphlet (FreeNilpotentLie): Likewise. * algebra/intaux.spad.pamphlet (IntegrationResult): Likewise. * algebra/defintef.spad.pamphlet (ElementaryFunctionDefiniteIntegration) [checkSMP]: Specify type in the definition of local variable n. * algebra/combinat.spad.pamphlet (IntegerCombinatoricFunctions): Tidy definition of local variables. * algebra/clifford.spad.pamphlet (CliffordAlgebra): Specify type in the definition of local variables k, exchanges, bz. * algebra/catdef.spad.pamphlet (CartesianTensor): Specify type in the definition of local varibles rx and offz. Remove useless variables zol, xol, oly, and zoly.
2011-10-24 * interp/compiler.boot (compOrCroak1): Drop last argument. Tidy.dos-reis3-4/+11
(mostSpecificTriple): New. (compAtomWithModemap): Use it to resolve ambiguous constants. (formatConstantCandidates): New. (compForm1): Do try to compile constants 0 and 1 with compToApply. * algebra/polycat.spad.pamphlet (FiniteAbelianMonoidRing) [binomThmExpt]: Tidy. (UnivariatePolynomialCategory) [pseudoDivide]: Likewise. * algebra/float.spad.pamphlet (Float) [log]: Specificy type for local variable `l'. * interp/format.boot (formatUnabbreviatedSig): Handle constants.
2011-10-23 * interp/g-opt.boot ($VMsideEffectFreeOperators): Include %fdecode.dos-reis2-18/+17
* interp/lisp-backend.boot: Expand it. * algebra/sf.spad.pamphlet (DoubleFloat): Remove %fmanexpr import. Use %fdecode to access Lisp-level double-float decoding. [mantissa]: Rewrite. [exponent]: Likewise. [negative?]: Likewise. [positive?]: Likewise. [manexp]: Likewise. * algebra/view2D.spad.pamphlet (TwoDimensionalViewport): Tidy.
2011-10-22 * boot/tokens.boot: Add new selectors: mapOperation, mapSignature,dos-reis9-32/+26
mapTarget, mapSource, mapKind. * algebra/data.spad.pamphlet (SystemInteger) [min, max]: Disambiguate with explicit type annotation. (SystemNonNetativeInteger) [min, max]: Likewise. * algebra/color.spad.pamphlet (Color) [sample]: Remove parenthesis. * algebra/ffnb.spad.pamphlet (FiniteFieldNormalBasisExtensionByPolynomial) [sizeOfGroundField]: Likewise. * algebra/matrix.spad.pamphlet (SquareMatrix) [dimension]: Likewise. * algebra/view3D.spad.pamphlet: Likewise. * algebra/viewDef.spad.pamphlet: Likewise. * algebra/regset.spad.pamphlet (RegularTriangularSetCategory) [unitIdealIfCan]: Remove, was useless. * algebra/sregset.spad.pamphlet (SquareFreeRegularTriangularSet) [unitIdealIfCan]: Likewise. * algebra/triset.spad.pamphlet (GeneralTriangularSet) [unitIdealIfCan]: Likewise.
2011-10-21 * algebra/boolean.spad.pamphlet (Boolean) [sample]: Removedos-reis1-1/+0
definition, as it is not exported.
2011-10-19 * interp/postpar.boot (postNormalizeName): New.dos-reis1-1/+4
(postAtom): Use it. (postMDef): Do not generate artificial list of nils. Leave left-hand-side as written in source code. * interp/compiler.boot (compMacro): Tidy. * interp/define.boot (checkRepresentation): Likewise. * interp/parse.boot (parseMDEF): Likewise. * algebra/syntax.spad.pamphlet (MacroAst): Adjust.
2011-10-18 * interp/postpar.boot (displayPreCompilationErrors): Dot not checkdos-reis1-2/+2
for interactive mode. (postBigFloat): Likewise. (postDef): Likewise. (postMDef): Likewise. (tuple2List): Likewise. (postReduce): Likewise. (postQUOTE): Remove. (postQuot): Likewise. (postOp): Likewise. (postTran): Adjust. * interp/newaux.lisp: Replace %LET with ':='. * interp/property.lisp: Likewise. * interp/g-util.boot (getTypeOfSyntax): Likewise. * interp/define.boot (checkRepresentation): Likewise. (doIt): Likewise. * interp/compiler.boot (compSetq): Likewise. (compRecoverGuard): Likewise. (compReduce1): Likewise. * interp/c-util.boot (lhsOfAssignment): Likewise. (isAlmostSimple): Likewise. * interp/c-doc.boot (recordAttributeDocumentation): Likewise. * interp/parse.boot (parseLeftArrow): Remove. (parseLETD): Likewise. (parseAssign): Rename from parseLET. * algebra/syntax.spad.pamphlet (SpadAst): Handle both cases.
2011-10-18 * interp/spad-parser.boot (parseSegmentTail): Tidy.dos-reis1-7/+7
* interp/postpar.boot (postSEGMENT): Remove. (postTupleCollect): Likewise. (postBootNotEqual): Likewise. * interp/parsing.lisp (CHAR-EQ): Remove. (CHAR-NE): Likewise. (getToken): Likewise. * interp/newaux.lisp: Remove "^=" as legitimate operator. * interp/lexing.boot (geToken): Rename from getSpadToken. * interp/i-intern.boot (mkAtree3): Check for new form of universal segment. * interp/parse.boot (parseSegment): Likewise. * algebra/seg.spad.pamphlet (Segment): Use .. instead of SEGMENT. (SegmentFunctions2): Likewise. (UniversalSegment): Likewise.
2011-10-16 * algebra/boolean.spad.pamphlet (Boolean): Implement defaultdos-reis2-9/+16
Boolean operators in terms of Logic operators. (PropositionalFormula): Implement Logic operators instead of Boolean operators. * algebra/exposed.lsp.pamphlet: Expose PropositionalFormulaFunctions1 and PropositionalFormulaFunctions2.
2011-10-12 * algebra/boolean.spad.pamphlet (Reference) [elt]: Remove.dos-reis15-218/+210
[setelt]: Likewise. * algebra/lodof.spad.pamphlet: Adjust use. * algebra/float.spad.pamphlet: Likewise. * algebra/divisor.spad.pamphlet: Likewise. * algebra/curve.spad.pamphlet: Likewise. * algebra/card.spad.pamphlet: Likewise. * algebra/algext.spad.pamphlet: Likewise. * algebra/op.spad.pamphlet: Likewise. * algebra/suls.spad.pamphlet: Likewise. * algebra/sups.spad.pamphlet: Likewise. * algebra/supxs.spad.pamphlet: Likewise. * algebra/suts.spad.pamphlet: Likewise. * algebra/symbol.spad.pamphlet: Likewise. * algebra/view3D.spad.pamphlet: Likewise. * algebra/viewDef.spad.pamphlet: Likewise.
2011-10-11 * interp/lexing.boot (matchAdvanceString): New.dos-reis2-19/+19
* interp/spad-parser.boot: New parsing functions. * interp/fnewmeta.lisp: Use them. (PARSE-VarForm): Remove. (PARSE-Scripts): Likewise. (PARSE-ScriptItem): Likewise. (PARSE-AnyId): Likewise. * interp/parsing.lisp (PARSE-OperatorFunctionName): Remove. (MATCH-ADVANCE-STRING): Likewise.
2011-09-20 * algebra/annacat.spad.pamphlet: Remove.dos-reis11-9199/+28
* algebra/routines.spad.pamphlet: Likewise. * algebra/functions.spad.pamphlet: Likewise. * algebra/tools.spad.pamphlet: Likewise. * algebra/cont.spad.pamphlet: Likewise. * algebra/fortran.spad.pamphlet: Likewise. * algebra/fortmac.spad.pamphlet: Likewise. * algebra/fortpak.spad.pamphlet: Likewise.
2011-09-20 * algebra/asp.spad.pamphlet: Remove.dos-reis29-10332/+19
* algebra/c02.spad.pamphlet: Likewise. * algebra/c05.spad.pamphlet: Likewise. * algebra/c06.spad.pamphlet: Likewise. * algebra/d01.spad.pamphlet: Likewise. * algebra/d02.spad.pamphlet: Likewise. * algebra/d03.spad.pamphlet: Likewise. * algebra/e01.spad.pamphlet: Likewise. * algebra/e02.spad.pamphlet: Likewise. * algebra/e04.spad.pamphlet: Likewise. * algebra/f01.spad.pamphlet: Likewise. * algebra/f02.spad.pamphlet: Likewise. * algebra/f04.spad.pamphlet: Likewise. * algebra/f07.spad.pamphlet: Likewise. * algebra/s.spad.pamphlet: Likewise. * algebra/d01Package.spad.pamphlet: Likewise. * algebra/d02Package.spad.pamphlet: Likewise. * algebra/d03Package.spad.pamphlet: Likewise. * algebra/e04Package.spad.pamphlet: Likewise. * algebra/d01agents.spad.pamphlet: Likewise. * algebra/d01routine.spad.pamphlet: Likewise. * algebra/d01transform.spad.pamphlet: Likewise. * algebra/d01weights.spad.pamphlet: Likewise. * algebra/d02agents.spad.pamphlet: Likewise. * algebra/d02routine.spad.pamphlet: Likewise. * algebra/d03agents.spad.pamphlet: Likewise. * algebra/d03routine.spad.pamphlet: Likewise. * algebra/e04agents.spad.pamphlet: Likewise. * algebra/e04routine.spad.pamphlet: Likewise.
2011-09-15 * algebra/axtimer.as.pamphlet: Remove.dos-reis16-6287/+0
* algebra/ffrac.as.pamphlet: Likewise. * algebra/herm.as.pamphlet: Likewise. * algebra/interval.as.pamphlet: Likewise. * algebra/invnode.as.pamphlet: Likewise. * algebra/invrender.as.pamphlet: Likewise. * algebra/invtypes.as.pamphlet: Likewise. * algebra/invutils.as.pamphlet: Likewise. * algebra/iviews.as.pamphlet: Likewise. * algebra/ndftip.as.pamphlet: Likewise. * algebra/nepip.as.pamphlet: Likewise. * algebra/noptip.as.pamphlet: Likewise. * algebra/nqip.as.pamphlet: Likewise. * algebra/nrc.as.pamphlet: Likewise. * algebra/nsfip.as.pamphlet: Likewise.
2011-09-15 * algebra/alql.spad.pamphlet (IndexCard): Now satisfiesdos-reis5-32/+9
CoercibleFrom String. Remove explicit coerce export. * algebra/carten.spad.pamphlet (CartesianTensor): Remove explicit coerce export. Add satisfaction of CoercibleFrom appropriate domains. * algebra/color.spad.pamphlet (Palette): Relace explicit coerce export with CoercibleTo %. * algebra/constant.spad.pamphlet (InnerAlgebraicNumber): Likewise. * algebra/dpolcat.spad.pamphlet (DifferentialVariableCategory): Likewise.