diff --git a/changelog b/changelog index fbb5d26..1aaaa04 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,15 @@ +20070826 tpd src/doc/spadhelp add Expression +20070826 tpd src/algebra/Makefile add Expression.help +20070826 tpd src/algebra/expr.spad add Expression.help +20070826 tpd src/algebra/expr.spad add Expression.input +20070826 tpd src/doc/spadhelp add Edit +20070826 tpd src/algebra/Makefile add Exit.help +20070826 tpd src/algebra/void.spad add Exit.help +20070826 tpd src/algebra/void.spad add Exit.input +20070826 tpd src/doc/spadhelp add Equation +20070826 tpd src/algebra/Makefile add Equation.help +20070826 tpd src/algebra/equation2.spad add Equation.help +20070826 tpd src/algebra/equation2.spad add Equation.input 20070825 tpd doc/src/algebra/spadhelp add all abbreviation files 20070825 tpd src/doc/spadhelp add all abbreviations 20070825 tpd src/doc/spadhelp add DoubleFloat diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index 542e42d..5cfb29e 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -2027,7 +2027,7 @@ SPADHELP=\ ${HELP}/Complex.help ${HELP}/ContinuedFraction.help \ ${HELP}/CycleIndicators.help ${HELP}/DeRhamComplex.help \ ${HELP}/DecimalExpansion.help ${HELP}/DoubleFloat.help \ - ${HELP}/EqTable.help \ + ${HELP}/EqTable.help ${HELP}/Equation.help \ ${HELP}/DistributedMultivariatePolynomial.help \ ${HELP}/GeneralDistributedMultivariatePolynomial.help \ ${HELP}/HomogeneousDistributedMultivariatePolynomial.help @@ -2049,7 +2049,7 @@ REGRESS=\ Complex.regress ContinuedFraction.regress \ CycleIndicators.regress DeRhamComplex.regress \ DecimalExpansion.regress DoubleFloat.regress \ - EqTable.regress \ + EqTable.regress Equation.regress \ DistributedMultivariatePolynomial.regress \ GeneralDistributedMultivariatePolynomial.regress \ HomogeneousDistributedMultivariatePolynomial.regress @@ -2242,6 +2242,14 @@ ${HELP}/HomogeneousDistributedMultivariatePolynomial.help: \ ${IN}/gdpoly.spad.pamphlet \ >${INPUT}/HomogeneousDistributedMultivariatePolynomial.input +${HELP}/Equation.help: ${IN}/equation2.spad.pamphlet + @echo 7020 create Equation.help from ${IN}/equation2.spad.pamphlet + @${TANGLE} -R"Equation.help" ${IN}/equation2.spad.pamphlet \ + >${HELP}/Equation.help + @cp ${HELP}/Equation.help ${HELP}/EQTBL.help + @${TANGLE} -R"Equation.input" ${IN}/equation2.spad.pamphlet \ + >${INPUT}/Equation.input + @ \section{The Makefile} diff --git a/src/algebra/equation2.spad.pamphlet b/src/algebra/equation2.spad.pamphlet index 8ae385b..ecabdd9 100644 --- a/src/algebra/equation2.spad.pamphlet +++ b/src/algebra/equation2.spad.pamphlet @@ -10,6 +10,161 @@ \tableofcontents \eject \section{domain EQ Equation} +<>= +-- equation2.spad.pamphlet Equation.input +)spool Equation.output +)set message test on +)set message auto off +)clear all +eq1 := 3*x + 4*y = 5 + + + (1) 4y + 3x= 5 + Type: Equation Polynomial Integer +eq2 := 2*x + 2*y = 3 + + + (2) 2y + 2x= 3 + Type: Equation Polynomial Integer +lhs eq1 + + + (3) 4y + 3x + Type: Polynomial Integer +rhs eq1 + + + (4) 5 + Type: Polynomial Integer +eq1 + eq2 + + + (5) 6y + 5x= 8 + Type: Equation Polynomial Integer +eq1 * eq2 + + + 2 2 + (6) 8y + 14x y + 6x = 15 + Type: Equation Polynomial Integer +2*eq2 - eq1 + + + (7) x= 1 + Type: Equation Polynomial Integer +eq1**2 + + + 2 2 + (8) 16y + 24x y + 9x = 25 + Type: Equation Polynomial Integer +if x+1 = y then "equal" else "unequal" + + + (9) "unequal" + Type: String +eqpol := x+1 = y + + + (10) x + 1= y + Type: Equation Polynomial Integer +if eqpol then "equal" else "unequal" + + + (11) "unequal" + Type: String +eqpol::Boolean + + + (12) false + Type: Boolean +)spool +)lisp (bye) +@ +<>= +==================================================================== +Equation examples +==================================================================== + +The Equation domain provides equations as mathematical objects. These +are used, for example, as the input to various solve operations. + +Equations are created using the equals symbol, =. + + eq1 := 3*x + 4*y = 5 + 4y + 3x= 5 + Type: Equation Polynomial Integer + + eq2 := 2*x + 2*y = 3 + 2y + 2x= 3 + Type: Equation Polynomial Integer + +The left- and right-hand sides of an equation are accessible using +the operations lhs and rhs. + + lhs eq1 + 4y + 3x + Type: Polynomial Integer + + rhs eq1 + 5 + Type: Polynomial Integer + +Arithmetic operations are supported and operate on both sides of the +equation. + + eq1 + eq2 + 6y + 5x= 8 + Type: Equation Polynomial Integer + + eq1 * eq2 + 2 2 + 8y + 14x y + 6x = 15 + Type: Equation Polynomial Integer + + 2*eq2 - eq1 + x= 1 + Type: Equation Polynomial Integer + +Equations may be created for any type so the arithmetic operations +will be defined only when they make sense. For example, exponentiation +is not defined for equations involving non-square matrices. + + eq1**2 + 2 2 + 16y + 24x y + 9x = 25 + Type: Equation Polynomial Integer + +Note that an equals symbol is also used to test for equality of values +in certain contexts. For example, x+1 and y are unequal as polynomials. + + if x+1 = y then "equal" else "unequal" + "unequal" + Type: String + + eqpol := x+1 = y + x + 1= y + Type: Equation Polynomial Integer + +If an equation is used where a Boolean value is required, then +it is evaluated using the equality test from the operand type. + + if eqpol then "equal" else "unequal" + "unequal" + Type: String + +If one wants a Boolean value rather than an equation, all one has to +do is ask! + + eqpol::Boolean + false + Type: Boolean + +See Also: +o )show Equation +o $AXIOM/doc/src/algebra/equation2.spad.dvi + +@ <>= )abbrev domain EQ Equation --FOR THE BENEFIT OF LIBAX0 GENERATION diff --git a/src/doc/spadhelp.pamphlet b/src/doc/spadhelp.pamphlet index 6e03ff3..ed3bde9 100644 --- a/src/doc/spadhelp.pamphlet +++ b/src/doc/spadhelp.pamphlet @@ -1491,6 +1491,7 @@ Complex (COMPLEX) ContinuedFraction (CONTFRAC) CycleIndicators (CYCLES) DeRhamComplex (DERHAM) DecimalExpansion (DECIMAL) DistributedMultivariatePolynomial (DMP) DoubleFloat (DFLOAT) EqTable (EQTBL) +Equation (EQ) GeneralDistributedMultivariatePolynomial (GDMP) HomogeneousDistributedMultivariatePolynomial (HDMP)