diff options
Diffstat (limited to 'src/input')
537 files changed, 45129 insertions, 0 deletions
diff --git a/src/input/ChangeLog b/src/input/ChangeLog new file mode 100644 index 00000000..24ac6afd --- /dev/null +++ b/src/input/ChangeLog @@ -0,0 +1,71 @@ +2007-05-28 Gabriel Dos Reis <gdr@cs.tamu,edu> + + * Makefile.pamphlet (regress): Don't use AX_FLAGS. + * Makefile.in: Regenerate. + +2007-03-24 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * Makefile.pamphlet: Fix typos. + * Makefile.in: Regenerate. + +2006-12-26 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * Makefile.pamphlet: Eradicate use of ENV. + +2006-12-09 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * Makefile.pamphlet (TESTSYS): Point DAASE to freshly built + database. Test AXIOMsys, not interpsys. + * Makefile.in: Regenerate. + +2006-12-09 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * Makefile.pamphlet (MID): Adjust definition. + (TESTSYS): Likewise. + (OUT): Likewise. + (TESTSYS): Test AXIOMsys, not interpsys. + * Makefile.in: Regenerate. + +2006-11-24 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * Makefile.pamphlet (all-input): New phony target. + * Makefile.in: Regenerate. + +2006-10-28 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * Makefile.pamphlet (mostlyclean-local): New rule. + (clean-local): Use it as prerequisite. + (distclean-local): New rule. + +2006-10-08 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * Makefile.pamphlet: Remove references to ${MNT} throughout. + * Makefile.in: Regenerate. + +2006-10-02 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * Makefile.pamphlet <<axiom.sty (OUT from In)>>: Remove. + (regression-tests): New rule. + Make stanza <<regression tests>> part of the main make file. + (all:) Remove ${DOCFILES} as prerequisite. + +2006-09-26 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * Makefile.pamphlet (all): Create stamp file. + * Makefile.in: Regenerate. + +2006-09-18 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * Makefile.pamphlet (subdir): New. + * Makefile.in: Regenerate. + +2006-09-11 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * Makefile.pamphlet: Use $(axiom_build_document) to tangle + pamphlets. Add support for out-of-source build. + * Makefile.in: Regenerate. + +2006-09-03 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * Makefile.in: New. + diff --git a/src/input/Makefile.in b/src/input/Makefile.in new file mode 100644 index 00000000..fd69985e --- /dev/null +++ b/src/input/Makefile.in @@ -0,0 +1,769 @@ + +subdir = src/input/ + +IN=$(axiom_src_srcdir)/input +MID=./$(top_builddir)/int/input +OUT=$(axiom_targetdir)/input +DOC=$(axiom_target_docdir)/src/input + + +ASFILES=${OUT}/aseg6.as ${OUT}/aseg7.as ${OUT}/ecfact.as \ + ${OUT}/hilbert.as ${OUT}/matops.as ${OUT}/pdecomp0.as \ + ${OUT}/romnum.as + +NAGLIB=${OUT}/c02aff.input ${OUT}/c02agf.input ${OUT}/c05adf.input \ + ${OUT}/c05nbf.input ${OUT}/c05pbf.input ${OUT}/c06eaf.input \ + ${OUT}/c06ebf.input ${OUT}/c06ecf.input ${OUT}/c06ekf.input \ + ${OUT}/c06fpf.input ${OUT}/c06fqf.input ${OUT}/c06frf.input \ + ${OUT}/c06fuf.input ${OUT}/c06gbf.input ${OUT}/c06gcf.input \ + ${OUT}/c06gqf.input ${OUT}/c06gsf.input \ + ${OUT}/d01ajf.input ${OUT}/d01akf.input ${OUT}/d01alf.input \ + ${OUT}/d01amf.input ${OUT}/d01anf.input ${OUT}/d01apf.input \ + ${OUT}/d01aqf.input ${OUT}/d01asf.input ${OUT}/d01bbf.input \ + ${OUT}/d01fcf.input ${OUT}/d01gaf.input ${OUT}/d01gbf.input \ + ${OUT}/d02bbf.input ${OUT}/d02bhf.input ${OUT}/d02cjf.input \ + ${OUT}/d02ejf.input ${OUT}/d02gaf.input ${OUT}/d02gbf.input \ + ${OUT}/d02kef.input ${OUT}/d02raf.input ${OUT}/d03edf.input \ + ${OUT}/d03eef.input ${OUT}/d03faf.input \ + ${OUT}/e01baf.input ${OUT}/e01bef.input ${OUT}/e01bff.input \ + ${OUT}/e01bgf.input ${OUT}/e01bhf.input ${OUT}/e01daf.input \ + ${OUT}/e01saf.input ${OUT}/e01sbf.input ${OUT}/e01sef.input \ + ${OUT}/e01sff.input ${OUT}/e02adf.input ${OUT}/e02aef.input \ + ${OUT}/e02agf.input ${OUT}/e02ahf.input ${OUT}/e02ajf.input \ + ${OUT}/e02akf.input ${OUT}/e02baf.input ${OUT}/e02bbf.input \ + ${OUT}/e02bcf.input ${OUT}/e02bdf.input ${OUT}/e02bef.input \ + ${OUT}/e02daf.input ${OUT}/e02dcf.input ${OUT}/e02ddf.input \ + ${OUT}/e02def.input ${OUT}/e02dff.input ${OUT}/e02gaf.input \ + ${OUT}/e02zaf.input ${OUT}/e04dgf.input ${OUT}/e04fdf.input \ + ${OUT}/e04gcf.input ${OUT}/e04jaf.input ${OUT}/e04mbf.input \ + ${OUT}/e04naf.input ${OUT}/e04ucf.input ${OUT}/e04ycf.input \ + ${OUT}/f01brf.input ${OUT}/f01bsf.input ${OUT}/f01maf.input \ + ${OUT}/f01mcf.input ${OUT}/f01qcf.input ${OUT}/f01qdf.input \ + ${OUT}/f01qef.input ${OUT}/f01rcf.input ${OUT}/f01rdf.input \ + ${OUT}/f01ref.input ${OUT}/f02aaf.input ${OUT}/f02abf.input \ + ${OUT}/f02adf.input ${OUT}/f02aef.input ${OUT}/f02aff.input \ + ${OUT}/f02agf.input ${OUT}/f02ajf.input ${OUT}/f02akf.input \ + ${OUT}/f02awf.input ${OUT}/f02axf.input ${OUT}/f02bbf.input \ + ${OUT}/f02bjf.input ${OUT}/f02fjf.input ${OUT}/f02wef.input \ + ${OUT}/f02xef.input ${OUT}/f04adf.input ${OUT}/f04arf.input \ + ${OUT}/f04asf.input ${OUT}/f04atf.input ${OUT}/f04axf.input \ + ${OUT}/f04faf.input ${OUT}/f04jgf.input ${OUT}/f04maf.input \ + ${OUT}/f04mbf.input ${OUT}/f04mcf.input ${OUT}/f04qaf.input \ + ${OUT}/f07adf.input ${OUT}/f07aef.input ${OUT}/f07fdf.input \ + ${OUT}/f07fef.input \ + ${OUT}/s01eaf.input ${OUT}/s13aaf.input ${OUT}/s13acf.input \ + ${OUT}/s13adf.input ${OUT}/s14aaf.input ${OUT}/s14abf.input \ + ${OUT}/s14baf.input ${OUT}/s15adf.input ${OUT}/s15aef.input \ + ${OUT}/s17acf.input ${OUT}/s17adf.input ${OUT}/s17aef.input \ + ${OUT}/s17aff.input ${OUT}/s17agf.input ${OUT}/s17ahf.input \ + ${OUT}/s17ajf.input ${OUT}/s17akf.input ${OUT}/s17dcf.input \ + ${OUT}/s17def.input ${OUT}/s17dgf.input ${OUT}/s17dhf.input \ + ${OUT}/s17dlf.input ${OUT}/s18acf.input ${OUT}/s18adf.input \ + ${OUT}/s18aef.input ${OUT}/s18aff.input ${OUT}/s18dcf.input \ + ${OUT}/s18def.input ${OUT}/s19aaf.input ${OUT}/s19abf.input \ + ${OUT}/s19acf.input ${OUT}/s19adf.input ${OUT}/s20acf.input \ + ${OUT}/s20adf.input ${OUT}/s21baf.input ${OUT}/s21bbf.input \ + ${OUT}/s21bcf.input ${OUT}/s21bdf.input + +FILES= ${OUT}/algaggr.input ${OUT}/algbrbf.input ${OUT}/algfacob.input \ + ${OUT}/alist.input ${OUT}/allfact.input ${OUT}/antoine.input \ + ${OUT}/array1.input ${OUT}/array2.input ${OUT}/arrows.input \ + ${OUT}/assign.input ${OUT}/atansqrt.input ${OUT}/axiom.input \ + ${OUT}/asec.input \ + ${OUT}/bags.input ${OUT}/bbtree.input ${OUT}/bern.input \ + ${OUT}/bernpoly.input ${OUT}/binary.input ${OUT}/bop.input \ + ${OUT}/bouquet.input ${OUT}/bstree.input ${OUT}/bug6357.input \ + ${OUT}/bug9057.input ${OUT}/bug10069.input ${OUT}/bug10312.input \ + ${OUT}/calculus.input \ + ${OUT}/cardinal.input ${OUT}/card.input ${OUT}/carten.input \ + ${OUT}/cclass.input ${OUT}/cdraw.input ${OUT}/char.input \ + ${OUT}/ch.input ${OUT}/clifford.input ${OUT}/clif.input \ + ${OUT}/coercels.input ${OUT}/collect.input ${OUT}/color.input \ + ${OUT}/complex.input ${OUT}/cone.input ${OUT}/conformal.input \ + ${OUT}/constant.input \ + ${OUT}/contfrac.input ${OUT}/contfrc.input ${OUT}/coordsys.input \ + ${OUT}/curl.input \ + ${OUT}/cycles.input ${OUT}/cycles1.input ${OUT}/cycloid.input \ + ${OUT}/cycloid2.input \ + ${OUT}/cycloid3.input ${OUT}/cyfactor.input ${OUT}/damped.input \ + ${OUT}/danzwill.input ${OUT}/decimal.input ${OUT}/defs.input \ + ${OUT}/defintef.input ${OUT}/defintrf.input ${OUT}/derham.input \ + ${OUT}/de2re.input \ + ${OUT}/dfloat.input ${OUT}/dhtri.input ${OUT}/divisor.input \ + ${OUT}/dmp.input ${OUT}/dpol.input ${OUT}/draw2dSF.input \ + ${OUT}/drawalg.input ${OUT}/drawcfn.input \ + ${OUT}/drawcfun.input ${OUT}/drawcurv.input \ + ${OUT}/draw.input ${OUT}/drawcx.input ${OUT}/drawex.input \ + ${OUT}/drawpoly.input ${OUT}/drawx.input \ + ${OUT}/easter.input ${OUT}/efi.input ${OUT}/egg.input \ + ${OUT}/eigen.input \ + ${OUT}/elemfun.input ${OUT}/elemnum.input ${OUT}/elfuts.input \ + ${OUT}/elt.input \ + ${OUT}/eq.input ${OUT}/eqtbl.input ${OUT}/equation.input \ + ${OUT}/errortrap.input \ + ${OUT}/eval.input ${OUT}/exit.input ${OUT}/expexpan.input \ + ${OUT}/explim.input ${OUT}/explot2d.input ${OUT}/explot3d.input \ + ${OUT}/expr1.input ${OUT}/exprpoly.input \ + ${OUT}/farray.input ${OUT}/ffdemo.input \ + ${OUT}/fferr.input ${OUT}/ffrac.input ${OUT}/ffx72.input \ + ${OUT}/fib.input ${OUT}/fixed.input \ + ${OUT}/file.input ${OUT}/float2.input \ + ${OUT}/float.input ${OUT}/float1.input ${OUT}/fname.input \ + ${OUT}/fname1.input ${OUT}/fnla.input ${OUT}/folium.input \ + ${OUT}/fparfrac.input \ + ${OUT}/fparfrc.input ${OUT}/fr2.input ${OUT}/frac.input \ + ${OUT}/fr.input ${OUT}/fr1.input ${OUT}/gary1.input \ + ${OUT}/gbf.input ${OUT}/genups.input ${OUT}/gnarly1.input \ + ${OUT}/gonshor.input ${OUT}/grdef.input \ + ${OUT}/gstbl.input \ + ${OUT}/heap.input ${OUT}/heat.input ${OUT}/helix.input \ + ${OUT}/herm.input ${OUT}/hexadec.input ${OUT}/huang.input \ + ${OUT}/ico.input ${OUT}/ideal.input ${OUT}/ifact.input \ + ${OUT}/images1.input ${OUT}/images1a.input ${OUT}/images3a.input \ + ${OUT}/images3.input ${OUT}/images6.input ${OUT}/images6a.input \ + ${OUT}/images7.input ${OUT}/images7a.input ${OUT}/infprod.input \ + ${OUT}/intaf.input ${OUT}/intdeq.input ${OUT}/intef.input \ + ${OUT}/intg0.input ${OUT}/intheory.input ${OUT}/int.input \ + ${OUT}/intlf.input ${OUT}/intmix.input ${OUT}/intrf.input \ + ${OUT}/ipftest.input ${OUT}/is.input ${OUT}/isprime.input \ + ${OUT}/kafile.input ${OUT}/kernel.input ${OUT}/knot.input \ + ${OUT}/kovacic.input ${OUT}/kuipers.input \ + ${OUT}/laplace.input ${OUT}/leg.input ${OUT}/lexp.input \ + ${OUT}/lextripk.input ${OUT}/lib.input ${OUT}/limit.input \ + ${OUT}/lindep.input ${OUT}/liss1.input ${OUT}/liss2.input \ + ${OUT}/list.input ${OUT}/lode.input ${OUT}/lodesys.input \ + ${OUT}/lodo1.input ${OUT}/lodo2.input ${OUT}/lodof.input \ + ${OUT}/lodo.input ${OUT}/lodo3.input ${OUT}/lpoly.input \ + ${OUT}/lump.input \ + ${OUT}/lupfact.input ${OUT}/lword.input ${OUT}/macbug.input \ + ${OUT}/macros.input ${OUT}/marcbench.input ${OUT}/magma.input \ + ${OUT}/mapleok.input ${OUT}/mappkg1.input ${OUT}/matbug.input \ + ${OUT}/matrix22.input ${OUT}/matrix.input ${OUT}/matrix1.input \ + ${OUT}/mfinfact.input ${OUT}/mkfunc.input ${OUT}/mountain.input \ + ${OUT}/mpoly.input ${OUT}/mset.input ${OUT}/mset2.input \ + ${OUT}/multfact.input ${OUT}/multKnot.input ${OUT}/mult3d.input \ + ${OUT}/multiple.input \ + ${OUT}/ndftip.input ${OUT}/newlodo.input \ + ${OUT}/negfloats.input \ + ${OUT}/nepip.input ${OUT}/newton.input \ + ${OUT}/nlode.input ${OUT}/none.input ${OUT}/noonburg.input \ + ${OUT}/noptip.input ${OUT}/nqip.input ${OUT}/nsfip.input \ + ${OUT}/ntube.input ${OUT}/oct.input ${OUT}/ode.input \ + ${OUT}/octonion.input ${OUT}/odpol.input \ + ${OUT}/opalg.input ${OUT}/operator.input ${OUT}/op.input \ + ${OUT}/op1.input ${OUT}/ovar.input \ + ${OUT}/padic.input ${OUT}/palette.input \ + ${OUT}/parpcurv.input ${OUT}/parscurv.input ${OUT}/parsurf.input \ + ${OUT}/pascal1.input \ + ${OUT}/pascal.input ${OUT}/patmatch.input ${OUT}/perman.input \ + ${OUT}/perm.input ${OUT}/pfr.input ${OUT}/pfr1.input \ + ${OUT}/pinch.input ${OUT}/plotfile.input ${OUT}/pollevel.input \ + ${OUT}/pmint.input ${OUT}/polycoer.input \ + ${OUT}/poly1.input ${OUT}/psgenfcn.input \ + ${OUT}/quat.input ${OUT}/quat1.input ${OUT}/ribbon.input \ + ${OUT}/ribbons.input ${OUT}/ribbonsNew.input ${OUT}/rk4draw.input \ + ${OUT}/r20abugs.input \ + ${OUT}/r20bugs.input ${OUT}/r21bugsbig.input \ + ${OUT}/r21bugs.input \ + ${OUT}/radff.input ${OUT}/radix.input ${OUT}/realclos.input \ + ${OUT}/reclos.input ${OUT}/regset.input \ + ${OUT}/robidoux.input ${OUT}/roman.input ${OUT}/roots.input \ + ${OUT}/ruleset.input ${OUT}/rules.input ${OUT}/saddle.input \ + ${OUT}/scherk.input ${OUT}/scope.input \ + ${OUT}/segbind.input ${OUT}/seg.input ${OUT}/series2.input \ + ${OUT}/series.input ${OUT}/sersolve.input ${OUT}/set.input \ + ${OUT}/sinCosEx.input ${OUT}/sininv.input ${OUT}/sinsin.input \ + ${OUT}/sinsin2.input ${OUT}/sint.input ${OUT}/skew.input \ + ${OUT}/slowint.input ${OUT}/solvetra.input ${OUT}/space3.input \ + ${OUT}/spiral.input \ + ${OUT}/sqmatrix.input ${OUT}/sregset.input ${OUT}/stbl.input \ + ${OUT}/stream2.input ${OUT}/stream.input ${OUT}/streams.input \ + ${OUT}/string.input ${OUT}/strtbl.input ${OUT}/symbol.input \ + ${OUT}/synonym.input ${OUT}/t111293.input \ + ${OUT}/table.input ${OUT}/tanatan.input ${OUT}/test.input \ + ${OUT}/tetra.input ${OUT}/textfile.input ${OUT}/tknot.input \ + ${OUT}/tree.input \ + ${OUT}/triglim.input ${OUT}/tschirn.input ${OUT}/tsetcatbutcher.input \ + ${OUT}/tsetcatchemical.input ${OUT}/tsetcatvermeer.input \ + ${OUT}/tutchap1.input ${OUT}/tutchap2.input ${OUT}/tutchap3.input \ + ${OUT}/tutchap4.input ${OUT}/tutchap67.input ${OUT}/typo.input \ + ${OUT}/uniseg.input ${OUT}/up.input \ + ${OUT}/vector.input ${OUT}/vectors.input ${OUT}/viewdef.input \ + ${OUT}/void.input ${OUT}/wiggle.input \ + ${OUT}/wutset.input \ + ${OUT}/xpbwpoly.input ${OUT}/xpoly.input ${OUT}/xpr.input \ + ${OUT}/zdsolve.input ${OUT}/zimmer.input ${OUT}/zlindep.input + +FILES2=${OUT}/arith.input ${OUT}/bugs.input \ + ${OUT}/calculus2.input \ + ${OUT}/curl.input \ + ${OUT}/equation2.input ${OUT}/evalex.input \ + ${OUT}/exdiff.input ${OUT}/exint.input ${OUT}/exlap.input \ + ${OUT}/exlimit.input \ + ${OUT}/expr.input ${OUT}/exprode.input ${OUT}/exseries.input \ + ${OUT}/exsum.input ${OUT}/fns.input \ + ${OUT}/function.input ${OUT}/galois.input \ + ${OUT}/grpthry.input \ + ${OUT}/help.input ${OUT}/intef2.input \ + ${OUT}/intmix2.input ${OUT}/knot2.input ${OUT}/linalg.input \ + ${OUT}/loop.input \ + ${OUT}/numbers.input \ + ${OUT}/parabola.input ${OUT}/pat.input \ + ${OUT}/poly.input ${OUT}/reductio.input ${OUT}/repa6.input \ + ${OUT}/spadprof.input \ + ${OUT}/synonym2.input ${OUT}/torus.input + +BROKEN=${OUT}/as-eg1.input ${OUT}/as-eg2.input ${OUT}/as-eg3.input \ + ${OUT}/as-eg4.input ${OUT}/as-eg5.input ${OUT}/as-eg6.input + +# This viewport has already been closed! +VIEWPORT=${OUT}/graphics.input + +# Error: Value stack overflow. +VALUESTACK=${OUT}/images2a.input ${OUT}/images2.input ${OUT}/images5a.input \ + ${OUT}/images5.input ${OUT}/images8a.input ${OUT}/images8.input \ + ${OUT}/mult2d.input ${OUT}/plotlist.input + +# documented test cases +DOCFILES= \ + ${DOC}/algaggr.input.dvi ${DOC}/algbrbf.input.dvi \ + ${DOC}/algfacob.input.dvi ${DOC}/alist.input.dvi \ + ${DOC}/allfact.input.dvi ${DOC}/antoine.input.dvi \ + ${DOC}/arith.input.dvi ${DOC}/array1.input.dvi \ + ${DOC}/array2.input.dvi ${DOC}/arrows.input.dvi \ + ${DOC}/as-eg1.input.dvi ${DOC}/as-eg2.input.dvi \ + ${DOC}/as-eg3.input.dvi ${DOC}/as-eg4.input.dvi \ + ${DOC}/as-eg5.input.dvi ${DOC}/aseg6.as.dvi \ + ${DOC}/as-eg6.input.dvi ${DOC}/aseg7.as.dvi \ + ${DOC}/asec.input.dvi \ + ${DOC}/assign.input.dvi ${DOC}/atansqrt.input.dvi \ + ${DOC}/axiom.input.dvi ${DOC}/bags.input.dvi \ + ${DOC}/bbtree.input.dvi ${DOC}/bern.input.dvi \ + ${DOC}/bernpoly.input.dvi ${DOC}/binary.input.dvi \ + ${DOC}/bop.input.dvi ${DOC}/bouquet.input.dvi \ + ${DOC}/bstree.input.dvi ${DOC}/bug10069.input.dvi \ + ${DOC}/bug10312.input.dvi ${DOC}/bug6357.input.dvi \ + ${DOC}/bug9057.input.dvi ${DOC}/bugs.input.dvi \ + ${DOC}/c02aff.input.dvi ${DOC}/c02agf.input.dvi \ + ${DOC}/c05adf.input.dvi ${DOC}/c05nbf.input.dvi \ + ${DOC}/c05pbf.input.dvi ${DOC}/c06eaf.input.dvi \ + ${DOC}/c06ebf.input.dvi ${DOC}/c06ecf.input.dvi \ + ${DOC}/c06ekf.input.dvi ${DOC}/c06fpf.input.dvi \ + ${DOC}/c06fqf.input.dvi ${DOC}/c06frf.input.dvi \ + ${DOC}/c06fuf.input.dvi ${DOC}/c06gbf.input.dvi \ + ${DOC}/c06gcf.input.dvi ${DOC}/c06gqf.input.dvi \ + ${DOC}/c06gsf.input.dvi ${DOC}/calculus2.input.dvi \ + ${DOC}/calculus.input.dvi ${DOC}/cardinal.input.dvi \ + ${DOC}/card.input.dvi ${DOC}/carten.input.dvi \ + ${DOC}/cclass.input.dvi ${DOC}/cdraw.input.dvi \ + ${DOC}/char.input.dvi ${DOC}/ch.input.dvi \ + ${DOC}/clifford.input.dvi ${DOC}/clif.input.dvi \ + ${DOC}/coercels.input.dvi ${DOC}/collect.input.dvi \ + ${DOC}/color.input.dvi ${DOC}/complex.input.dvi \ + ${DOC}/cone.input.dvi ${DOC}/conformal.input.dvi \ + ${DOC}/constant.input.dvi ${DOC}/contfrac.input.dvi \ + ${DOC}/contfrc.input.dvi ${DOC}/coordsys.input.dvi \ + ${DOC}/curl.input.dvi ${DOC}/cycles1.input.dvi \ + ${DOC}/cycles.input.dvi ${DOC}/cycloid2.input.dvi \ + ${DOC}/cycloid3.input.dvi ${DOC}/cycloid.input.dvi \ + ${DOC}/cyfactor.input.dvi ${DOC}/d01ajf.input.dvi \ + ${DOC}/d01akf.input.dvi ${DOC}/d01alf.input.dvi \ + ${DOC}/d01amf.input.dvi ${DOC}/d01anf.input.dvi \ + ${DOC}/d01apf.input.dvi ${DOC}/d01aqf.input.dvi \ + ${DOC}/d01asf.input.dvi ${DOC}/d01bbf.input.dvi \ + ${DOC}/d01fcf.input.dvi ${DOC}/d01gaf.input.dvi \ + ${DOC}/d01gbf.input.dvi ${DOC}/d02bbf.input.dvi \ + ${DOC}/d02bhf.input.dvi ${DOC}/d02cjf.input.dvi \ + ${DOC}/d02ejf.input.dvi ${DOC}/d02gaf.input.dvi \ + ${DOC}/d02gbf.input.dvi ${DOC}/d02kef.input.dvi \ + ${DOC}/d02raf.input.dvi ${DOC}/d03edf.input.dvi \ + ${DOC}/d03eef.input.dvi ${DOC}/d03faf.input.dvi \ + ${DOC}/damped.input.dvi ${DOC}/danzwill.input.dvi \ + ${DOC}/de2re.input.dvi ${DOC}/decimal.input.dvi \ + ${DOC}/defintef.input.dvi ${DOC}/defintrf.input.dvi \ + ${DOC}/defs.input.dvi ${DOC}/derham.input.dvi \ + ${DOC}/dfloat.input.dvi ${DOC}/dhtri.input.dvi \ + ${DOC}/divisor.input.dvi ${DOC}/dmp.input.dvi \ + ${DOC}/dpol.input.dvi \ + ${DOC}/draw2dSF.input.dvi ${DOC}/drawalg.input.dvi \ + ${DOC}/drawcfn.input.dvi ${DOC}/drawcfun.input.dvi \ + ${DOC}/drawcurv.input.dvi ${DOC}/drawcx.input.dvi \ + ${DOC}/drawex.input.dvi ${DOC}/draw.input.dvi \ + ${DOC}/drawpoly.input.dvi ${DOC}/drawx.input.dvi \ + ${DOC}/dropt.input.dvi ${DOC}/e01baf.input.dvi \ + ${DOC}/e01bef.input.dvi ${DOC}/e01bff.input.dvi \ + ${DOC}/e01bgf.input.dvi ${DOC}/e01bhf.input.dvi \ + ${DOC}/e01daf.input.dvi ${DOC}/e01saf.input.dvi \ + ${DOC}/e01sbf.input.dvi ${DOC}/e01sef.input.dvi \ + ${DOC}/e01sff.input.dvi ${DOC}/e02adf.input.dvi \ + ${DOC}/e02aef.input.dvi ${DOC}/e02agf.input.dvi \ + ${DOC}/e02ahf.input.dvi ${DOC}/e02ajf.input.dvi \ + ${DOC}/e02akf.input.dvi ${DOC}/e02baf.input.dvi \ + ${DOC}/e02bbf.input.dvi ${DOC}/e02bcf.input.dvi \ + ${DOC}/e02bdf.input.dvi ${DOC}/e02bef.input.dvi \ + ${DOC}/e02daf.input.dvi ${DOC}/e02dcf.input.dvi \ + ${DOC}/e02ddf.input.dvi ${DOC}/e02def.input.dvi \ + ${DOC}/e02dff.input.dvi ${DOC}/e02gaf.input.dvi \ + ${DOC}/e02zaf.input.dvi ${DOC}/e04dgf.input.dvi \ + ${DOC}/e04fdf.input.dvi ${DOC}/e04gcf.input.dvi \ + ${DOC}/e04jaf.input.dvi ${DOC}/e04mbf.input.dvi \ + ${DOC}/e04naf.input.dvi ${DOC}/e04ucf.input.dvi \ + ${DOC}/e04ycf.input.dvi ${DOC}/easter.input.dvi \ + ${DOC}/ecfact.as.dvi ${DOC}/efi.input.dvi \ + ${DOC}/egg.input.dvi ${DOC}/eigen.input.dvi \ + ${DOC}/elemfun.input.dvi ${DOC}/elemnum.input.dvi \ + ${DOC}/elfuts.input.dvi ${DOC}/elt.input.dvi \ + ${DOC}/eq.input.dvi ${DOC}/eqtbl.input.dvi \ + ${DOC}/equation2.input.dvi ${DOC}/equation.input.dvi \ + ${DOC}/errortrap.input.dvi ${DOC}/evalex.input.dvi \ + ${DOC}/eval.input.dvi ${DOC}/exdiff.input.dvi \ + ${DOC}/exint.input.dvi ${DOC}/exit.input.dvi \ + ${DOC}/exlap.input.dvi ${DOC}/exlimit.input.dvi \ + ${DOC}/expexpan.input.dvi ${DOC}/explim.input.dvi \ + ${DOC}/explot2d.input.dvi ${DOC}/explot3d.input.dvi \ + ${DOC}/expr1.input.dvi ${DOC}/expr.input.dvi \ + ${DOC}/exprode.input.dvi ${DOC}/exprpoly.input.dvi \ + ${DOC}/exseries.input.dvi ${DOC}/exsum.input.dvi \ + ${DOC}/f01brf.input.dvi ${DOC}/f01bsf.input.dvi \ + ${DOC}/f01maf.input.dvi ${DOC}/f01mcf.input.dvi \ + ${DOC}/f01qcf.input.dvi ${DOC}/f01qdf.input.dvi \ + ${DOC}/f01qef.input.dvi ${DOC}/f01rcf.input.dvi \ + ${DOC}/f01rdf.input.dvi ${DOC}/f01ref.input.dvi \ + ${DOC}/f02aaf.input.dvi ${DOC}/f02abf.input.dvi \ + ${DOC}/f02adf.input.dvi ${DOC}/f02aef.input.dvi \ + ${DOC}/f02aff.input.dvi ${DOC}/f02agf.input.dvi \ + ${DOC}/f02ajf.input.dvi ${DOC}/f02akf.input.dvi \ + ${DOC}/f02awf.input.dvi ${DOC}/f02axf.input.dvi \ + ${DOC}/f02bbf.input.dvi ${DOC}/f02bjf.input.dvi \ + ${DOC}/f02fjf.input.dvi ${DOC}/f02wef.input.dvi \ + ${DOC}/f02xef.input.dvi ${DOC}/f04adf.input.dvi \ + ${DOC}/f04arf.input.dvi ${DOC}/f04asf.input.dvi \ + ${DOC}/f04atf.input.dvi ${DOC}/f04axf.input.dvi \ + ${DOC}/f04faf.input.dvi ${DOC}/f04jgf.input.dvi \ + ${DOC}/f04maf.input.dvi ${DOC}/f04mbf.input.dvi \ + ${DOC}/f04mcf.input.dvi ${DOC}/f04qaf.input.dvi \ + ${DOC}/f07adf.input.dvi ${DOC}/f07aef.input.dvi \ + ${DOC}/f07fdf.input.dvi ${DOC}/f07fef.input.dvi \ + ${DOC}/farray.input.dvi ${DOC}/ffdemo.input.dvi \ + ${DOC}/fferr.input.dvi ${DOC}/ffrac.input.dvi \ + ${DOC}/ffx72.input.dvi ${DOC}/fib.input.dvi \ + ${DOC}/file.input.dvi ${DOC}/fixed.input.dvi \ + ${DOC}/float1.input.dvi ${DOC}/float2.input.dvi \ + ${DOC}/float.input.dvi ${DOC}/fname1.input.dvi \ + ${DOC}/fname.input.dvi ${DOC}/fnla.input.dvi \ + ${DOC}/fns.input.dvi ${DOC}/folium.input.dvi \ + ${DOC}/fparfrac.input.dvi ${DOC}/fparfrc.input.dvi \ + ${DOC}/fr1.input.dvi ${DOC}/fr2.input.dvi \ + ${DOC}/frac.input.dvi ${DOC}/fr.input.dvi \ + ${DOC}/function.input.dvi ${DOC}/galois.input.dvi \ + ${DOC}/gary1.input.dvi ${DOC}/gbf.input.dvi \ + ${DOC}/genups.input.dvi ${DOC}/gnarly1.input.dvi \ + ${DOC}/gonshor.input.dvi ${DOC}/graphics.input.dvi \ + ${DOC}/grdef.input.dvi ${DOC}/grpthry.input.dvi \ + ${DOC}/gstbl.input.dvi ${DOC}/heap.input.dvi \ + ${DOC}/heat.input.dvi ${DOC}/helix.input.dvi \ + ${DOC}/help.input.dvi ${DOC}/herm.input.dvi \ + ${DOC}/hexadec.input.dvi ${DOC}/hilbert.as.dvi \ + ${DOC}/huang.input.dvi ${DOC}/ico.input.dvi \ + ${DOC}/ideal.input.dvi ${DOC}/ifact.input.dvi \ + ${DOC}/images1a.input.dvi ${DOC}/images1.input.dvi \ + ${DOC}/images2a.input.dvi ${DOC}/images2.input.dvi \ + ${DOC}/images3a.input.dvi ${DOC}/images3.input.dvi \ + ${DOC}/images5a.input.dvi ${DOC}/images5.input.dvi \ + ${DOC}/images6a.input.dvi ${DOC}/images6.input.dvi \ + ${DOC}/images7a.input.dvi ${DOC}/images7.input.dvi \ + ${DOC}/images8a.input.dvi ${DOC}/images8.input.dvi \ + ${DOC}/infprod.input.dvi ${DOC}/intaf.input.dvi \ + ${DOC}/intdeq.input.dvi ${DOC}/intef2.input.dvi \ + ${DOC}/intef.input.dvi ${DOC}/intg0.input.dvi \ + ${DOC}/intheory.input.dvi ${DOC}/int.input.dvi \ + ${DOC}/intlf.input.dvi ${DOC}/intmix2.input.dvi \ + ${DOC}/intmix.input.dvi ${DOC}/intrf.input.dvi \ + ${DOC}/ipftest.input.dvi ${DOC}/is.input.dvi \ + ${DOC}/isprime.input.dvi ${DOC}/kafile.input.dvi \ + ${DOC}/kernel.input.dvi ${DOC}/knot2.input.dvi \ + ${DOC}/knot.input.dvi ${DOC}/knownbugs.input.dvi \ + ${DOC}/kovacic.input.dvi ${DOC}/kuipers.input.dvi \ + ${DOC}/laplace.input.dvi ${DOC}/leg.input.dvi \ + ${DOC}/lexp.input.dvi ${DOC}/lextripk.input.dvi \ + ${DOC}/lib.input.dvi ${DOC}/limit.input.dvi \ + ${DOC}/linalg.input.dvi ${DOC}/lindep.input.dvi \ + ${DOC}/liss1.input.dvi ${DOC}/liss2.input.dvi \ + ${DOC}/list.input.dvi ${DOC}/lode.input.dvi \ + ${DOC}/lodesys.input.dvi ${DOC}/lodo1.input.dvi \ + ${DOC}/lodo2.input.dvi ${DOC}/lodo3.input.dvi \ + ${DOC}/lodof.input.dvi ${DOC}/lodo.input.dvi \ + ${DOC}/loop.input.dvi ${DOC}/lpoly.input.dvi \ + ${DOC}/lump.input.dvi ${DOC}/lupfact.input.dvi \ + ${DOC}/lword.input.dvi ${DOC}/macbug.input.dvi \ + ${DOC}/macros.input.dvi ${DOC}/magma.input.dvi \ + ${DOC}/mapleok.input.dvi ${DOC}/mappkg1.input.dvi \ + ${DOC}/marcbench.input.dvi ${DOC}/matbug.input.dvi \ + ${DOC}/matops.as.dvi ${DOC}/matrix1.input.dvi \ + ${DOC}/matrix22.input.dvi ${DOC}/matrix.input.dvi \ + ${DOC}/matrox.input.dvi ${DOC}/mfinfact.input.dvi \ + ${DOC}/mkfunc.input.dvi ${DOC}/mountain.input.dvi \ + ${DOC}/mpoly.input.dvi ${DOC}/mset2.input.dvi \ + ${DOC}/mset.input.dvi ${DOC}/mult2d.input.dvi \ + ${DOC}/mult3d.input.dvi ${DOC}/multfact.input.dvi \ + ${DOC}/multiple.input.dvi ${DOC}/multKnot.input.dvi \ + ${DOC}/ndftip.input.dvi ${DOC}/negfloats.input.dvi \ + ${DOC}/nepip.input.dvi ${DOC}/newlodo.input.dvi \ + ${DOC}/newton.input.dvi ${DOC}/nlode.input.dvi \ + ${DOC}/none.input.dvi ${DOC}/noonburg.input.dvi \ + ${DOC}/noptip.input.dvi ${DOC}/nqip.input.dvi \ + ${DOC}/nsfip.input.dvi ${DOC}/ntube.input.dvi \ + ${DOC}/numbers.input.dvi ${DOC}/oct.input.dvi \ + ${DOC}/octonion.input.dvi ${DOC}/ode.input.dvi \ + ${DOC}/odpol.input.dvi ${DOC}/op1.input.dvi \ + ${DOC}/opalg.input.dvi ${DOC}/operator.input.dvi \ + ${DOC}/op.input.dvi ${DOC}/ovar.input.dvi \ + ${DOC}/padic.input.dvi ${DOC}/palette.input.dvi \ + ${DOC}/parabola.input.dvi ${DOC}/parpcurv.input.dvi \ + ${DOC}/parscurv.input.dvi ${DOC}/parsurf.input.dvi \ + ${DOC}/pascal1.input.dvi ${DOC}/pascal.input.dvi \ + ${DOC}/pat.input.dvi ${DOC}/patmatch.input.dvi \ + ${DOC}/pdecomp0.as.dvi ${DOC}/perman.input.dvi \ + ${DOC}/perm.input.dvi ${DOC}/pfr1.input.dvi \ + ${DOC}/pfr.input.dvi ${DOC}/pinch.input.dvi \ + ${DOC}/plotfile.input.dvi ${DOC}/plotlist.input.dvi \ + ${DOC}/pollevel.input.dvi ${DOC}/poly1.input.dvi \ + ${DOC}/polycoer.input.dvi ${DOC}/poly.input.dvi \ + ${DOC}/psgenfcn.input.dvi ${DOC}/quat1.input.dvi \ + ${DOC}/quat.input.dvi ${DOC}/r20abugs.input.dvi \ + ${DOC}/r20bugs.input.dvi ${DOC}/r21bugsbig.input.dvi \ + ${DOC}/r21bugs.input.dvi ${DOC}/radff.input.dvi \ + ${DOC}/radix.input.dvi ${DOC}/realclos.input.dvi \ + ${DOC}/reclos.input.dvi ${DOC}/reductio.input.dvi \ + ${DOC}/regset.input.dvi ${DOC}/repa6.input.dvi \ + ${DOC}/ribbon.input.dvi ${DOC}/ribbons.input.dvi \ + ${DOC}/ribbonsNew.input.dvi ${DOC}/rk4draw.input.dvi \ + ${DOC}/robidoux.input.dvi ${DOC}/roman.input.dvi \ + ${DOC}/romnum.as.dvi ${DOC}/roots.input.dvi \ + ${DOC}/ruleset.input.dvi ${DOC}/rules.input.dvi \ + ${DOC}/s01eaf.input.dvi ${DOC}/s13aaf.input.dvi \ + ${DOC}/s13acf.input.dvi ${DOC}/s13adf.input.dvi \ + ${DOC}/s14aaf.input.dvi ${DOC}/s14abf.input.dvi \ + ${DOC}/s14baf.input.dvi ${DOC}/s15adf.input.dvi \ + ${DOC}/s15aef.input.dvi ${DOC}/s17acf.input.dvi \ + ${DOC}/s17adf.input.dvi ${DOC}/s17aef.input.dvi \ + ${DOC}/s17aff.input.dvi ${DOC}/s17agf.input.dvi \ + ${DOC}/s17ahf.input.dvi ${DOC}/s17ajf.input.dvi \ + ${DOC}/s17akf.input.dvi ${DOC}/s17dcf.input.dvi \ + ${DOC}/s17def.input.dvi ${DOC}/s17dgf.input.dvi \ + ${DOC}/s17dhf.input.dvi ${DOC}/s17dlf.input.dvi \ + ${DOC}/s18acf.input.dvi ${DOC}/s18adf.input.dvi \ + ${DOC}/s18aef.input.dvi ${DOC}/s18aff.input.dvi \ + ${DOC}/s18dcf.input.dvi ${DOC}/s18def.input.dvi \ + ${DOC}/s19aaf.input.dvi ${DOC}/s19abf.input.dvi \ + ${DOC}/s19acf.input.dvi ${DOC}/s19adf.input.dvi \ + ${DOC}/s20acf.input.dvi ${DOC}/s20adf.input.dvi \ + ${DOC}/s21baf.input.dvi ${DOC}/s21bbf.input.dvi \ + ${DOC}/s21bcf.input.dvi ${DOC}/s21bdf.input.dvi \ + ${DOC}/saddle.input.dvi ${DOC}/scherk.input.dvi \ + ${DOC}/scope.input.dvi ${DOC}/segbind.input.dvi \ + ${DOC}/seg.input.dvi ${DOC}/series2.input.dvi \ + ${DOC}/series.input.dvi ${DOC}/sersolve.input.dvi \ + ${DOC}/set.input.dvi ${DOC}/sinCosEx.input.dvi \ + ${DOC}/sininv.input.dvi ${DOC}/sinsin2.input.dvi \ + ${DOC}/sinsin.input.dvi ${DOC}/sint.input.dvi \ + ${DOC}/skew.input.dvi ${DOC}/slowint.input.dvi \ + ${DOC}/solvetra.input.dvi ${DOC}/space3.input.dvi \ + ${DOC}/spadprof.input.dvi ${DOC}/spiral.input.dvi \ + ${DOC}/sqmatrix.input.dvi ${DOC}/sregset.input.dvi \ + ${DOC}/stbl.input.dvi ${DOC}/stream2.input.dvi \ + ${DOC}/stream.input.dvi ${DOC}/streams.input.dvi \ + ${DOC}/string.input.dvi ${DOC}/strtbl.input.dvi \ + ${DOC}/symbol.input.dvi ${DOC}/synonym2.input.dvi \ + ${DOC}/synonym.input.dvi ${DOC}/t111293.input.dvi \ + ${DOC}/table.input.dvi ${DOC}/tanatan.input.dvi \ + ${DOC}/test.input.dvi ${DOC}/tetra.input.dvi \ + ${DOC}/textfile.input.dvi ${DOC}/tknot.input.dvi \ + ${DOC}/torus.input.dvi ${DOC}/tree.input.dvi \ + ${DOC}/triglim.input.dvi ${DOC}/tschirn.input.dvi \ + ${DOC}/tsetcatbutcher.input.dvi \ + ${DOC}/tsetcatchemical.input.dvi \ + ${DOC}/tsetcatvermeer.input.dvi \ + ${DOC}/tutchap1.input.dvi ${DOC}/tutchap2.input.dvi \ + ${DOC}/tutchap3.input.dvi ${DOC}/tutchap4.input.dvi \ + ${DOC}/tutchap67.input.dvi ${DOC}/typo.input.dvi \ + ${DOC}/uniseg.input.dvi ${DOC}/up.input.dvi \ + ${DOC}/vector.input.dvi ${DOC}/vectors.input.dvi \ + ${DOC}/viewdef.input.dvi ${DOC}/void.input.dvi \ + ${DOC}/wester.input.dvi ${DOC}/wiggle.input.dvi \ + ${DOC}/wutset.input.dvi ${DOC}/xpbwpoly.input.dvi \ + ${DOC}/xpoly.input.dvi ${DOC}/xpr.input.dvi \ + ${DOC}/zdsolve.input.dvi ${DOC}/zimmer.input.dvi \ + ${DOC}/zlindep.input.dvi + + +.PHONY: all all-ax all-input + +all: all-ax + +all-ax all-input: $(OUT) ${FILES} ${FILES2} ${ASFILES} regress + @echo 1 finished $(srcdir) + +$(OUT): + $(mkinstalldirs) $@ + + +${OUT}/%.input: %.input + @ echo generic 10 making $@ from $< + @ $(INSTALL) $< $@ + +.PRECIOUS: %.input + +%.input: ${IN}/%.input.pamphlet + @ echo generic 11 making $@ from $< + @$(axiom_build_document) --output=$@ --tangle $< + +${OUT}/%.as: %.as + @echo generic 12 making $@ from $< + @ $(INSTALL) $< $@ + +%.as: ${IN}/%.as.pamphlet + @echo generic 13 making $@ from $< + @ $(axiom_build_document) --output=$@ --tangle $< + +pamphlets = \ + Makefile.pamphlet \ + $(wildchar *.input.pamphlet) \ + $(wildchar.as.pamplhet) + +use: + @echo 2 making ${OUT} from ${IN} + +regress: + ${MAKE} regression-tests + +bug: + @echo 4 making ${OUT} from ${IN} + +document: + @echo 5 documenting ${OUT} + +mostlyclean-local: + -rm -rf $(MID) + -rm -rf $(OUT) + +clean-local: mostlyclean-local + +distclean-local: clean-local + + +.SUFFIXES: +.SUFFIXES: .input .output + +TESTSYS= \ + AXIOM="$(AXIOM)" \ + DAASE="$(axiom_targetdir)" \ + $(axiom_target_bindir)/AXIOMsys + +SKIP= antoine.output as-eg1.output as-eg2.output \ + as-eg3.output as-eg4.output as-eg5.output as-eg6.output \ + atansqrt.output bern.output bernpoly.output bouquet.output \ + c02aff.output \ + c02agf.output c05adf.output c05nbf.output c05pbf.output \ + c06eaf.output c06ebf.output c06ecf.output c06ekf.output \ + c06fpf.output c06fqf.output c06frf.output c06fuf.output \ + c06gbf.output c06gcf.output c06gqf.output c06gsf.output \ + cdraw.output color.output cone.output \ + conformal.output coordsys.output \ + cycloid2.output cycloid3.output cycloid.output \ + d01ajf.output d01akf.output d01alf.output d01amf.output \ + d01anf.output d01apf.output d01aqf.output d01asf.output \ + d01bbf.output d01fcf.output d01gaf.output d01gbf.output \ + d02bbf.output d02bhf.output d02cjf.output d02ejf.output \ + d02gaf.output d02gbf.output d02kef.output d02raf.output \ + d03edf.output d03eef.output d03faf.output damped.output \ + de2re.output defs.output \ + draw2dSF.output drawalg.output drawcfn.output drawcfun.output \ + drawcurv.output drawcx.output drawex.output draw.output \ + drawpoly.output drawx.output dropt.output e01baf.output \ + e01bef.output e01bff.output e01bgf.output e01bhf.output \ + e01daf.output e01saf.output e01sbf.output e01sef.output \ + e01sff.output e02adf.output e02aef.output e02agf.output \ + e02ahf.output e02ajf.output e02akf.output e02baf.output \ + e02bbf.output e02bcf.output e02bdf.output e02bef.output \ + e02daf.output e02dcf.output e02ddf.output e02def.output \ + e02dff.output e02gaf.output e02zaf.output e04dgf.output \ + e04fdf.output e04gcf.output e04jaf.output e04mbf.output \ + e04naf.output e04ucf.output e04ycf.output egg.output \ + explot2d.output explot3d.output \ + f01brf.output f01bsf.output f01maf.output \ + f01mcf.output f01qcf.output f01qdf.output f01qef.output \ + f01rcf.output f01rdf.output f01ref.output f02aaf.output \ + f02abf.output f02adf.output f02aef.output f02aff.output \ + f02agf.output f02ajf.output f02akf.output f02awf.output \ + f02axf.output f02bbf.output f02bjf.output f02fjf.output \ + f02wef.output f02xef.output f04adf.output f04arf.output \ + f04asf.output f04atf.output f04axf.output f04faf.output \ + f04jgf.output f04maf.output f04mbf.output f04mcf.output \ + f04qaf.output f07adf.output f07aef.output f07fdf.output \ + f07fef.output folium.output gary1.output gnarly1.output \ + graphics.output grdef.output helix.output \ + images1a.output images1.output images2a.output images2.output \ + images3a.output images3.output images5a.output images5.output \ + images6a.output images6.output images7a.output images7.output \ + images8a.output images8.output knot.output knownbugs.output \ + liss1.output liss2.output lump.output matrox.output \ + mountain.output mult2d.output mult3d.output multKnot.output \ + ntube.output palette.output parpcurv.output parscurv.output \ + parsurf.output pinch.output plotfile.output \ + plotlist.output pollevel.output ribbon.output \ + ribbons.output ribbonsNew.output rk4draw.output \ + s01eaf.output s13aaf.output s13acf.output s13adf.output \ + s14aaf.output s14abf.output s14baf.output s15adf.output \ + s15aef.output s17acf.output s17adf.output s17aef.output \ + s17aff.output s17agf.output s17ahf.output s17ajf.output \ + s17akf.output s17dcf.output s17def.output s17dgf.output \ + s17dhf.output s17dlf.output s18acf.output s18adf.output \ + s18aef.output s18aff.output s18dcf.output s18def.output \ + s19aaf.output s19abf.output s19acf.output s19adf.output \ + s20acf.output s20adf.output s21baf.output s21bbf.output \ + s21bcf.output s21bdf.output saddle.output \ + sininv.output sinsin2.output sinsin.output spiral.output \ + tetra.output tknot.output tschirn.output typo.output \ + vectors.output wester.output wiggle.output zimmer.output + +# Error ASEC is invalid as a function. +ASEC=errortrap.output + +# Error: FLUSH is invalid as a function +# Error signalled by newGoGet +FLUSH=regset.output + +# Error: The function WRAPPED is undefined. +WRAPPED=loop.output + +# Error: Value stack overflow. +VALUESTACK=tutchap67.output test.output + +# Broken at |MODOP;ELT;$2M;6|. Type :H for Help. +MODOP=function.output + +# Broken at |MATCAT-;*;3S;29|. Type :H for Help. +MATCAT=linalg.output + +# Broken at |STAGG-;ELT;AIS;5|. Type :H for Help. +STAGG=reductio.output + +# Broken at |GSERIES;INTEGRATE;2$;6|. Type :H for Help. +GSERIES=fixed.output + +# never finishes +INFINITELOOP=lextripk.output + +OUTS= algaggr.output algbrbf.output algfacob.output alist.output \ + allfact.output arith.output array1.output \ + array2.output arrows.output \ + assign.output bags.output bbtree.output \ + binary.output bop.output \ + bstree.output bugs.output bug10069.output bug10312.output \ + bug6357.output bug9057.output calculus.output calculus2.output \ + cardinal.output card.output \ + carten.output cclass.output char.output \ + ch.output clifford.output clif.output coercels.output \ + collect.output complex.output constant.output contfrac.output \ + contfrc.output curl.output \ + cycles1.output cycles.output \ + cyfactor.output \ + danzwill.output decimal.output defintef.output defintrf.output \ + derham.output dfloat.output \ + dhtri.output divisor.output dmp.output dpol.output \ + easter.output efi.output eigen.output elemfun.output \ + elemnum.output elfuts.output \ + elt.output eq.output \ + eqtbl.output equation2.output equation.output \ + evalex.output eval.output exdiff.output exlap.output \ + exint.output \ + exit.output exlimit.output expexpan.output explim.output \ + expr1.output \ + expr.output exprode.output exprpoly.output exseries.output \ + exsum.output farray.output ffdemo.output fferr.output \ + ffrac.output ffx72.output fib.output file.output \ + float1.output float2.output float.output \ + fname1.output fname.output fnla.output fns.output \ + fparfrac.output fparfrc.output fr1.output \ + fr2.output frac.output fr.output \ + galois.output gbf.output genups.output \ + gonshor.output \ + grpthry.output gstbl.output heap.output heat.output \ + help.output herm.output hexadec.output \ + huang.output ico.output ideal.output ifact.output \ + infprod.output \ + intaf.output intef2.output intef.output intdeq.output \ + intheory.output int.output intg0.output intlf.output \ + intmix2.output intmix.output intrf.output ipftest.output \ + is.output \ + isprime.output kafile.output kernel.output knot2.output \ + kovacic.output kuipers.output laplace.output \ + leg.output lexp.output lib.output \ + limit.output \ + lindep.output \ + list.output lode.output lodesys.output \ + lodo1.output lodo2.output lodo3.output lodo.output \ + lodof.output \ + lpoly.output \ + lupfact.output lword.output macbug.output macros.output \ + magma.output mapleok.output \ + mappkg1.output marcbench.output matbug.output \ + matrix1.output matrix22.output matrix.output \ + mfinfact.output mkfunc.output mpoly.output \ + mset2.output mset.output \ + multfact.output multiple.output ndftip.output negfloats.output \ + nepip.output newlodo.output newton.output nlode.output \ + none.output noonburg.output noptip.output nqip.output \ + nsfip.output numbers.output oct.output ode.output \ + octonion.output odpol.output op1.output \ + op.output opalg.output operator.output ovar.output \ + padic.output parabola.output \ + pascal1.output pascal.output \ + pat.output patmatch.output perman.output perm.output \ + pfr1.output pfr.output pmint.output psgenfcn.output \ + poly1.output polycoer.output \ + poly.output quat1.output quat.output \ + radff.output radix.output realclos.output reclos.output \ + repa6.output \ + robidoux.output \ + roman.output roots.output ruleset.output rules.output \ + r20abugs.output r20bugs.output r21bugsbig.output r21bugs.output \ + scherk.output \ + scope.output seg.output segbind.output \ + series2.output series.output sersolve.output \ + set.output sinCosEx.output \ + sint.output \ + skew.output slowint.output solvetra.output \ + space3.output spadprof.output sqmatrix.output sregset.output \ + stbl.output stream.output streams.output stream2.output \ + string.output strtbl.output symbol.output synonym2.output \ + synonym.output t111293.output table.output tanatan.output \ + textfile.output triglim.output \ + tsetcatbutcher.output tsetcatchemical.output tsetcatvermeer.output \ + torus.output tree.output \ + tutchap1.output tutchap2.output tutchap3.output tutchap4.output \ + uniseg.output up.output \ + vector.output viewdef.output void.output \ + wutset.output xpbwpoly.output \ + xpoly.output xpr.output \ + zdsolve.output zimmer.output zlindep.output + +# new algebra tests based on documentation +# These files are tested in a different directory. +ALGEBRA=INTHEORY.output VIEW2D.output TESTFR.output + +.PHONY: regression-tests +regression-tests: ${OUTS} + @ echo 1 finished ./$(top_builddir)/int/input + +%.output: %.input + (echo running test file $< ; \ + echo ')set message test on' > tmp.input; \ + echo ')set message auto off' >> tmp.input ; \ + echo ')read $*' >> tmp.input ; \ + echo ')lisp (bye)' >> tmp.input ; \ + echo 'systemCommand "read tmp.input"' | ${TESTSYS} | tee $*.output; \ + rm tmp.input ) + + diff --git a/src/input/Makefile.pamphlet b/src/input/Makefile.pamphlet new file mode 100644 index 00000000..cb8129e0 --- /dev/null +++ b/src/input/Makefile.pamphlet @@ -0,0 +1,927 @@ +%% Oh Emacs, this is a -*- Makefile -*-, so give me tabs. +\documentclass{article} +\usepackage{axiom} + +\title{\$SPAD/src/input Makefile} +\author{The Axiom Team} + +\begin{document} +\maketitle + +\begin{abstract} +\end{abstract} +\eject + +\tableofcontents +\eject + +\section{Introduction} +This creates the mnt/sys/input subdirectory. The files are known +as ``input'' files which are a list of Axiom commands. Each file +(say ``foo.input'') can run in an Axiom system with the command: +\begin{verbatim} +)read foo.input +\end{verbatim} + +Each of the files in this subdirectory is intended to achieve a +three goals. First, the file shows examples of how to use Axiom +algebra. Second, the file is used as a regression test to show +that Axiom properly executes the algebra. Third, the file contains +documentation on known bugs or missing algebra. + +It is important to collect as many examples as we can of working +algebra. In particular, we need machinery to extract algebra from +other pamphlet files and automatically make them into input files. +The more algebra we collect, use, and regression test the more +robust the system will be. + +When used to build a shipping system the default stanza ``use'' +will build files that show working algebra examples. + +When used for regression testing the stanza ``regress'' is used +to build all of the working examples, run them, and compare them +against known good output. Differences are highlighted and need +to be documented or fixed. + +When used for bug testing the stanza ``bug'' is used to build +the algebra with known bug chunks included. These are run to check +that known bugs have been fixed before shipping. Fixed code should +be moved to the ``regress'' status, new working examples are built +and the system should be built using ``regress'' to check that the +build did not break anything. + +\subsection{genericRules} +We use the special .PRECIOUS target to prevent deletion of the +intermediate .input files which are needed during the processing of +regress target. + +<<genericRules>>= + +${OUT}/%.input: %.input + @ echo generic 10 making $@ from $< + @ $(INSTALL) $< $@ + +.PRECIOUS: %.input + +%.input: ${IN}/%.input.pamphlet + @ echo generic 11 making $@ from $< + @$(axiom_build_document) --output=$@ --tangle $< + +${OUT}/%.as: %.as + @echo generic 12 making $@ from $< + @ $(INSTALL) $< $@ + +%.as: ${IN}/%.as.pamphlet + @echo generic 13 making $@ from $< + @ $(axiom_build_document) --output=$@ --tangle $< + +pamphlets = \ + Makefile.pamphlet \ + $(wildchar *.input.pamphlet) \ + $(wildchar.as.pamplhet) +@ + +\section{Testing stanzas (to be added)} +<<testing>>= + +.SUFFIXES: +.SUFFIXES: .input .out + +TESTSYS= \ + AXIOM="$(AXIOM)" \ + DAASE="$(axiom_targetdir)" \ + $(axiom_target_bindir)/AXIOMsys + +IN= $(axiom_src_srcdir)/input + +MID= ./$(top_builddir)/int/input + +OUT= ./$(top_builddir)/obj/$(target)/input + +INPUT= $(axiom_target_srcdir)/input + +DOC= $(axiom_target_docdir)/src/input + +.PHONY: all all-input +all: all-ax + +all-ax all-input: + @ echo making ${MID} + @ cp -p ${IN}/*.input ${MID} + @ cp -p ${IN}/axiom.test ${MID}/axiom.input + @ cp ${IN}/Makefile.int ${MID}/Makefile + @ for i in *.input ;do \ + if test ! -f `basename $$i .input`.rec ;then \ + echo aging `basename $$i .input`.rec ; \ + ${TOUCH} 0101010189 `basename $$i .input`.rec ;fi ;done + @ ${MAKE} -f Makefile `echo *.rec` + @ cp ${IN}/Makefile.obj ${OUT}/Makefile + @ cp -p *.rec ${OUT} + @ cp -p ${IN}/axiom.test axiom.input + @ (cd ${OUT} ; \ + for i in *.rec ;do \ + if test ! -f `basename $$i .rec`.out ;then \ + echo aging ${OUT}/`basename $$i .rec`.out ; \ + ${TOUCH} 0101010189 `basename $$i .rec`.out ;fi ;done) + @ (cd ${OUT} ; ${MAKE} -f Makefile `echo *.out` ) +# @ (cd ${OUT} ; maildiff ) + @ echo done + +and yet further stanzas + +.SUFFIXES: .input .rec + +all: all-ax + +all-ax: ${OUTS} + @ echo done with ${OUTS} + -rm -f stamp + $(STAMP) stamp + +.input.rec: + @ echo creating `pwd`/$*.rec + @ axiom -rm $*.input + +and still further stanzas + +.SUFFIXES: .rec .out + +all: ${OUTS} + @ echo obj done with ${OUTS} + +.rec.out: + @ echo running rec file $* from directory `pwd` + @ axiom -rv $*.rec + + +@ + +\section{The regression testing Makefile} + +This Makefile will be notangled into the [[int]] subdirectory. +It will run regression tests over all of the input files. +This will catch things we break but won't catch wrong results +that were wrong in the past. Every input file that gets regression +tested is assumed to have been hand-verified before it was added +to the list. +<<regression tests>>= + +.SUFFIXES: +.SUFFIXES: .input .output + +TESTSYS= \ + AXIOM="$(AXIOM)" \ + DAASE="$(axiom_targetdir)" \ + $(axiom_target_bindir)/AXIOMsys + +SKIP= antoine.output as-eg1.output as-eg2.output \ + as-eg3.output as-eg4.output as-eg5.output as-eg6.output \ + atansqrt.output bern.output bernpoly.output bouquet.output \ + c02aff.output \ + c02agf.output c05adf.output c05nbf.output c05pbf.output \ + c06eaf.output c06ebf.output c06ecf.output c06ekf.output \ + c06fpf.output c06fqf.output c06frf.output c06fuf.output \ + c06gbf.output c06gcf.output c06gqf.output c06gsf.output \ + cdraw.output color.output cone.output \ + conformal.output coordsys.output \ + cycloid2.output cycloid3.output cycloid.output \ + d01ajf.output d01akf.output d01alf.output d01amf.output \ + d01anf.output d01apf.output d01aqf.output d01asf.output \ + d01bbf.output d01fcf.output d01gaf.output d01gbf.output \ + d02bbf.output d02bhf.output d02cjf.output d02ejf.output \ + d02gaf.output d02gbf.output d02kef.output d02raf.output \ + d03edf.output d03eef.output d03faf.output damped.output \ + de2re.output defs.output \ + draw2dSF.output drawalg.output drawcfn.output drawcfun.output \ + drawcurv.output drawcx.output drawex.output draw.output \ + drawpoly.output drawx.output dropt.output e01baf.output \ + e01bef.output e01bff.output e01bgf.output e01bhf.output \ + e01daf.output e01saf.output e01sbf.output e01sef.output \ + e01sff.output e02adf.output e02aef.output e02agf.output \ + e02ahf.output e02ajf.output e02akf.output e02baf.output \ + e02bbf.output e02bcf.output e02bdf.output e02bef.output \ + e02daf.output e02dcf.output e02ddf.output e02def.output \ + e02dff.output e02gaf.output e02zaf.output e04dgf.output \ + e04fdf.output e04gcf.output e04jaf.output e04mbf.output \ + e04naf.output e04ucf.output e04ycf.output egg.output \ + explot2d.output explot3d.output \ + f01brf.output f01bsf.output f01maf.output \ + f01mcf.output f01qcf.output f01qdf.output f01qef.output \ + f01rcf.output f01rdf.output f01ref.output f02aaf.output \ + f02abf.output f02adf.output f02aef.output f02aff.output \ + f02agf.output f02ajf.output f02akf.output f02awf.output \ + f02axf.output f02bbf.output f02bjf.output f02fjf.output \ + f02wef.output f02xef.output f04adf.output f04arf.output \ + f04asf.output f04atf.output f04axf.output f04faf.output \ + f04jgf.output f04maf.output f04mbf.output f04mcf.output \ + f04qaf.output f07adf.output f07aef.output f07fdf.output \ + f07fef.output folium.output gary1.output gnarly1.output \ + graphics.output grdef.output helix.output \ + images1a.output images1.output images2a.output images2.output \ + images3a.output images3.output images5a.output images5.output \ + images6a.output images6.output images7a.output images7.output \ + images8a.output images8.output knot.output knownbugs.output \ + liss1.output liss2.output lump.output matrox.output \ + mountain.output mult2d.output mult3d.output multKnot.output \ + ntube.output palette.output parpcurv.output parscurv.output \ + parsurf.output pinch.output plotfile.output \ + plotlist.output pollevel.output ribbon.output \ + ribbons.output ribbonsNew.output rk4draw.output \ + s01eaf.output s13aaf.output s13acf.output s13adf.output \ + s14aaf.output s14abf.output s14baf.output s15adf.output \ + s15aef.output s17acf.output s17adf.output s17aef.output \ + s17aff.output s17agf.output s17ahf.output s17ajf.output \ + s17akf.output s17dcf.output s17def.output s17dgf.output \ + s17dhf.output s17dlf.output s18acf.output s18adf.output \ + s18aef.output s18aff.output s18dcf.output s18def.output \ + s19aaf.output s19abf.output s19acf.output s19adf.output \ + s20acf.output s20adf.output s21baf.output s21bbf.output \ + s21bcf.output s21bdf.output saddle.output \ + sininv.output sinsin2.output sinsin.output spiral.output \ + tetra.output tknot.output tschirn.output typo.output \ + vectors.output wester.output wiggle.output zimmer.output + +# Error ASEC is invalid as a function. +ASEC=errortrap.output + +# Error: FLUSH is invalid as a function +# Error signalled by newGoGet +FLUSH=regset.output + +# Error: The function WRAPPED is undefined. +WRAPPED=loop.output + +# Error: Value stack overflow. +VALUESTACK=tutchap67.output test.output + +# Broken at |MODOP;ELT;$2M;6|. Type :H for Help. +MODOP=function.output + +# Broken at |MATCAT-;*;3S;29|. Type :H for Help. +MATCAT=linalg.output + +# Broken at |STAGG-;ELT;AIS;5|. Type :H for Help. +STAGG=reductio.output + +# Broken at |GSERIES;INTEGRATE;2$;6|. Type :H for Help. +GSERIES=fixed.output + +# never finishes +INFINITELOOP=lextripk.output + +OUTS= algaggr.output algbrbf.output algfacob.output alist.output \ + allfact.output arith.output array1.output \ + array2.output arrows.output \ + assign.output bags.output bbtree.output \ + binary.output bop.output \ + bstree.output bugs.output bug10069.output bug10312.output \ + bug6357.output bug9057.output calculus.output calculus2.output \ + cardinal.output card.output \ + carten.output cclass.output char.output \ + ch.output clifford.output clif.output coercels.output \ + collect.output complex.output constant.output contfrac.output \ + contfrc.output curl.output \ + cycles1.output cycles.output \ + cyfactor.output \ + danzwill.output decimal.output defintef.output defintrf.output \ + derham.output dfloat.output \ + dhtri.output divisor.output dmp.output dpol.output \ + easter.output efi.output eigen.output elemfun.output \ + elemnum.output elfuts.output \ + elt.output eq.output \ + eqtbl.output equation2.output equation.output \ + evalex.output eval.output exdiff.output exlap.output \ + exint.output \ + exit.output exlimit.output expexpan.output explim.output \ + expr1.output \ + expr.output exprode.output exprpoly.output exseries.output \ + exsum.output farray.output ffdemo.output fferr.output \ + ffrac.output ffx72.output fib.output file.output \ + float1.output float2.output float.output \ + fname1.output fname.output fnla.output fns.output \ + fparfrac.output fparfrc.output fr1.output \ + fr2.output frac.output fr.output \ + galois.output gbf.output genups.output \ + gonshor.output \ + grpthry.output gstbl.output heap.output heat.output \ + help.output herm.output hexadec.output \ + huang.output ico.output ideal.output ifact.output \ + infprod.output \ + intaf.output intef2.output intef.output intdeq.output \ + intheory.output int.output intg0.output intlf.output \ + intmix2.output intmix.output intrf.output ipftest.output \ + is.output \ + isprime.output kafile.output kernel.output knot2.output \ + kovacic.output kuipers.output laplace.output \ + leg.output lexp.output lib.output \ + limit.output \ + lindep.output \ + list.output lode.output lodesys.output \ + lodo1.output lodo2.output lodo3.output lodo.output \ + lodof.output \ + lpoly.output \ + lupfact.output lword.output macbug.output macros.output \ + magma.output mapleok.output \ + mappkg1.output marcbench.output matbug.output \ + matrix1.output matrix22.output matrix.output \ + mfinfact.output mkfunc.output mpoly.output \ + mset2.output mset.output \ + multfact.output multiple.output ndftip.output negfloats.output \ + nepip.output newlodo.output newton.output nlode.output \ + none.output noonburg.output noptip.output nqip.output \ + nsfip.output numbers.output oct.output ode.output \ + octonion.output odpol.output op1.output \ + op.output opalg.output operator.output ovar.output \ + padic.output parabola.output \ + pascal1.output pascal.output \ + pat.output patmatch.output perman.output perm.output \ + pfr1.output pfr.output pmint.output psgenfcn.output \ + poly1.output polycoer.output \ + poly.output quat1.output quat.output \ + radff.output radix.output realclos.output reclos.output \ + repa6.output \ + robidoux.output \ + roman.output roots.output ruleset.output rules.output \ + r20abugs.output r20bugs.output r21bugsbig.output r21bugs.output \ + scherk.output \ + scope.output seg.output segbind.output \ + series2.output series.output sersolve.output \ + set.output sinCosEx.output \ + sint.output \ + skew.output slowint.output solvetra.output \ + space3.output spadprof.output sqmatrix.output sregset.output \ + stbl.output stream.output streams.output stream2.output \ + string.output strtbl.output symbol.output synonym2.output \ + synonym.output t111293.output table.output tanatan.output \ + textfile.output triglim.output \ + tsetcatbutcher.output tsetcatchemical.output tsetcatvermeer.output \ + torus.output tree.output \ + tutchap1.output tutchap2.output tutchap3.output tutchap4.output \ + uniseg.output up.output \ + vector.output viewdef.output void.output \ + wutset.output xpbwpoly.output \ + xpoly.output xpr.output \ + zdsolve.output zimmer.output zlindep.output + +# new algebra tests based on documentation +# These files are tested in a different directory. +ALGEBRA=INTHEORY.output VIEW2D.output TESTFR.output + +.PHONY: regression-tests +regression-tests: ${OUTS} + @ echo 1 finished ./$(top_builddir)/int/input + +%.output: %.input + (echo running test file $< ; \ + echo ')set message test on' > tmp.input; \ + echo ')set message auto off' >> tmp.input ; \ + echo ')read $*' >> tmp.input ; \ + echo ')lisp (bye)' >> tmp.input ; \ + echo 'systemCommand "read tmp.input"' | ${TESTSYS} | tee $*.output; \ + rm tmp.input ) + +@ + +\section{The Makefile} + +This Makefile will be notangled into the [[input]] subdirectory. +<<*>>= + +subdir = src/input/ + +IN=$(axiom_src_srcdir)/input +MID=./$(top_builddir)/int/input +OUT=$(axiom_targetdir)/input +DOC=$(axiom_target_docdir)/src/input + + +ASFILES=${OUT}/aseg6.as ${OUT}/aseg7.as ${OUT}/ecfact.as \ + ${OUT}/hilbert.as ${OUT}/matops.as ${OUT}/pdecomp0.as \ + ${OUT}/romnum.as + +NAGLIB=${OUT}/c02aff.input ${OUT}/c02agf.input ${OUT}/c05adf.input \ + ${OUT}/c05nbf.input ${OUT}/c05pbf.input ${OUT}/c06eaf.input \ + ${OUT}/c06ebf.input ${OUT}/c06ecf.input ${OUT}/c06ekf.input \ + ${OUT}/c06fpf.input ${OUT}/c06fqf.input ${OUT}/c06frf.input \ + ${OUT}/c06fuf.input ${OUT}/c06gbf.input ${OUT}/c06gcf.input \ + ${OUT}/c06gqf.input ${OUT}/c06gsf.input \ + ${OUT}/d01ajf.input ${OUT}/d01akf.input ${OUT}/d01alf.input \ + ${OUT}/d01amf.input ${OUT}/d01anf.input ${OUT}/d01apf.input \ + ${OUT}/d01aqf.input ${OUT}/d01asf.input ${OUT}/d01bbf.input \ + ${OUT}/d01fcf.input ${OUT}/d01gaf.input ${OUT}/d01gbf.input \ + ${OUT}/d02bbf.input ${OUT}/d02bhf.input ${OUT}/d02cjf.input \ + ${OUT}/d02ejf.input ${OUT}/d02gaf.input ${OUT}/d02gbf.input \ + ${OUT}/d02kef.input ${OUT}/d02raf.input ${OUT}/d03edf.input \ + ${OUT}/d03eef.input ${OUT}/d03faf.input \ + ${OUT}/e01baf.input ${OUT}/e01bef.input ${OUT}/e01bff.input \ + ${OUT}/e01bgf.input ${OUT}/e01bhf.input ${OUT}/e01daf.input \ + ${OUT}/e01saf.input ${OUT}/e01sbf.input ${OUT}/e01sef.input \ + ${OUT}/e01sff.input ${OUT}/e02adf.input ${OUT}/e02aef.input \ + ${OUT}/e02agf.input ${OUT}/e02ahf.input ${OUT}/e02ajf.input \ + ${OUT}/e02akf.input ${OUT}/e02baf.input ${OUT}/e02bbf.input \ + ${OUT}/e02bcf.input ${OUT}/e02bdf.input ${OUT}/e02bef.input \ + ${OUT}/e02daf.input ${OUT}/e02dcf.input ${OUT}/e02ddf.input \ + ${OUT}/e02def.input ${OUT}/e02dff.input ${OUT}/e02gaf.input \ + ${OUT}/e02zaf.input ${OUT}/e04dgf.input ${OUT}/e04fdf.input \ + ${OUT}/e04gcf.input ${OUT}/e04jaf.input ${OUT}/e04mbf.input \ + ${OUT}/e04naf.input ${OUT}/e04ucf.input ${OUT}/e04ycf.input \ + ${OUT}/f01brf.input ${OUT}/f01bsf.input ${OUT}/f01maf.input \ + ${OUT}/f01mcf.input ${OUT}/f01qcf.input ${OUT}/f01qdf.input \ + ${OUT}/f01qef.input ${OUT}/f01rcf.input ${OUT}/f01rdf.input \ + ${OUT}/f01ref.input ${OUT}/f02aaf.input ${OUT}/f02abf.input \ + ${OUT}/f02adf.input ${OUT}/f02aef.input ${OUT}/f02aff.input \ + ${OUT}/f02agf.input ${OUT}/f02ajf.input ${OUT}/f02akf.input \ + ${OUT}/f02awf.input ${OUT}/f02axf.input ${OUT}/f02bbf.input \ + ${OUT}/f02bjf.input ${OUT}/f02fjf.input ${OUT}/f02wef.input \ + ${OUT}/f02xef.input ${OUT}/f04adf.input ${OUT}/f04arf.input \ + ${OUT}/f04asf.input ${OUT}/f04atf.input ${OUT}/f04axf.input \ + ${OUT}/f04faf.input ${OUT}/f04jgf.input ${OUT}/f04maf.input \ + ${OUT}/f04mbf.input ${OUT}/f04mcf.input ${OUT}/f04qaf.input \ + ${OUT}/f07adf.input ${OUT}/f07aef.input ${OUT}/f07fdf.input \ + ${OUT}/f07fef.input \ + ${OUT}/s01eaf.input ${OUT}/s13aaf.input ${OUT}/s13acf.input \ + ${OUT}/s13adf.input ${OUT}/s14aaf.input ${OUT}/s14abf.input \ + ${OUT}/s14baf.input ${OUT}/s15adf.input ${OUT}/s15aef.input \ + ${OUT}/s17acf.input ${OUT}/s17adf.input ${OUT}/s17aef.input \ + ${OUT}/s17aff.input ${OUT}/s17agf.input ${OUT}/s17ahf.input \ + ${OUT}/s17ajf.input ${OUT}/s17akf.input ${OUT}/s17dcf.input \ + ${OUT}/s17def.input ${OUT}/s17dgf.input ${OUT}/s17dhf.input \ + ${OUT}/s17dlf.input ${OUT}/s18acf.input ${OUT}/s18adf.input \ + ${OUT}/s18aef.input ${OUT}/s18aff.input ${OUT}/s18dcf.input \ + ${OUT}/s18def.input ${OUT}/s19aaf.input ${OUT}/s19abf.input \ + ${OUT}/s19acf.input ${OUT}/s19adf.input ${OUT}/s20acf.input \ + ${OUT}/s20adf.input ${OUT}/s21baf.input ${OUT}/s21bbf.input \ + ${OUT}/s21bcf.input ${OUT}/s21bdf.input + +FILES= ${OUT}/algaggr.input ${OUT}/algbrbf.input ${OUT}/algfacob.input \ + ${OUT}/alist.input ${OUT}/allfact.input ${OUT}/antoine.input \ + ${OUT}/array1.input ${OUT}/array2.input ${OUT}/arrows.input \ + ${OUT}/assign.input ${OUT}/atansqrt.input ${OUT}/axiom.input \ + ${OUT}/asec.input \ + ${OUT}/bags.input ${OUT}/bbtree.input ${OUT}/bern.input \ + ${OUT}/bernpoly.input ${OUT}/binary.input ${OUT}/bop.input \ + ${OUT}/bouquet.input ${OUT}/bstree.input ${OUT}/bug6357.input \ + ${OUT}/bug9057.input ${OUT}/bug10069.input ${OUT}/bug10312.input \ + ${OUT}/calculus.input \ + ${OUT}/cardinal.input ${OUT}/card.input ${OUT}/carten.input \ + ${OUT}/cclass.input ${OUT}/cdraw.input ${OUT}/char.input \ + ${OUT}/ch.input ${OUT}/clifford.input ${OUT}/clif.input \ + ${OUT}/coercels.input ${OUT}/collect.input ${OUT}/color.input \ + ${OUT}/complex.input ${OUT}/cone.input ${OUT}/conformal.input \ + ${OUT}/constant.input \ + ${OUT}/contfrac.input ${OUT}/contfrc.input ${OUT}/coordsys.input \ + ${OUT}/curl.input \ + ${OUT}/cycles.input ${OUT}/cycles1.input ${OUT}/cycloid.input \ + ${OUT}/cycloid2.input \ + ${OUT}/cycloid3.input ${OUT}/cyfactor.input ${OUT}/damped.input \ + ${OUT}/danzwill.input ${OUT}/decimal.input ${OUT}/defs.input \ + ${OUT}/defintef.input ${OUT}/defintrf.input ${OUT}/derham.input \ + ${OUT}/de2re.input \ + ${OUT}/dfloat.input ${OUT}/dhtri.input ${OUT}/divisor.input \ + ${OUT}/dmp.input ${OUT}/dpol.input ${OUT}/draw2dSF.input \ + ${OUT}/drawalg.input ${OUT}/drawcfn.input \ + ${OUT}/drawcfun.input ${OUT}/drawcurv.input \ + ${OUT}/draw.input ${OUT}/drawcx.input ${OUT}/drawex.input \ + ${OUT}/drawpoly.input ${OUT}/drawx.input \ + ${OUT}/easter.input ${OUT}/efi.input ${OUT}/egg.input \ + ${OUT}/eigen.input \ + ${OUT}/elemfun.input ${OUT}/elemnum.input ${OUT}/elfuts.input \ + ${OUT}/elt.input \ + ${OUT}/eq.input ${OUT}/eqtbl.input ${OUT}/equation.input \ + ${OUT}/errortrap.input \ + ${OUT}/eval.input ${OUT}/exit.input ${OUT}/expexpan.input \ + ${OUT}/explim.input ${OUT}/explot2d.input ${OUT}/explot3d.input \ + ${OUT}/expr1.input ${OUT}/exprpoly.input \ + ${OUT}/farray.input ${OUT}/ffdemo.input \ + ${OUT}/fferr.input ${OUT}/ffrac.input ${OUT}/ffx72.input \ + ${OUT}/fib.input ${OUT}/fixed.input \ + ${OUT}/file.input ${OUT}/float2.input \ + ${OUT}/float.input ${OUT}/float1.input ${OUT}/fname.input \ + ${OUT}/fname1.input ${OUT}/fnla.input ${OUT}/folium.input \ + ${OUT}/fparfrac.input \ + ${OUT}/fparfrc.input ${OUT}/fr2.input ${OUT}/frac.input \ + ${OUT}/fr.input ${OUT}/fr1.input ${OUT}/gary1.input \ + ${OUT}/gbf.input ${OUT}/genups.input ${OUT}/gnarly1.input \ + ${OUT}/gonshor.input ${OUT}/grdef.input \ + ${OUT}/gstbl.input \ + ${OUT}/heap.input ${OUT}/heat.input ${OUT}/helix.input \ + ${OUT}/herm.input ${OUT}/hexadec.input ${OUT}/huang.input \ + ${OUT}/ico.input ${OUT}/ideal.input ${OUT}/ifact.input \ + ${OUT}/images1.input ${OUT}/images1a.input ${OUT}/images3a.input \ + ${OUT}/images3.input ${OUT}/images6.input ${OUT}/images6a.input \ + ${OUT}/images7.input ${OUT}/images7a.input ${OUT}/infprod.input \ + ${OUT}/intaf.input ${OUT}/intdeq.input ${OUT}/intef.input \ + ${OUT}/intg0.input ${OUT}/intheory.input ${OUT}/int.input \ + ${OUT}/intlf.input ${OUT}/intmix.input ${OUT}/intrf.input \ + ${OUT}/ipftest.input ${OUT}/is.input ${OUT}/isprime.input \ + ${OUT}/kafile.input ${OUT}/kernel.input ${OUT}/knot.input \ + ${OUT}/kovacic.input ${OUT}/kuipers.input \ + ${OUT}/laplace.input ${OUT}/leg.input ${OUT}/lexp.input \ + ${OUT}/lextripk.input ${OUT}/lib.input ${OUT}/limit.input \ + ${OUT}/lindep.input ${OUT}/liss1.input ${OUT}/liss2.input \ + ${OUT}/list.input ${OUT}/lode.input ${OUT}/lodesys.input \ + ${OUT}/lodo1.input ${OUT}/lodo2.input ${OUT}/lodof.input \ + ${OUT}/lodo.input ${OUT}/lodo3.input ${OUT}/lpoly.input \ + ${OUT}/lump.input \ + ${OUT}/lupfact.input ${OUT}/lword.input ${OUT}/macbug.input \ + ${OUT}/macros.input ${OUT}/marcbench.input ${OUT}/magma.input \ + ${OUT}/mapleok.input ${OUT}/mappkg1.input ${OUT}/matbug.input \ + ${OUT}/matrix22.input ${OUT}/matrix.input ${OUT}/matrix1.input \ + ${OUT}/mfinfact.input ${OUT}/mkfunc.input ${OUT}/mountain.input \ + ${OUT}/mpoly.input ${OUT}/mset.input ${OUT}/mset2.input \ + ${OUT}/multfact.input ${OUT}/multKnot.input ${OUT}/mult3d.input \ + ${OUT}/multiple.input \ + ${OUT}/ndftip.input ${OUT}/newlodo.input \ + ${OUT}/negfloats.input \ + ${OUT}/nepip.input ${OUT}/newton.input \ + ${OUT}/nlode.input ${OUT}/none.input ${OUT}/noonburg.input \ + ${OUT}/noptip.input ${OUT}/nqip.input ${OUT}/nsfip.input \ + ${OUT}/ntube.input ${OUT}/oct.input ${OUT}/ode.input \ + ${OUT}/octonion.input ${OUT}/odpol.input \ + ${OUT}/opalg.input ${OUT}/operator.input ${OUT}/op.input \ + ${OUT}/op1.input ${OUT}/ovar.input \ + ${OUT}/padic.input ${OUT}/palette.input \ + ${OUT}/parpcurv.input ${OUT}/parscurv.input ${OUT}/parsurf.input \ + ${OUT}/pascal1.input \ + ${OUT}/pascal.input ${OUT}/patmatch.input ${OUT}/perman.input \ + ${OUT}/perm.input ${OUT}/pfr.input ${OUT}/pfr1.input \ + ${OUT}/pinch.input ${OUT}/plotfile.input ${OUT}/pollevel.input \ + ${OUT}/pmint.input ${OUT}/polycoer.input \ + ${OUT}/poly1.input ${OUT}/psgenfcn.input \ + ${OUT}/quat.input ${OUT}/quat1.input ${OUT}/ribbon.input \ + ${OUT}/ribbons.input ${OUT}/ribbonsNew.input ${OUT}/rk4draw.input \ + ${OUT}/r20abugs.input \ + ${OUT}/r20bugs.input ${OUT}/r21bugsbig.input \ + ${OUT}/r21bugs.input \ + ${OUT}/radff.input ${OUT}/radix.input ${OUT}/realclos.input \ + ${OUT}/reclos.input ${OUT}/regset.input \ + ${OUT}/robidoux.input ${OUT}/roman.input ${OUT}/roots.input \ + ${OUT}/ruleset.input ${OUT}/rules.input ${OUT}/saddle.input \ + ${OUT}/scherk.input ${OUT}/scope.input \ + ${OUT}/segbind.input ${OUT}/seg.input ${OUT}/series2.input \ + ${OUT}/series.input ${OUT}/sersolve.input ${OUT}/set.input \ + ${OUT}/sinCosEx.input ${OUT}/sininv.input ${OUT}/sinsin.input \ + ${OUT}/sinsin2.input ${OUT}/sint.input ${OUT}/skew.input \ + ${OUT}/slowint.input ${OUT}/solvetra.input ${OUT}/space3.input \ + ${OUT}/spiral.input \ + ${OUT}/sqmatrix.input ${OUT}/sregset.input ${OUT}/stbl.input \ + ${OUT}/stream2.input ${OUT}/stream.input ${OUT}/streams.input \ + ${OUT}/string.input ${OUT}/strtbl.input ${OUT}/symbol.input \ + ${OUT}/synonym.input ${OUT}/t111293.input \ + ${OUT}/table.input ${OUT}/tanatan.input ${OUT}/test.input \ + ${OUT}/tetra.input ${OUT}/textfile.input ${OUT}/tknot.input \ + ${OUT}/tree.input \ + ${OUT}/triglim.input ${OUT}/tschirn.input ${OUT}/tsetcatbutcher.input \ + ${OUT}/tsetcatchemical.input ${OUT}/tsetcatvermeer.input \ + ${OUT}/tutchap1.input ${OUT}/tutchap2.input ${OUT}/tutchap3.input \ + ${OUT}/tutchap4.input ${OUT}/tutchap67.input ${OUT}/typo.input \ + ${OUT}/uniseg.input ${OUT}/up.input \ + ${OUT}/vector.input ${OUT}/vectors.input ${OUT}/viewdef.input \ + ${OUT}/void.input ${OUT}/wiggle.input \ + ${OUT}/wutset.input \ + ${OUT}/xpbwpoly.input ${OUT}/xpoly.input ${OUT}/xpr.input \ + ${OUT}/zdsolve.input ${OUT}/zimmer.input ${OUT}/zlindep.input + +FILES2=${OUT}/arith.input ${OUT}/bugs.input \ + ${OUT}/calculus2.input \ + ${OUT}/curl.input \ + ${OUT}/equation2.input ${OUT}/evalex.input \ + ${OUT}/exdiff.input ${OUT}/exint.input ${OUT}/exlap.input \ + ${OUT}/exlimit.input \ + ${OUT}/expr.input ${OUT}/exprode.input ${OUT}/exseries.input \ + ${OUT}/exsum.input ${OUT}/fns.input \ + ${OUT}/function.input ${OUT}/galois.input \ + ${OUT}/grpthry.input \ + ${OUT}/help.input ${OUT}/intef2.input \ + ${OUT}/intmix2.input ${OUT}/knot2.input ${OUT}/linalg.input \ + ${OUT}/loop.input \ + ${OUT}/numbers.input \ + ${OUT}/parabola.input ${OUT}/pat.input \ + ${OUT}/poly.input ${OUT}/reductio.input ${OUT}/repa6.input \ + ${OUT}/spadprof.input \ + ${OUT}/synonym2.input ${OUT}/torus.input + +BROKEN=${OUT}/as-eg1.input ${OUT}/as-eg2.input ${OUT}/as-eg3.input \ + ${OUT}/as-eg4.input ${OUT}/as-eg5.input ${OUT}/as-eg6.input + +# This viewport has already been closed! +VIEWPORT=${OUT}/graphics.input + +# Error: Value stack overflow. +VALUESTACK=${OUT}/images2a.input ${OUT}/images2.input ${OUT}/images5a.input \ + ${OUT}/images5.input ${OUT}/images8a.input ${OUT}/images8.input \ + ${OUT}/mult2d.input ${OUT}/plotlist.input + +# documented test cases +DOCFILES= \ + ${DOC}/algaggr.input.dvi ${DOC}/algbrbf.input.dvi \ + ${DOC}/algfacob.input.dvi ${DOC}/alist.input.dvi \ + ${DOC}/allfact.input.dvi ${DOC}/antoine.input.dvi \ + ${DOC}/arith.input.dvi ${DOC}/array1.input.dvi \ + ${DOC}/array2.input.dvi ${DOC}/arrows.input.dvi \ + ${DOC}/as-eg1.input.dvi ${DOC}/as-eg2.input.dvi \ + ${DOC}/as-eg3.input.dvi ${DOC}/as-eg4.input.dvi \ + ${DOC}/as-eg5.input.dvi ${DOC}/aseg6.as.dvi \ + ${DOC}/as-eg6.input.dvi ${DOC}/aseg7.as.dvi \ + ${DOC}/asec.input.dvi \ + ${DOC}/assign.input.dvi ${DOC}/atansqrt.input.dvi \ + ${DOC}/axiom.input.dvi ${DOC}/bags.input.dvi \ + ${DOC}/bbtree.input.dvi ${DOC}/bern.input.dvi \ + ${DOC}/bernpoly.input.dvi ${DOC}/binary.input.dvi \ + ${DOC}/bop.input.dvi ${DOC}/bouquet.input.dvi \ + ${DOC}/bstree.input.dvi ${DOC}/bug10069.input.dvi \ + ${DOC}/bug10312.input.dvi ${DOC}/bug6357.input.dvi \ + ${DOC}/bug9057.input.dvi ${DOC}/bugs.input.dvi \ + ${DOC}/c02aff.input.dvi ${DOC}/c02agf.input.dvi \ + ${DOC}/c05adf.input.dvi ${DOC}/c05nbf.input.dvi \ + ${DOC}/c05pbf.input.dvi ${DOC}/c06eaf.input.dvi \ + ${DOC}/c06ebf.input.dvi ${DOC}/c06ecf.input.dvi \ + ${DOC}/c06ekf.input.dvi ${DOC}/c06fpf.input.dvi \ + ${DOC}/c06fqf.input.dvi ${DOC}/c06frf.input.dvi \ + ${DOC}/c06fuf.input.dvi ${DOC}/c06gbf.input.dvi \ + ${DOC}/c06gcf.input.dvi ${DOC}/c06gqf.input.dvi \ + ${DOC}/c06gsf.input.dvi ${DOC}/calculus2.input.dvi \ + ${DOC}/calculus.input.dvi ${DOC}/cardinal.input.dvi \ + ${DOC}/card.input.dvi ${DOC}/carten.input.dvi \ + ${DOC}/cclass.input.dvi ${DOC}/cdraw.input.dvi \ + ${DOC}/char.input.dvi ${DOC}/ch.input.dvi \ + ${DOC}/clifford.input.dvi ${DOC}/clif.input.dvi \ + ${DOC}/coercels.input.dvi ${DOC}/collect.input.dvi \ + ${DOC}/color.input.dvi ${DOC}/complex.input.dvi \ + ${DOC}/cone.input.dvi ${DOC}/conformal.input.dvi \ + ${DOC}/constant.input.dvi ${DOC}/contfrac.input.dvi \ + ${DOC}/contfrc.input.dvi ${DOC}/coordsys.input.dvi \ + ${DOC}/curl.input.dvi ${DOC}/cycles1.input.dvi \ + ${DOC}/cycles.input.dvi ${DOC}/cycloid2.input.dvi \ + ${DOC}/cycloid3.input.dvi ${DOC}/cycloid.input.dvi \ + ${DOC}/cyfactor.input.dvi ${DOC}/d01ajf.input.dvi \ + ${DOC}/d01akf.input.dvi ${DOC}/d01alf.input.dvi \ + ${DOC}/d01amf.input.dvi ${DOC}/d01anf.input.dvi \ + ${DOC}/d01apf.input.dvi ${DOC}/d01aqf.input.dvi \ + ${DOC}/d01asf.input.dvi ${DOC}/d01bbf.input.dvi \ + ${DOC}/d01fcf.input.dvi ${DOC}/d01gaf.input.dvi \ + ${DOC}/d01gbf.input.dvi ${DOC}/d02bbf.input.dvi \ + ${DOC}/d02bhf.input.dvi ${DOC}/d02cjf.input.dvi \ + ${DOC}/d02ejf.input.dvi ${DOC}/d02gaf.input.dvi \ + ${DOC}/d02gbf.input.dvi ${DOC}/d02kef.input.dvi \ + ${DOC}/d02raf.input.dvi ${DOC}/d03edf.input.dvi \ + ${DOC}/d03eef.input.dvi ${DOC}/d03faf.input.dvi \ + ${DOC}/damped.input.dvi ${DOC}/danzwill.input.dvi \ + ${DOC}/de2re.input.dvi ${DOC}/decimal.input.dvi \ + ${DOC}/defintef.input.dvi ${DOC}/defintrf.input.dvi \ + ${DOC}/defs.input.dvi ${DOC}/derham.input.dvi \ + ${DOC}/dfloat.input.dvi ${DOC}/dhtri.input.dvi \ + ${DOC}/divisor.input.dvi ${DOC}/dmp.input.dvi \ + ${DOC}/dpol.input.dvi \ + ${DOC}/draw2dSF.input.dvi ${DOC}/drawalg.input.dvi \ + ${DOC}/drawcfn.input.dvi ${DOC}/drawcfun.input.dvi \ + ${DOC}/drawcurv.input.dvi ${DOC}/drawcx.input.dvi \ + ${DOC}/drawex.input.dvi ${DOC}/draw.input.dvi \ + ${DOC}/drawpoly.input.dvi ${DOC}/drawx.input.dvi \ + ${DOC}/dropt.input.dvi ${DOC}/e01baf.input.dvi \ + ${DOC}/e01bef.input.dvi ${DOC}/e01bff.input.dvi \ + ${DOC}/e01bgf.input.dvi ${DOC}/e01bhf.input.dvi \ + ${DOC}/e01daf.input.dvi ${DOC}/e01saf.input.dvi \ + ${DOC}/e01sbf.input.dvi ${DOC}/e01sef.input.dvi \ + ${DOC}/e01sff.input.dvi ${DOC}/e02adf.input.dvi \ + ${DOC}/e02aef.input.dvi ${DOC}/e02agf.input.dvi \ + ${DOC}/e02ahf.input.dvi ${DOC}/e02ajf.input.dvi \ + ${DOC}/e02akf.input.dvi ${DOC}/e02baf.input.dvi \ + ${DOC}/e02bbf.input.dvi ${DOC}/e02bcf.input.dvi \ + ${DOC}/e02bdf.input.dvi ${DOC}/e02bef.input.dvi \ + ${DOC}/e02daf.input.dvi ${DOC}/e02dcf.input.dvi \ + ${DOC}/e02ddf.input.dvi ${DOC}/e02def.input.dvi \ + ${DOC}/e02dff.input.dvi ${DOC}/e02gaf.input.dvi \ + ${DOC}/e02zaf.input.dvi ${DOC}/e04dgf.input.dvi \ + ${DOC}/e04fdf.input.dvi ${DOC}/e04gcf.input.dvi \ + ${DOC}/e04jaf.input.dvi ${DOC}/e04mbf.input.dvi \ + ${DOC}/e04naf.input.dvi ${DOC}/e04ucf.input.dvi \ + ${DOC}/e04ycf.input.dvi ${DOC}/easter.input.dvi \ + ${DOC}/ecfact.as.dvi ${DOC}/efi.input.dvi \ + ${DOC}/egg.input.dvi ${DOC}/eigen.input.dvi \ + ${DOC}/elemfun.input.dvi ${DOC}/elemnum.input.dvi \ + ${DOC}/elfuts.input.dvi ${DOC}/elt.input.dvi \ + ${DOC}/eq.input.dvi ${DOC}/eqtbl.input.dvi \ + ${DOC}/equation2.input.dvi ${DOC}/equation.input.dvi \ + ${DOC}/errortrap.input.dvi ${DOC}/evalex.input.dvi \ + ${DOC}/eval.input.dvi ${DOC}/exdiff.input.dvi \ + ${DOC}/exint.input.dvi ${DOC}/exit.input.dvi \ + ${DOC}/exlap.input.dvi ${DOC}/exlimit.input.dvi \ + ${DOC}/expexpan.input.dvi ${DOC}/explim.input.dvi \ + ${DOC}/explot2d.input.dvi ${DOC}/explot3d.input.dvi \ + ${DOC}/expr1.input.dvi ${DOC}/expr.input.dvi \ + ${DOC}/exprode.input.dvi ${DOC}/exprpoly.input.dvi \ + ${DOC}/exseries.input.dvi ${DOC}/exsum.input.dvi \ + ${DOC}/f01brf.input.dvi ${DOC}/f01bsf.input.dvi \ + ${DOC}/f01maf.input.dvi ${DOC}/f01mcf.input.dvi \ + ${DOC}/f01qcf.input.dvi ${DOC}/f01qdf.input.dvi \ + ${DOC}/f01qef.input.dvi ${DOC}/f01rcf.input.dvi \ + ${DOC}/f01rdf.input.dvi ${DOC}/f01ref.input.dvi \ + ${DOC}/f02aaf.input.dvi ${DOC}/f02abf.input.dvi \ + ${DOC}/f02adf.input.dvi ${DOC}/f02aef.input.dvi \ + ${DOC}/f02aff.input.dvi ${DOC}/f02agf.input.dvi \ + ${DOC}/f02ajf.input.dvi ${DOC}/f02akf.input.dvi \ + ${DOC}/f02awf.input.dvi ${DOC}/f02axf.input.dvi \ + ${DOC}/f02bbf.input.dvi ${DOC}/f02bjf.input.dvi \ + ${DOC}/f02fjf.input.dvi ${DOC}/f02wef.input.dvi \ + ${DOC}/f02xef.input.dvi ${DOC}/f04adf.input.dvi \ + ${DOC}/f04arf.input.dvi ${DOC}/f04asf.input.dvi \ + ${DOC}/f04atf.input.dvi ${DOC}/f04axf.input.dvi \ + ${DOC}/f04faf.input.dvi ${DOC}/f04jgf.input.dvi \ + ${DOC}/f04maf.input.dvi ${DOC}/f04mbf.input.dvi \ + ${DOC}/f04mcf.input.dvi ${DOC}/f04qaf.input.dvi \ + ${DOC}/f07adf.input.dvi ${DOC}/f07aef.input.dvi \ + ${DOC}/f07fdf.input.dvi ${DOC}/f07fef.input.dvi \ + ${DOC}/farray.input.dvi ${DOC}/ffdemo.input.dvi \ + ${DOC}/fferr.input.dvi ${DOC}/ffrac.input.dvi \ + ${DOC}/ffx72.input.dvi ${DOC}/fib.input.dvi \ + ${DOC}/file.input.dvi ${DOC}/fixed.input.dvi \ + ${DOC}/float1.input.dvi ${DOC}/float2.input.dvi \ + ${DOC}/float.input.dvi ${DOC}/fname1.input.dvi \ + ${DOC}/fname.input.dvi ${DOC}/fnla.input.dvi \ + ${DOC}/fns.input.dvi ${DOC}/folium.input.dvi \ + ${DOC}/fparfrac.input.dvi ${DOC}/fparfrc.input.dvi \ + ${DOC}/fr1.input.dvi ${DOC}/fr2.input.dvi \ + ${DOC}/frac.input.dvi ${DOC}/fr.input.dvi \ + ${DOC}/function.input.dvi ${DOC}/galois.input.dvi \ + ${DOC}/gary1.input.dvi ${DOC}/gbf.input.dvi \ + ${DOC}/genups.input.dvi ${DOC}/gnarly1.input.dvi \ + ${DOC}/gonshor.input.dvi ${DOC}/graphics.input.dvi \ + ${DOC}/grdef.input.dvi ${DOC}/grpthry.input.dvi \ + ${DOC}/gstbl.input.dvi ${DOC}/heap.input.dvi \ + ${DOC}/heat.input.dvi ${DOC}/helix.input.dvi \ + ${DOC}/help.input.dvi ${DOC}/herm.input.dvi \ + ${DOC}/hexadec.input.dvi ${DOC}/hilbert.as.dvi \ + ${DOC}/huang.input.dvi ${DOC}/ico.input.dvi \ + ${DOC}/ideal.input.dvi ${DOC}/ifact.input.dvi \ + ${DOC}/images1a.input.dvi ${DOC}/images1.input.dvi \ + ${DOC}/images2a.input.dvi ${DOC}/images2.input.dvi \ + ${DOC}/images3a.input.dvi ${DOC}/images3.input.dvi \ + ${DOC}/images5a.input.dvi ${DOC}/images5.input.dvi \ + ${DOC}/images6a.input.dvi ${DOC}/images6.input.dvi \ + ${DOC}/images7a.input.dvi ${DOC}/images7.input.dvi \ + ${DOC}/images8a.input.dvi ${DOC}/images8.input.dvi \ + ${DOC}/infprod.input.dvi ${DOC}/intaf.input.dvi \ + ${DOC}/intdeq.input.dvi ${DOC}/intef2.input.dvi \ + ${DOC}/intef.input.dvi ${DOC}/intg0.input.dvi \ + ${DOC}/intheory.input.dvi ${DOC}/int.input.dvi \ + ${DOC}/intlf.input.dvi ${DOC}/intmix2.input.dvi \ + ${DOC}/intmix.input.dvi ${DOC}/intrf.input.dvi \ + ${DOC}/ipftest.input.dvi ${DOC}/is.input.dvi \ + ${DOC}/isprime.input.dvi ${DOC}/kafile.input.dvi \ + ${DOC}/kernel.input.dvi ${DOC}/knot2.input.dvi \ + ${DOC}/knot.input.dvi ${DOC}/knownbugs.input.dvi \ + ${DOC}/kovacic.input.dvi ${DOC}/kuipers.input.dvi \ + ${DOC}/laplace.input.dvi ${DOC}/leg.input.dvi \ + ${DOC}/lexp.input.dvi ${DOC}/lextripk.input.dvi \ + ${DOC}/lib.input.dvi ${DOC}/limit.input.dvi \ + ${DOC}/linalg.input.dvi ${DOC}/lindep.input.dvi \ + ${DOC}/liss1.input.dvi ${DOC}/liss2.input.dvi \ + ${DOC}/list.input.dvi ${DOC}/lode.input.dvi \ + ${DOC}/lodesys.input.dvi ${DOC}/lodo1.input.dvi \ + ${DOC}/lodo2.input.dvi ${DOC}/lodo3.input.dvi \ + ${DOC}/lodof.input.dvi ${DOC}/lodo.input.dvi \ + ${DOC}/loop.input.dvi ${DOC}/lpoly.input.dvi \ + ${DOC}/lump.input.dvi ${DOC}/lupfact.input.dvi \ + ${DOC}/lword.input.dvi ${DOC}/macbug.input.dvi \ + ${DOC}/macros.input.dvi ${DOC}/magma.input.dvi \ + ${DOC}/mapleok.input.dvi ${DOC}/mappkg1.input.dvi \ + ${DOC}/marcbench.input.dvi ${DOC}/matbug.input.dvi \ + ${DOC}/matops.as.dvi ${DOC}/matrix1.input.dvi \ + ${DOC}/matrix22.input.dvi ${DOC}/matrix.input.dvi \ + ${DOC}/matrox.input.dvi ${DOC}/mfinfact.input.dvi \ + ${DOC}/mkfunc.input.dvi ${DOC}/mountain.input.dvi \ + ${DOC}/mpoly.input.dvi ${DOC}/mset2.input.dvi \ + ${DOC}/mset.input.dvi ${DOC}/mult2d.input.dvi \ + ${DOC}/mult3d.input.dvi ${DOC}/multfact.input.dvi \ + ${DOC}/multiple.input.dvi ${DOC}/multKnot.input.dvi \ + ${DOC}/ndftip.input.dvi ${DOC}/negfloats.input.dvi \ + ${DOC}/nepip.input.dvi ${DOC}/newlodo.input.dvi \ + ${DOC}/newton.input.dvi ${DOC}/nlode.input.dvi \ + ${DOC}/none.input.dvi ${DOC}/noonburg.input.dvi \ + ${DOC}/noptip.input.dvi ${DOC}/nqip.input.dvi \ + ${DOC}/nsfip.input.dvi ${DOC}/ntube.input.dvi \ + ${DOC}/numbers.input.dvi ${DOC}/oct.input.dvi \ + ${DOC}/octonion.input.dvi ${DOC}/ode.input.dvi \ + ${DOC}/odpol.input.dvi ${DOC}/op1.input.dvi \ + ${DOC}/opalg.input.dvi ${DOC}/operator.input.dvi \ + ${DOC}/op.input.dvi ${DOC}/ovar.input.dvi \ + ${DOC}/padic.input.dvi ${DOC}/palette.input.dvi \ + ${DOC}/parabola.input.dvi ${DOC}/parpcurv.input.dvi \ + ${DOC}/parscurv.input.dvi ${DOC}/parsurf.input.dvi \ + ${DOC}/pascal1.input.dvi ${DOC}/pascal.input.dvi \ + ${DOC}/pat.input.dvi ${DOC}/patmatch.input.dvi \ + ${DOC}/pdecomp0.as.dvi ${DOC}/perman.input.dvi \ + ${DOC}/perm.input.dvi ${DOC}/pfr1.input.dvi \ + ${DOC}/pfr.input.dvi ${DOC}/pinch.input.dvi \ + ${DOC}/plotfile.input.dvi ${DOC}/plotlist.input.dvi \ + ${DOC}/pollevel.input.dvi ${DOC}/poly1.input.dvi \ + ${DOC}/polycoer.input.dvi ${DOC}/poly.input.dvi \ + ${DOC}/psgenfcn.input.dvi ${DOC}/quat1.input.dvi \ + ${DOC}/quat.input.dvi ${DOC}/r20abugs.input.dvi \ + ${DOC}/r20bugs.input.dvi ${DOC}/r21bugsbig.input.dvi \ + ${DOC}/r21bugs.input.dvi ${DOC}/radff.input.dvi \ + ${DOC}/radix.input.dvi ${DOC}/realclos.input.dvi \ + ${DOC}/reclos.input.dvi ${DOC}/reductio.input.dvi \ + ${DOC}/regset.input.dvi ${DOC}/repa6.input.dvi \ + ${DOC}/ribbon.input.dvi ${DOC}/ribbons.input.dvi \ + ${DOC}/ribbonsNew.input.dvi ${DOC}/rk4draw.input.dvi \ + ${DOC}/robidoux.input.dvi ${DOC}/roman.input.dvi \ + ${DOC}/romnum.as.dvi ${DOC}/roots.input.dvi \ + ${DOC}/ruleset.input.dvi ${DOC}/rules.input.dvi \ + ${DOC}/s01eaf.input.dvi ${DOC}/s13aaf.input.dvi \ + ${DOC}/s13acf.input.dvi ${DOC}/s13adf.input.dvi \ + ${DOC}/s14aaf.input.dvi ${DOC}/s14abf.input.dvi \ + ${DOC}/s14baf.input.dvi ${DOC}/s15adf.input.dvi \ + ${DOC}/s15aef.input.dvi ${DOC}/s17acf.input.dvi \ + ${DOC}/s17adf.input.dvi ${DOC}/s17aef.input.dvi \ + ${DOC}/s17aff.input.dvi ${DOC}/s17agf.input.dvi \ + ${DOC}/s17ahf.input.dvi ${DOC}/s17ajf.input.dvi \ + ${DOC}/s17akf.input.dvi ${DOC}/s17dcf.input.dvi \ + ${DOC}/s17def.input.dvi ${DOC}/s17dgf.input.dvi \ + ${DOC}/s17dhf.input.dvi ${DOC}/s17dlf.input.dvi \ + ${DOC}/s18acf.input.dvi ${DOC}/s18adf.input.dvi \ + ${DOC}/s18aef.input.dvi ${DOC}/s18aff.input.dvi \ + ${DOC}/s18dcf.input.dvi ${DOC}/s18def.input.dvi \ + ${DOC}/s19aaf.input.dvi ${DOC}/s19abf.input.dvi \ + ${DOC}/s19acf.input.dvi ${DOC}/s19adf.input.dvi \ + ${DOC}/s20acf.input.dvi ${DOC}/s20adf.input.dvi \ + ${DOC}/s21baf.input.dvi ${DOC}/s21bbf.input.dvi \ + ${DOC}/s21bcf.input.dvi ${DOC}/s21bdf.input.dvi \ + ${DOC}/saddle.input.dvi ${DOC}/scherk.input.dvi \ + ${DOC}/scope.input.dvi ${DOC}/segbind.input.dvi \ + ${DOC}/seg.input.dvi ${DOC}/series2.input.dvi \ + ${DOC}/series.input.dvi ${DOC}/sersolve.input.dvi \ + ${DOC}/set.input.dvi ${DOC}/sinCosEx.input.dvi \ + ${DOC}/sininv.input.dvi ${DOC}/sinsin2.input.dvi \ + ${DOC}/sinsin.input.dvi ${DOC}/sint.input.dvi \ + ${DOC}/skew.input.dvi ${DOC}/slowint.input.dvi \ + ${DOC}/solvetra.input.dvi ${DOC}/space3.input.dvi \ + ${DOC}/spadprof.input.dvi ${DOC}/spiral.input.dvi \ + ${DOC}/sqmatrix.input.dvi ${DOC}/sregset.input.dvi \ + ${DOC}/stbl.input.dvi ${DOC}/stream2.input.dvi \ + ${DOC}/stream.input.dvi ${DOC}/streams.input.dvi \ + ${DOC}/string.input.dvi ${DOC}/strtbl.input.dvi \ + ${DOC}/symbol.input.dvi ${DOC}/synonym2.input.dvi \ + ${DOC}/synonym.input.dvi ${DOC}/t111293.input.dvi \ + ${DOC}/table.input.dvi ${DOC}/tanatan.input.dvi \ + ${DOC}/test.input.dvi ${DOC}/tetra.input.dvi \ + ${DOC}/textfile.input.dvi ${DOC}/tknot.input.dvi \ + ${DOC}/torus.input.dvi ${DOC}/tree.input.dvi \ + ${DOC}/triglim.input.dvi ${DOC}/tschirn.input.dvi \ + ${DOC}/tsetcatbutcher.input.dvi \ + ${DOC}/tsetcatchemical.input.dvi \ + ${DOC}/tsetcatvermeer.input.dvi \ + ${DOC}/tutchap1.input.dvi ${DOC}/tutchap2.input.dvi \ + ${DOC}/tutchap3.input.dvi ${DOC}/tutchap4.input.dvi \ + ${DOC}/tutchap67.input.dvi ${DOC}/typo.input.dvi \ + ${DOC}/uniseg.input.dvi ${DOC}/up.input.dvi \ + ${DOC}/vector.input.dvi ${DOC}/vectors.input.dvi \ + ${DOC}/viewdef.input.dvi ${DOC}/void.input.dvi \ + ${DOC}/wester.input.dvi ${DOC}/wiggle.input.dvi \ + ${DOC}/wutset.input.dvi ${DOC}/xpbwpoly.input.dvi \ + ${DOC}/xpoly.input.dvi ${DOC}/xpr.input.dvi \ + ${DOC}/zdsolve.input.dvi ${DOC}/zimmer.input.dvi \ + ${DOC}/zlindep.input.dvi + + +.PHONY: all all-ax all-input + +all: all-ax + +all-ax all-input: $(OUT) ${FILES} ${FILES2} ${ASFILES} regress + @echo 1 finished $(srcdir) + +$(OUT): + $(mkinstalldirs) $@ + +<<genericRules>> + +use: + @echo 2 making ${OUT} from ${IN} + +regress: + ${MAKE} regression-tests + +bug: + @echo 4 making ${OUT} from ${IN} + +document: + @echo 5 documenting ${OUT} + +mostlyclean-local: + -rm -rf $(MID) + -rm -rf $(OUT) + +clean-local: mostlyclean-local + +distclean-local: clean-local + +<<regression tests>> + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/algaggr.input.pamphlet b/src/input/algaggr.input.pamphlet new file mode 100644 index 00000000..e860c43b --- /dev/null +++ b/src/input/algaggr.input.pamphlet @@ -0,0 +1,72 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input algaggr.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)clear all +-- lists are constructed explicitly by using square brackets +l := [1,4,2,-6,0,3,5,4,2,3] +-- "listify" an element by using the "list" function +m := list 555555 +-- use "concat" to add an item to the front of a list +concat(5,l) +-- "concat" concatenates 2 lists +concat(m,l) +-- to remove all duplicates, issue +removeDuplicates l +-- use "first" to get the first element, and "rest" to get the +-- list of remaining elements +first l +rest l +-- "last" extracts the last element +last l +-- to find the number of elements, use "#" +#l +-- "first" and "rest" extract or remove leading or trailing +-- parts of the list +l +first(l,3) +rest(l,3) +-- individual elements may be extracted as follows +-- notice that list indexing goes from 1 to the size of the list +l.1 +l.2 +l.(#l) +-- individual elements may be set (destructively) in a similar manner +l.1 := 1000000000 +l +-- "insert" is used to add an element to a specific position in the list +insert(10,l,4) +insert(2,l,1) +-- "position" determines the first index of an element in a list +-- if the element is not in the list, 0 is returned. +position(-6,l) +-- to reverse a list +reverse l +-- the following functions demonstrate some functions on sets +l +m := [4,2,3,6,5,7,-9,1,2,3,2] +sl:SET(INT) := brace l +sm:SET(INT) := brace m +difference(sl, sm) +intersect(sl,sm) +union(sl,sm) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/algbrbf.input.pamphlet b/src/input/algbrbf.input.pamphlet new file mode 100644 index 00000000..c81eca04 --- /dev/null +++ b/src/input/algbrbf.input.pamphlet @@ -0,0 +1,42 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input algbrbf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- Examples used in Algebra document +-- Floats +)set message time off +)set message type off +)cl all +digits 20 +p := numeric %pi +a := 163.0 +b := sqrt a +exp(p * b) +digits 60 +p := numeric %pi +a := 163.0 +b := sqrt a +exp(p * b) +c := cos(p/12) +16*c**4 - 16*c**2 + 1 +numeric(%pi, 500) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/algfacob.input.pamphlet b/src/input/algfacob.input.pamphlet new file mode 100644 index 00000000..5700a359 --- /dev/null +++ b/src/input/algfacob.input.pamphlet @@ -0,0 +1,75 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input algfacob.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- Examples used in Algebra document: ALGFACOB SCRIPT +)set history on +)clear all + +-- The Algebra of Factored Integers + +(w,x,y,z): FR INT +x := 2**8 * 78**7 * 111**3 * 74534 +y := nilFactor(2,10) * nilFactor(3,20) * nilFactor(5,30) +x*y +w := x+y +expand w +f := x/y +g := (x**9)/y +f*g +h := (f*g)/(g*nilFactor(2,200)) +)clear all + +-- The Algebra of Factored Polynomials + +(u,v,w) : FR POLY INT +u := factor (x**4 - y**4) +v := nilFactor(x-y,2) * nilFactor(x+y,2) * nilFactor(x**2 + y**2,1) +w := factor(x**2 + 2*x*y + 2*x + 2*y + y**2 + 1) * nilFactor(x-y,2) +nthFactor(u,1) +nthFactor(u,2) +nthFactor(u,3) +nthFactor(u,4) +gcd(u,v) +u + v +lcm(u,v) +u * v * w +expand % +u/w +w/(u*v) +%%(-1) * %%(-2) +%%(-1) + %%(-2) +)clear all + +-- Some Notes on Using Factored Objects + +f : FR INT := 144000 +nthFactor(f,1) +nthExponent(f,1) +nthFlag(f,1) +nthFlag(nilFactor(20,4),1) +nthFlag(primeFactor(7,9),1) +factors f +numberOfFactors f +f +reduce(*,[nthFactor(f,i) :: (FR INT) for i in 1..numberOfFactors(f)]) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/alist.input.pamphlet b/src/input/alist.input.pamphlet new file mode 100644 index 00000000..c272c89c --- /dev/null +++ b/src/input/alist.input.pamphlet @@ -0,0 +1,32 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ALIST.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from AssociationListXmpPage +)clear all + +Data := Record(monthsOld : Integer, gender : String) +al : AssociationList(String,Data) +al := table() +al."bob" := [407,"male"]$Data +al."judith" := [366,"female"]$Data +al."katie" := [24,"female"]$Data +al."smokie" := [200,"female"]$Data +al +al."katie" := [23,"female"]$Data +delete!(al,1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/allfact.input.pamphlet b/src/input/allfact.input.pamphlet new file mode 100644 index 00000000..1bfa8fe8 --- /dev/null +++ b/src/input/allfact.input.pamphlet @@ -0,0 +1,68 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input allfact.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)cl all + +-- Examples of all the factor functions in the system. + +-- factorization of integer numbers +n:=45234258258293 +factor n + +-- factorization of gaussian integers +m:(Complex Integer) := 1324567+%i*53523582 +factor m + +-- factorization of polynomials over finite fields +u:UP(x,PF(19)) :=3*x**4+2*x**2+15*x+18 +factor u + +-- factorization of polynomials over the integers +v:UP(x,INT):= (4*x**3+2*x**2+1)*(12*x**5-x**3+12) +factor v + +-- factorization of multivariate polynomial over the integers +w:MPOLY([x,y,z],INT) :=(x**2-y**2-z**2)*(x**2+y**2+z**2)*(z*y+3*z) +factor w + +-- factorization of univariate and multivariate over the rational numbers +f:MPOLY([x,y,z],FRAC INT) :=(4/9*x**2-1/16)*(x**3/27+125) +factor f + +-- factorization over rational functions +g:DMP([x,y],FRAC POLY INT):=a**2*x**2/b**2 -c**2*y**2/d**2 +factor g + +-- decomposition of a rational function +r:FRAC POLY INT:= (a**3/b**3-c**3/(b+1)**3)*(a*d+a/c) +factorFraction r + +-- factorization over simple algebraic extensions +aa|aa**2+aa+1 +p:UP(x,SAEaa) :=(x**3+aa**2*x+1)*(aa*x**2+aa*x+aa)**2 +factor(p)$SAEFACT(UP('aa,FRAC INT),SAEaa,UP(x,SAEaa)) + +-- factorization over algebraic numbers +a:=rootOf(a**2+3)$AN +factor(x**2+x+1,[a]) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/antoine.input.pamphlet b/src/input/antoine.input.pamphlet new file mode 100644 index 00000000..c0e7d363 --- /dev/null +++ b/src/input/antoine.input.pamphlet @@ -0,0 +1,76 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input antoine.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- Draw Antoine's Necklace +-- Thanks to Matt Grayson (formerly at IBM's T.J Watson Research Center) +-- for the idea. + +-- Bring DH matrices into the environment +)set expose add con DenavitHartenbergMatrix + +)read dhtri + +-- The current transformation for drawing a sub-ring +torusRot: DHMATRIX(DoubleFloat) + +-- Draw Antoine's Rings with n levels of recursive subdivision. +-- The number of subrings is 10**n. +drawRings(n) == + s := create3Space()$ThreeSpace DoubleFloat + -- create an identity transformation + dh:DHMATRIX(DoubleFloat) := identity() + drawRingsInner(s, n, dh) + makeViewport3D(s, "Antoine's Necklace") + +-- Recursively draw Antoine's Necklace. +drawRingsInner(s, n, dh) == + n = 0 => + drawRing(s, dh) + void() + t := 0.0@DoubleFloat -- the current angle around the ring + p := 0.0@DoubleFloat -- the angle of the subring from the plane + tr := 1.0@DoubleFloat -- the amount to translate the subring + inc := 0.1@DoubleFloat -- translation increment + -- subdivide the ring into 10 linked rings + for i in 1..10 repeat + tr := tr + inc + inc := -inc + dh' := dh * rotatez(t) * translate(tr, 0.0@DoubleFloat, 0.0@DoubleFloat) * + rotatey(p) * scale(0.35@DoubleFloat, 0.48@DoubleFloat, 0.4@DoubleFloat) + drawRingsInner(s, n-1, dh') + t := t + 36.0@DoubleFloat + p := p + 90.0@DoubleFloat + void() + +-- draw a single ring into the given subspace, transformed by the given +-- DHMATRIX. +drawRing(s, dh) == + free torusRot + torusRot := dh + makeObject(torus, 0..2*%pi, 0..2*%pi, var1Steps == 6, space == s, + var2Steps == 15) + +-- Parameterization of a torus, transformed by the DHMATRIX in torusRot. +torus(u ,v) == + cu := cos(u)/6 + torusRot * point [(1+cu)*cos(v), (1+cu)*sin(v), (sin u)/6] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/arith.input.pamphlet b/src/input/arith.input.pamphlet new file mode 100644 index 00000000..d3f88c30 --- /dev/null +++ b/src/input/arith.input.pamphlet @@ -0,0 +1,104 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input arith.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{bugs} +\subsection{bug1} +Cannot find a definition or applicable library operation named +reduce with argument type(s) + Variable * + List Segment PositiveInteger +<<bug1>>= +fac3 10 +@ +<<bugs>>= +)clear all +234+108 +234*108 +234**108 +factor % +z := 1/2 +v := (z + 1) ** 10 +1024 * % +u := (x+1)**6 +differentiate(u,x) +-- factor % +)clear all +-- compute Fibonacci numbers +fib(n | n = 0) == 1 +fib(n | n = 1) == 1 +fib(n | n > 1) == fib(n-1) + fib(n-2) +fib 5 +fib 20 +)clear all +-- compute Legendre polynomials +leg(n | n = 0) == 1 +leg(n | n = 1) == x +leg(n | n > 1) == ((2*n-1)*x*leg(n-1)-(n-1)*leg(n-2))/n +leg 3 +leg 14 +-- look at it as a polynomial with rational number coefficients +--% :: POLY FRAC INT +)clear all +-- several flavors of computing factorial +fac1(n | n=1) == 1 +fac1(n | n > 1) == n*fac1(n-1) +-- +fac2 n == if n = 1 then 1 else n*fac2(n-1) +-- +fac3 n == reduce(*,[1..n]) +fac1 10 +fac2 10 +<<bug1>> +@ +<<*>>= +)clear all +234+108 +234*108 +234**108 +factor % +z := 1/2 +v := (z + 1) ** 10 +1024 * % +u := (x+1)**6 +differentiate(u,x) +-- factor % +)clear all +-- compute Fibonacci numbers +fib(n | n = 0) == 1 +fib(n | n = 1) == 1 +fib(n | n > 1) == fib(n-1) + fib(n-2) +fib 5 +fib 20 +)clear all +-- compute Legendre polynomials +leg(n | n = 0) == 1 +leg(n | n = 1) == x +leg(n | n > 1) == ((2*n-1)*x*leg(n-1)-(n-1)*leg(n-2))/n +leg 3 +leg 14 +-- look at it as a polynomial with rational number coefficients +--% :: POLY FRAC INT +)clear all +-- several flavors of computing factorial +fac1(n | n=1) == 1 +fac1(n | n > 1) == n*fac1(n-1) +-- +fac2 n == if n = 1 then 1 else n*fac2(n-1) +-- +fac3 n == reduce(*,[1..n]) +fac1 10 +fac2 10 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/array1.input.pamphlet b/src/input/array1.input.pamphlet new file mode 100644 index 00000000..d0c494b1 --- /dev/null +++ b/src/input/array1.input.pamphlet @@ -0,0 +1,31 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ARRAY1.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from OneDimensionalArrayXmpPage +)clear all + +oneDimensionalArray [i**2 for i in 1..10] +a : ARRAY1 INT := new(10,0) +for i in 1..10 repeat a.i := i; a +map!(i +-> i ** 2,a); a +reverse! a +swap!(a,4,5); a +sort! a +b := a(6..10) +copyInto!(a,b,1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/array2.input.pamphlet b/src/input/array2.input.pamphlet new file mode 100644 index 00000000..b392e4aa --- /dev/null +++ b/src/input/array2.input.pamphlet @@ -0,0 +1,43 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ARRAY2.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + + +-- Input generated from TwoDimensionalArrayXmpPage +)clear all + +arr : ARRAY2 INT := new(5,4,0) +setelt(arr,1,1,17) +arr +elt(arr,1,1) +arr(3,2) := 15 +arr(3,2) +row(arr,1) +column(arr,1) +nrows(arr) +ncols(arr) +map(-,arr) +map((x +-> x + x),arr) +arrc := copy(arr) +map!(-,arrc) +arrc +arr +member?(17,arr) +member?(10317,arr) +count(17,arr) +count(0,arr) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/arrows.input.pamphlet b/src/input/arrows.input.pamphlet new file mode 100644 index 00000000..ec230fed --- /dev/null +++ b/src/input/arrows.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input arrows.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +arrowAngle:=%pi-%pi/10.0@SF +arrowScale:=0.2@SF + +makeArrow(p1,p2) == + delta :=p2 -p1 + len := arrowScale * length delta + theta := atan(delta.1, delta.2) + c1:= len*cos(theta+arrowAngle) + s1:= len*sin(theta+arrowAngle) + c2:= len*cos(theta-arrowAngle) + s2:= len*sin(theta-arrowAngle) + z:= p2.3*(1-arrowScale) + p3:=point[p2.1+c1,p2.2+s1,z,p2.4] + p4:=point[p2.1+c2,p2.2+s2,z,p2.4] + [[p1,p2,p3],[p2,p4]] + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/as-eg1.input.pamphlet b/src/input/as-eg1.input.pamphlet new file mode 100644 index 00000000..e3ab4cee --- /dev/null +++ b/src/input/as-eg1.input.pamphlet @@ -0,0 +1,35 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input as-eg1.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)compile romnum.as +a:RomanNumber:=3 +a+a +a*a +gcd(a-1,a+1) +x+a +%**3 +sin a +%**2+cos(a)**2 +simplify % +matrix [[a,a+1],[a-1,a-2]] +inverse % +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/as-eg2.input.pamphlet b/src/input/as-eg2.input.pamphlet new file mode 100644 index 00000000..808154ae --- /dev/null +++ b/src/input/as-eg2.input.pamphlet @@ -0,0 +1,27 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input as-eg2.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)co matops.as +)sh MatrixOpSym +matrix [[3,4],[5,6]] +symmetricPart % +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/as-eg3.input.pamphlet b/src/input/as-eg3.input.pamphlet new file mode 100644 index 00000000..239949a8 --- /dev/null +++ b/src/input/as-eg3.input.pamphlet @@ -0,0 +1,49 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input as-eg3.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +)compile hilbert.as + +monomial l == (l::Vector SingleInteger) pretend Monomial +mon1 := monomial [4,0,0,0]; +mon2:= monomial [3,3,0,0]; +mon3 := monomial [3,2,1,0]; +mon4 := monomial[3,1,2,0]; +mon5 := monomial[0,2,0,1]; +mon6 := monomial[0,1,0,5]; +l := [mon1, mon2, mon3, mon4, mon5, mon6]; +Hilbert l +idA := varMonomsPower(6,5); +#idA +Hilbert idA +idB := varMonomsPower(6,6); +#idB +Hilbert idB +idC := varMonomsPower(12,3); +#idC +Hilbert idC +idD:=[monomial[2,0,0,0],monomial[1,1,0,0],monomial[1,0,1,0],monomial[1,0,0,1],_ + monomial[0,3,0,0],monomial[0,2,1,0]]^4; +#idD +Hilbert idD + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/as-eg4.input.pamphlet b/src/input/as-eg4.input.pamphlet new file mode 100644 index 00000000..87a1528e --- /dev/null +++ b/src/input/as-eg4.input.pamphlet @@ -0,0 +1,28 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input as-eg4.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)co ecfact.as +n1:=nextPrime 1000000 +n2:=nextPrime n1 +n:=n1*n2 +LenstraEllipticMethod n +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/as-eg5.input.pamphlet b/src/input/as-eg5.input.pamphlet new file mode 100644 index 00000000..15b51ba9 --- /dev/null +++ b/src/input/as-eg5.input.pamphlet @@ -0,0 +1,30 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input as-eg5.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)co pdecomp0.as +(u,v):UP(x,FRAC INT) +u:=x**2+x+2 +v:=x**3+2*x**2+x+1 +compose(u,v) +decompose % + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/as-eg6.input.pamphlet b/src/input/as-eg6.input.pamphlet new file mode 100644 index 00000000..e700a338 --- /dev/null +++ b/src/input/as-eg6.input.pamphlet @@ -0,0 +1,47 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input as-eg6.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1995. +@ +<<*>>= +<<license>> + +)co aseg6.as + +)show C1 +)show C2 +)show C3 +)show C4 +)show D1 +)show D2 +)show D3 +)show D4 +)show D5 + +)show C2 Integer +)show C4 Integer +)show D2 Integer +)show D4 Integer + +x: D5 Integer := 1 +-- should be 3 +x+x + +-- should be 13 +foof(12)$D3 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/asec.input.pamphlet b/src/input/asec.input.pamphlet new file mode 100644 index 00000000..82907431 --- /dev/null +++ b/src/input/asec.input.pamphlet @@ -0,0 +1,204 @@ +\documentclass{article} +\usepackage{axiom} +\usepackage{amssymb} +\begin{document} +\title{\$SPAD/src/input asec.input} +\author{Timothy Daly} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{ASC.1 Introduction} + +Let $x$ be a complex variable of $\mathbb{C} \setminus \{0\}$.The +function Inverse Secant (noted {\tt asec}) is defined by +the following second order differential equation + +$$\left(2 x^{2} - 1\right) \frac{\partial y (x)}{\partial x} + +\left(x^{3} - x\right) \frac{\partial^{2} y (x)}{\partial x^{2}} =0.$$ + +The initial conditions at $0$ are not simple to state, +since $0$ is a (regular) singular point. + +\section{ASC.2 Series and asymptotic expansions} +\subsection{ASC.2.1 Asymptotic expansion at $-1$} +\subsubsection{ASC.2.1.1 First terms} + +$$ +\begin{array}{cc} +& asec(x)\approx (\pi\ldots) + \sqrt{x + 1} +\left(-i\sqrt{2} - \frac{5 i}{12} (x + 1) \sqrt{2} - +\frac{43 i}{160} (x + 1)^{2} \sqrt{2}\right. \\ +& \quad{}\quad{}- \frac{177 i}{896} (x + 1)^{3} \sqrt{2} - +\frac{2867 i}{18432} (x + 1)^{4} \sqrt{2} - \\ +& \quad{}\quad{}\frac{11531 i}{90112} (x + 1)^{5} \sqrt{2} - +\frac{92479 i}{851968} (x + 1)^{6} \sqrt{2} - \\ +& \left.\quad{}\quad{}\frac{74069 i}{786432} (x + 1)^{7} \sqrt{2} - +\frac{11857475 i}{142606336} (x + 1)^{8} \sqrt{2}\ldots\right). +\end{array} +$$ + +\subsection{ASC.2.1 Asymptotic expansion at $0$} +\subsubsection{ASC.2.2.1 First terms} + +$$ +\begin{array}{cc} +& asec(x)\approx \\ +& \quad{}\quad{}\left(i ln(2) + \frac{i}{4} x^{2} + +\frac{3 i}{32} x^{4} + \frac{5 i}{96} x^{6} + +\frac{35 i}{1024} x^{8} + i ln(x)\ldots\right). +\end{array} +$$ + +\subsection{ASC.2.3 Asymptotic expansion at $1$} +\subsubsection{ASC.2.3.1 First terms} + +$$ +\begin{array}{cc} +& asec(x)\approx \sqrt{x - 1} +\left(\sqrt{2} - \frac{5 \sqrt{2} (x - 1)}{12} + +\frac{43 \sqrt{2} (x - 1)^{2}}{160} - \right. \\ +& \quad{}\quad{}\frac{177 \sqrt{2} (x - 1)^{3}}{896} + +\frac{2867 \sqrt{2} (x - 1)^{4}}{18432} - +\frac{11531 \sqrt{2} (x - 1)^{5}}{90112} + \\ +& \quad{}\quad{}\frac{92479 \sqrt{2} (x - 1)^{6}}{851968} - +\frac{74069 \sqrt{2} (x - 1)^{7}}{786432} + \\ +& \quad{}\quad{}\frac{11857475 \sqrt{2} (x - 1)^{8}}{142606336} - +\frac{47442055 \sqrt{2} (x - 1)^{9}}{637534208} + \\ +& \quad{}\quad{}\frac{126527543 \sqrt{2} (x - 1)^{10}}{1879048192} - +\frac{1518418695 \sqrt{2} (x - 1)^{11}}{24696061952} + \\ +& \quad{}\quad{}\frac{24295375159 \sqrt{2} (x - 1)^{12}}{429496729600} - +\frac{97182800711 \sqrt{2} (x - 1)^{13}}{1855425871872} + \\ +& \left.\quad{}\quad{}\frac{777467420263 +\sqrt{2} (x - 1)^{14}}{15942918602752} - +\frac{3109879375897 \sqrt{2} (x - 1)^{15}}{68169720922112}\ldots\right). +\end{array} +$$ + +\subsubsection{ASC.2.3.2 General form} + +$$asec(x)\approx \sqrt{x - 1} \sum_{n = 0}^{\infty} u (n) (x - 1)^{n}$$ + +The coefficients $u(n)$ satisfy the recurrence +$$ +\begin{array}{cc} +& 2 u(n) \left(\frac{1}{2} + n\right) n + +u(n - 1) \left(-\frac{1}{2} + n\right) \left(-\frac{1}{2} + 3 n\right) + +u(n - 2) \left(-\frac{3}{2} + n\right) +\left(-\frac{1}{2} + n\right) \\ +& \quad{}\quad{}=0. +\end{array} +$$ + +Initial conditions of ASC.2.3.2.2 are given by +$$ +\begin{array}{cc} +u(0)& =\sqrt{2}, \\ +u(1)& =\frac{-5\sqrt{2}}{12}. +\end{array} +$$ + +As implemented within Axiom the {\tt asec} function is +$$sec^{-1}(z) == cos^{-1}\left(\frac{1}{z}\right)$$ +<<*>>= +)spool asec.output +)set message test off +)set message auto off +)set break resume +digits(22) +)clear all + +--S 1 of 10 +asec(-2.0) +--R +--R (1) 2.0943951023 9319549230 8 +--R Type: Float +--E 1 + +--S 2 of 10 +asec(-1.5) +--R +--R (2) 2.3005239830 2186298268 6 +--R Type: Float +--E 2 + +--S 3 of 10 +asec(-1.0) +--R +--R (3) 3.1415926535 8979323846 3 +--R Type: Float +--E 3 + +--S 4 of 10 +asec(-0.5) +--R +--R >> Error detected within library code: +--R acos: argument > 1 in magnitude +--R +--R Continuing to read the file... +--R +--E 4 + +--S 5 of 10 +asec(-0.0) +--R +--R >> Error detected within library code: +--R asec: no reciprocal +--R +--R Continuing to read the file... +--R +--E 5 + +--S 6 of 10 +asec(0.0) +--R +--R >> Error detected within library code: +--R asec: no reciprocal +--R +--R Continuing to read the file... +--R +--E 6 + +--S 7 of 10 +asec(0.5) +--R +--R >> Error detected within library code: +--R acos: argument > 1 in magnitude +--R +--R Continuing to read the file... +--R +--E 7 + +--S 8 of 10 +asec(1.0) +--R +--R (4) 0.0 +--R Type: Float +--E 8 + +--S 9 of 10 +asec(1.5) +--R +--R (5) 0.8410686705 6793025577 652 +--R Type: Float +--E 9 + +--S 10 of 10 +asec(2.0) +--R +--R (6) 1.0471975511 9659774615 42 +--R Type: Float +--E 10 +)spool +)lisp (bye) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} The Encyclopedia of Special Functions +http://algo.inria.fr/esf/function/ASC/ASC.html +\end{thebibliography} +\end{document} + diff --git a/src/input/aseg6.as.pamphlet b/src/input/aseg6.as.pamphlet new file mode 100644 index 00000000..71bb6d15 --- /dev/null +++ b/src/input/aseg6.as.pamphlet @@ -0,0 +1,118 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input aseg6.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +-- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. +-- All rights reserved. +-- +-- Redistribution and use in source and binary forms, with or without +-- modification, are permitted provided that the following conditions are +-- met: +-- +-- - Redistributions of source code must retain the above copyright +-- notice, this list of conditions and the following disclaimer. +-- +-- - Redistributions in binary form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in +-- the documentation and/or other materials provided with the +-- distribution. +-- +-- - Neither the name of The Numerical ALgorithms Group Ltd. nor the +-- names of its contributors may be used to endorse or promote products +-- derived from this software without specific prior written permission. +-- +-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +-- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +-- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +-- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +-- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +-- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +-- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +-- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +-- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +-- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +@ +<<*>>= +<<license>> +#include "axiom" + +C1: Category == with { + foo: % -> %; +} + +C2(X: BasicType): Category == with { + foo: % -> X; + oof: X -> %; + foof: X -> X; + + default { + foof(x: X): X == foo(oof x); + } + +} + +C3: Category == Join(Ring, C1) with { + foo2: % -> % +} + +C4(X: Ring): Category == Join(Ring, C2 X) with { + foo2: % -> %; +} + + +D1: C1 with { + new: Integer -> %; +} == add { + Rep ==> Integer; + import from Rep; + + foo(x: %): % == x; + new(n: Integer): % == per n; +} + +D2(X: BasicType): C1 with { + new: X -> %; +} == add { + Rep ==> X; + foo(x: %): % == x; + new(n: X): % == per n; +} + +D3: C2(Integer) with == add { + Rep ==> Integer; + X ==> Integer; + + foo(x: %): X == rep x; + oof(x: X): % == per(x+1); +} + +D4(X: BasicType): C2(X) with == add { + Rep ==> X; + + foo(x: %): X == rep x; + oof(x: X): % == per x; +} + +D5(X: Ring): Ring == X add { + Rep ==> X; + import from Rep; + (a: %) + (b: %): % == per(rep(a) + rep(b) + 1@Rep); +} + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/aseg7.as.pamphlet b/src/input/aseg7.as.pamphlet new file mode 100644 index 00000000..d0459e64 --- /dev/null +++ b/src/input/aseg7.as.pamphlet @@ -0,0 +1,108 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input aseg7.as} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +-- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. +-- All rights reserved. +-- +-- Redistribution and use in source and binary forms, with or without +-- modification, are permitted provided that the following conditions are +-- met: +-- +-- - Redistributions of source code must retain the above copyright +-- notice, this list of conditions and the following disclaimer. +-- +-- - Redistributions in binary form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in +-- the documentation and/or other materials provided with the +-- distribution. +-- +-- - Neither the name of The Numerical ALgorithms Group Ltd. nor the +-- names of its contributors may be used to endorse or promote products +-- derived from this software without specific prior written permission. +-- +-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +-- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +-- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +-- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +-- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +-- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +-- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +-- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +-- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +-- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +@ +<<*>>= +<<license>> +#include "axiom.as" + +L ==> List; + +Test2(R:EuclideanDomain) : with { + constPtrs? :() -> R; + set : R->R; + resetConstPtrs :()->R; +} == add { + + import from R; + local constantPtrs:R:=0; + + + constPtrs?():R == { + free constantPtrs; + constantPtrs; + } + + set(c:R):R == { + free constantPtrs; + constantPtrs := c; + } + + resetConstPtrs():R == { + free constantPtrs; + constantPtrs := 0; + } +} + +Test3 : with { + constPtrs? : ()-> Integer; + set: Integer->Integer; + resetConstPtrs: () ->Integer; + +} == add { + import from Integer; + constantPtrs:Integer:=0; + constPtrs?():Integer == { + free constantPtrs; + constantPtrs; + } + + set(c:Integer):Integer == { + free constantPtrs; + constantPtrs := c; + } + + resetConstPtrs():Integer == { + free constantPtrs; + constantPtrs := 0; + } +} + +foo2 : with {constPtrs? : ()-> Integer; set: Integer->Integer; resetConstPtrs: () ->Integer } == Test2(Integer) add {} +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/assign.input.pamphlet b/src/input/assign.input.pamphlet new file mode 100644 index 00000000..58b47f31 --- /dev/null +++ b/src/input/assign.input.pamphlet @@ -0,0 +1,39 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input assign.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- This file shows the difference between assignments and rewrite +-- rules. + +a := 1 +b := a -- the value of b is now 1 +b -- see, told you +a := 2 -- what is the value of b? +b -- it is the value it had AT ASSIGNMENT + +c == 1 -- c is a rule +c -- it will evaluate to 1 +d == c -- d is a rule that will evaluate to c +d +c == 2 -- we have changed the rule for c +d -- and so the ultimate value computed from d will change +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/atansqrt.input.pamphlet b/src/input/atansqrt.input.pamphlet new file mode 100644 index 00000000..6e0eef7a --- /dev/null +++ b/src/input/atansqrt.input.pamphlet @@ -0,0 +1,36 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input atansqrt.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +-- given + +z:=atan sqrt ((1-cos x)/(1+cos x)) + +-- this should generate x/2 + +integrate(differentiate(z,x),x) + +-- so should this be x/2 + +rootSimp(normalize(z)) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/axiom.input.pamphlet b/src/input/axiom.input.pamphlet new file mode 100644 index 00000000..85ca1f1c --- /dev/null +++ b/src/input/axiom.input.pamphlet @@ -0,0 +1,46 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input axiom.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +-- This file is read on start-up by the AXIOM system. It is +-- most commonly used to customize the user's environment via the +-- )set system commands. + + +-- do not enter lisp break on error +)set break nobreak + +-- use the simple character set +)set output char plain + +-- everyone uses this +)set userlevel development + +-- make the highlighting characters go away +)set mess high off + +)set message prompt frame + +)lis (verbos 0) +-- read the user's synonym file for system commands, if it exists +)read "mysyns.input" )ifthere )quiet +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/bags.input.pamphlet b/src/input/bags.input.pamphlet new file mode 100644 index 00000000..b884079a --- /dev/null +++ b/src/input/bags.input.pamphlet @@ -0,0 +1,69 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input bags.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +a:Stack INT:= stack [1,2,3,4,5] +pop! a +a +push!(9,a) +a +empty? a +b:=empty()$(Stack INT) +empty? b +c:ArrayStack INT:= arrayStack [1,2,3,4,5] +pop! c +c +push!(9,c) +c +empty? c +d:=empty()$(ArrayStack INT) +empty? d +e:Queue INT:= queue [1,2,3,4,5] +dequeue! e +e +enqueue!(9,e) +e +empty? e +f:=empty()$(Queue INT) +empty? f +g:Dequeue INT:= dequeue [1,2,3,4,5] +extractBottom! g +g +insertBottom!(9,g) +g +extractTop! g +g +insertTop!(9,g) +g +empty? g +h:=empty()$(Dequeue INT) +empty? h +i:Heap INT := bag [1,6,3,7,5,2,4] +insert!(10,i) +i +max i +extract! i +i +heapsort x == + empty? x => [] + cons(extract! x,heapsort x) +heapsort i +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/bbtree.input.pamphlet b/src/input/bbtree.input.pamphlet new file mode 100644 index 00000000..6336ace4 --- /dev/null +++ b/src/input/bbtree.input.pamphlet @@ -0,0 +1,32 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input BBTREE.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from BalancedBinaryTreeXmpPage +)clear all + +lm := [3,5,7,11] +modTree(12,lm) +t := balancedBinaryTree(#lm, 0) +setleaves!(t,lm) +mapUp!(t,_*) +t +mapDown!(t,12,_rem) +leaves % +squares := [x**2 rem m for x in % for m in lm] +chineseRemainder(%,lm) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/bern.input.pamphlet b/src/input/bern.input.pamphlet new file mode 100644 index 00000000..b3833518 --- /dev/null +++ b/src/input/bern.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input bern.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- @(#)bern.input 1.1 89/09/07 20:54:27 +draw(curve(cos(t)/(1+sin(t)**2),sin(t)*cos(t)/(1+sin(t)**2)),t = -%pi..%pi, [title "Lemniscate of Bernoulli"]) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/bernpoly.input.pamphlet b/src/input/bernpoly.input.pamphlet new file mode 100644 index 00000000..f2db3a16 --- /dev/null +++ b/src/input/bernpoly.input.pamphlet @@ -0,0 +1,36 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input bernpoly.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- the first 10 Bernoulli polynomials (Approximate Calculation of Integrals +-- by V. Krylov Macmillan 1962 p13) +draw(1,x=0..1) +draw(x-(1/2),x=0..1) +draw(x**2-x+(1/6),x=0..1) +draw(x**3-(3/2)*x**2+(1/2)*x,x=0..1) +draw(x**4-2*x**3+x**2-(1/30),x=0..1) +draw(x**5-(5/2)*x**4+(5/3)*x**3-(1/6)*x,x=0..1) +draw(x**6-3*x**5+(5/2)*x**4-(1/2)*x**2+(1/42),x=0..1) +draw(x**7-(7/2)*x**6+(7/2)*x**5-(7/6)*x**3+(1/6)*x,x=0..1) +draw(x**8-4*x**7+(14/3)*x**6-(7/3)*x**4+(2/3)*x**2-(1/30),x=0..1) +draw(x**9-(9/2)*x**8+6*x**7-(21/5)*x**5+2*x**3-(3/10)*x,x=0..1) +draw(x**10-5*x**9+(15/2)*x**8-7*x**6+5*x**4-(3/2)*x**2+(5/66),x=0..1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/binary.input.pamphlet b/src/input/binary.input.pamphlet new file mode 100644 index 00000000..ec0fe39b --- /dev/null +++ b/src/input/binary.input.pamphlet @@ -0,0 +1,28 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input BINARY.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- Input generated from BinaryExpansionXmpPage +)clear all + +r := binary(22/7) +r + binary(6/7) +[binary(1/i) for i in 102..106] +binary(1/1007) +p := binary(1/4)*x**2 + binary(2/3)*x + binary(4/9) +q := D(p, x) +g := gcd(p, q) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/bop.input.pamphlet b/src/input/bop.input.pamphlet new file mode 100644 index 00000000..aeb4c803 --- /dev/null +++ b/src/input/bop.input.pamphlet @@ -0,0 +1,67 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input BOP.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{bugs} +\subsection{bug1} +|LinearOrdinaryDifferentialOperator| is invalid as a function +<<bug1>>= +solve(deq, y, x) +@ +<<bugs>>= +-- Input generated from BasicOperatorXmpPage +)clear all + +y := operator 'y +deq := D(y x, x, 2) + D(y x, x) + y x = 0 +<<bug1>> +nary? y +unary? y +opOne := operator('opOne, 1) +nary? opOne +unary? opOne +arity opOne +name opOne +is?(opOne, 'z2) +is?(opOne, "opOne") +properties y +setProperty(y, "use", "unknown function" :: None ) +properties y +property(y, "use") :: None pretend String +deleteProperty!(y, "use") +properties y +@ +<<*>>= +-- Input generated from BasicOperatorXmpPage +)clear all + +y := operator 'y +deq := D(y x, x, 2) + D(y x, x) + y x = 0 +nary? y +unary? y +opOne := operator('opOne, 1) +nary? opOne +unary? opOne +arity opOne +name opOne +is?(opOne, 'z2) +is?(opOne, "opOne") +properties y +setProperty(y, "use", "unknown function" :: None ) +properties y +property(y, "use") :: None pretend String +deleteProperty!(y, "use") +properties y +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/bouquet.input.pamphlet b/src/input/bouquet.input.pamphlet new file mode 100644 index 00000000..28d9b215 --- /dev/null +++ b/src/input/bouquet.input.pamphlet @@ -0,0 +1,60 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input bouquet.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- relative size of the arrow head compared to the length of the arrow +arrowScale := 0.2@DFLOAT + +-- angle of the arrow head +arrowAngle := %pi-%pi/10.0@DFLOAT + +-- Add an arrow head to a line segment, which starts at 'p1', ends at 'p2', +-- has length 'len', and and angle 'arg'. We pass 'len' and 'arg' as +-- arguments since they were already computed by the calling program +makeArrow(p1, p2) == + delta := p2 - p1 + len := arrowScale * length delta + theta := atan(delta.1, delta.2) + c1 := len * cos(theta + arrowAngle) + s1 := len * sin(theta + arrowAngle) + c2 := len * cos(theta - arrowAngle) + s2 := len * sin(theta - arrowAngle) + z := p2.3*(1 - arrowScale) + p3 := point [p2.1 + c1, p2.2 + s1, z, p2.4] + p4 := point [p2.1 + c2, p2.2 + s2, z, p2.4] + [[p1, p2, p3], [p2, p4]] + +drawBouquet(n,title) == + angle := 0.0@DFLOAT + sp := create3Space()$ThreeSpace(DFLOAT) + for i in 0..n-1 repeat + start := point [0.0@DFLOAT,0.0@DFLOAT,0.0@DFLOAT,angle] + end := point [cos angle, sin angle, 1.0@DFLOAT, angle] + arrow := makeArrow(start, end) + for a in arrow repeat curve(sp,a) + angle := angle + 2*%pi/n + makeViewport3D(sp,title)$VIEW3D + + + + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/bstree.input.pamphlet b/src/input/bstree.input.pamphlet new file mode 100644 index 00000000..2a190caf --- /dev/null +++ b/src/input/bstree.input.pamphlet @@ -0,0 +1,37 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input BSTREE.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + + +-- Input generated from BinarySearchTreeXmpPage +)clear all + +lv := [8,3,5,4,6,2,1,5,7] +t := binarySearchTree lv +emptybst := empty()$BSTREE(INT) +t1 := insert!(8,emptybst) +insert!(3,t1) +leaves t +split(3,t) +insertRoot: (INT,BSTREE INT) -> BSTREE INT +insertRoot(x, t) == + a := split(x, t) + node(a.less, x, a.greater) +buildFromRoot ls == reduce(insertRoot,ls,emptybst) +rt := buildFromRoot reverse lv +(t = rt)@Boolean +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/bug10069.input.pamphlet b/src/input/bug10069.input.pamphlet new file mode 100644 index 00000000..699bc910 --- /dev/null +++ b/src/input/bug10069.input.pamphlet @@ -0,0 +1,35 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input bug10069.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +Has to handle failed with a 'case' +\end{abstract} +\eject +\tableofcontents +\eject +These functions were missing a case statement that handled the 'failed' +branch. This has been fixed. + +Since these functions are designed to fail during testing we +have to set the breakmode to resume so Axiom will continue reading +the input file. +<<*>>= +)cl all +)set break resume +cot(0.0) +csc(0.0) +asec(0.0) +acsc(0.0) +asech(0.0) +acsch(0.0) +coth(0.0) +acoth(0.0) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/bug10312.input.pamphlet b/src/input/bug10312.input.pamphlet new file mode 100644 index 00000000..9a8e1b46 --- /dev/null +++ b/src/input/bug10312.input.pamphlet @@ -0,0 +1,28 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input bug10312.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +Problems raising a UTS to a negative integer power + +The code below raises an unnecessary error. The problem +is in sttaylor.spad/powern, where no distinction between rational and integer powers are made. + +The fix is easy. In fact, I just realize that the problem does not exist in SUPS, so we can just take the definition there. + +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +)cl all +p:=(1/2+n)::UTS(FRAC INT, 'n, 0) +(p**(-1))$UTS(FRAC INT, 'n, 0) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/bug6357.input.pamphlet b/src/input/bug6357.input.pamphlet new file mode 100644 index 00000000..b8972fe6 --- /dev/null +++ b/src/input/bug6357.input.pamphlet @@ -0,0 +1,24 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input bug6357.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +)cl all +-- The original author assumed (roughly) that sqrt(1/x)=1/sqrt(x), +-- which is wrong (for example, +-- sqrt(-1/2) = %i/sqrt(2) != 1/(%i*sqrt(2)) = -%i/sqrt(2) +sqrt(-1/2) +sqrt(-1/abs(x))-1/sqrt(-abs(x)) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/bug9057.input.pamphlet b/src/input/bug9057.input.pamphlet new file mode 100644 index 00000000..099e271a --- /dev/null +++ b/src/input/bug9057.input.pamphlet @@ -0,0 +1,37 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input bug9057.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +product over product or sum fails + +it might be that the problem is in iidprod in combfunc.spad: if I understand correctly, its last line + + */[eval(first l,k::K,i::F) for i in r1::Z .. r2::Z] + +evaluates product's first argument for each value of the product variable and then multiplies the resulting list together. However, for some reason the eval fails. I was unable to find out why eval fails. A hint might be that the operation "summation" is not called anymore. I don't even know which operation "eval" is called... + +Same thing for iidsum. +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +)cl all +g:=operator 'g +f==n+->sum(g(j),j=1..n) +f(1) +f==n+->product(sum(1/i,i=1..j),j=1..n) +f(1) +f==n+->product(product(1/i,i=1..j),j=1..n) +f(1) +f==n+->sum(sum(1/i,i=1..j),j=1..n) +f(1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/bugs.input.pamphlet b/src/input/bugs.input.pamphlet new file mode 100644 index 00000000..70852a4e --- /dev/null +++ b/src/input/bugs.input.pamphlet @@ -0,0 +1,342 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input bugs.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{bugs} +\subsection{bug1} +MANEXP is invalid as a function +<<bug1>>= +draw(x, x=-1..1) +@ +\subsection{bug2} +The attributed tree formNILis not a vector +<<bug2>>= +{} +@ +\subsection{bug3} +The attributed tree formNILis not a vector +<<bug3>>= +-- The following still doesn't work +union({}, {1,2}) +@ +<<bugs>>= +-- File of Currently active and recently fixed interpreter bugs + +--- eval a polynomial with EXPR substitution values +--- Fixed by SCM, verified on 10/30/90 + +)clear all + + +eq1:= A*x**2 + B*x*y + C*y**2 +D*x + E*y + F + +eq2:= eval(eq1,[x= xdot*cos(t) - ydot*sin(t), y=xdot*sin(t) + ydot*cos(t)]) + +-- UTS coercions. Fixed by SCM, verified on 10/30/90 + +)clear all + +taylor exp x + +s := % + +s::(UTS(EXPR FLOAT, x, 0)) +s::(UTS(FLOAT, x, 0)) + +eval(s,1) +%::(Stream Float) + +-- overloading interpreter maps on arity +--- Fixed by SCM, verified on 10/30/90 + +)clear all + +f(x) == x+1 +f(x,y) == x+y + +f 3 +f(3,4) +f(5) +f(1,x) + +-- targetted function requiring a coercion +--- Fixed by SCM, verified on 10/30/90 + +)clear all +series(n +-> bernoulli(n)/factorial(n), t=0) + +-- in-homogeneous list mapping +--- Fixed by SCM, verified on 10/30/90 + +)clear all +l := [1,2,-1] +f : INT -> FRAC INT +f x == x +map(f, l) + +-- Function args to interpreter functions +--- Fixed by SCM, verified on 10/30/90 + +)cl all +f: INT -> INT +f x == x+1 +u g == g 3 +u f + +-- category modemap requiring a field to be constructed +--- Fixed by SCM, verified on 10/30/90 + +)clear all + +groebner [x**2 - y, y**3+1] + +-- operations requiring polynomials, passed variables +--- Fixed by SCM, verified on 10/30/90 + +)clear all +factor x +<<bug1>> + +-- bracket parsing and empty-set types +--- Fixed by SCM, verified on 10/30/90 + +)clear all +<<bug2>> +{}$(List INT) +{1} +<<bug3>> + +-- Shouldn't work, but no longer bombs the interpreter +--- Fixed by SCM, verified on 10/30/90 + +)clear all +map(variable, [x,y]) + +-- Recursive map type analysis bug +--- Fixed by SCM, verified on 10/30/90 +)set fun recur off +)clear all + +p(n,x) == if n=0 then 1 else (x+n-1)*p(n-1,x) +pp(n,x) == if n=0 then 1 else if n<0 then (-1)**n/p(-n,1-x) else p(n,x) +pp(-1,x) -- should be 1/(x-1) + +-- interpret-code mode for iterators is broken + +)cl all +f n == + for i in 1..n repeat + j:=2*i + m:SQMATRIX(j,?):=1 + print m +g n == + j:=2*n + m:SQMATRIX(j,?):=1 + print m + +g 3 -- Should work +f 3 -- Bombs + +-- Test interpreter list destructuring + +)clear all +mp(x,l) == + l is [a,:b] => + a*x**(#b)+ mp(x,b) + 0 + +mp(x, [1,3,4, 2]) +mp(x, [1,2,-3, 4]) + +-- Tests compilation of recursive functions + +)clear all + +f1 n == + if n=0 then 1 else if n=1 then 1 else f1(n-1)+f1(n-2) + +f2 n == + m:=n + if n=0 then 1 else if n=1 then 1 else f2(n-1)+f2(n-2) + +f3 n == + n=0 => 1 + n=1 => 1 + f3(n-1)+f3(n-2) + +f4 n == + m:=n + n=0 => 1 + n=1 => 1 + m:=n + f4(n-1)+f4(n-2) + +f5 n == if n=0 or n=1 then 1 else f5(n-1)+f5(n-2) + +[f1 3,f2 3, f3 3,f4 3,f5 3] +@ +<<*>>= +-- File of Currently active and recently fixed interpreter bugs + +--- eval a polynomial with EXPR substitution values +--- Fixed by SCM, verified on 10/30/90 + +)clear all + + +eq1:= A*x**2 + B*x*y + C*y**2 +D*x + E*y + F + +eq2:= eval(eq1,[x= xdot*cos(t) - ydot*sin(t), y=xdot*sin(t) + ydot*cos(t)]) + +-- UTS coercions. Fixed by SCM, verified on 10/30/90 + +)clear all + +taylor exp x + +s := % + +s::(UTS(EXPR FLOAT, x, 0)) +s::(UTS(FLOAT, x, 0)) + +eval(s,1) +%::(Stream Float) + +-- overloading interpreter maps on arity +--- Fixed by SCM, verified on 10/30/90 + +)clear all + +f(x) == x+1 +f(x,y) == x+y + +f 3 +f(3,4) +f(5) +f(1,x) + +-- targetted function requiring a coercion +--- Fixed by SCM, verified on 10/30/90 + +)clear all +series(n +-> bernoulli(n)/factorial(n), t=0) + +-- in-homogeneous list mapping +--- Fixed by SCM, verified on 10/30/90 + +)clear all +l := [1,2,-1] +f : INT -> FRAC INT +f x == x +map(f, l) + +-- Function args to interpreter functions +--- Fixed by SCM, verified on 10/30/90 + +)cl all +f: INT -> INT +f x == x+1 +u g == g 3 +u f + +-- category modemap requiring a field to be constructed +--- Fixed by SCM, verified on 10/30/90 + +)clear all + +groebner [x**2 - y, y**3+1] + +-- operations requiring polynomials, passed variables +--- Fixed by SCM, verified on 10/30/90 + +)clear all +factor x + +-- bracket parsing and empty-set types +--- Fixed by SCM, verified on 10/30/90 + +)clear all +{}$(List INT) +{1} + +-- Shouldn't work, but no longer bombs the interpreter +--- Fixed by SCM, verified on 10/30/90 + +)clear all +map(variable, [x,y]) + +-- Recursive map type analysis bug +--- Fixed by SCM, verified on 10/30/90 +)set fun recur off +)clear all + +p(n,x) == if n=0 then 1 else (x+n-1)*p(n-1,x) +pp(n,x) == if n=0 then 1 else if n<0 then (-1)**n/p(-n,1-x) else p(n,x) +pp(-1,x) -- should be 1/(x-1) + +-- interpret-code mode for iterators is broken + +)cl all +f n == + for i in 1..n repeat + j:=2*i + m:SQMATRIX(j,?):=1 + print m +g n == + j:=2*n + m:SQMATRIX(j,?):=1 + print m + +g 3 -- Should work +f 3 -- Bombs + +-- Test interpreter list destructuring + +)clear all +mp(x,l) == + l is [a,:b] => + a*x**(#b)+ mp(x,b) + 0 + +mp(x, [1,3,4, 2]) +mp(x, [1,2,-3, 4]) + +-- Tests compilation of recursive functions + +)clear all + +f1 n == + if n=0 then 1 else if n=1 then 1 else f1(n-1)+f1(n-2) + +f2 n == + m:=n + if n=0 then 1 else if n=1 then 1 else f2(n-1)+f2(n-2) + +f3 n == + n=0 => 1 + n=1 => 1 + f3(n-1)+f3(n-2) + +f4 n == + m:=n + n=0 => 1 + n=1 => 1 + m:=n + f4(n-1)+f4(n-2) + +f5 n == if n=0 or n=1 then 1 else f5(n-1)+f5(n-2) + +[f1 3,f2 3, f3 3,f4 3,f5 3] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/c02aff.input.pamphlet b/src/input/c02aff.input.pamphlet new file mode 100644 index 00000000..e1368da3 --- /dev/null +++ b/src/input/c02aff.input.pamphlet @@ -0,0 +1,33 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input c02aff.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +a:Matrix SF:= + [[5.0 ,30.0 ,-0.2 ,50.0 ,-2.0 ,10.0 ],_ + [6.0 ,20.0 ,-6.0 ,100000.0 ,-40.0 ,1.0 ]] +n:=ncols(a)-1 +scale:=true +result:=c02aff(a,n,scale,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/c02agf.input.pamphlet b/src/input/c02agf.input.pamphlet new file mode 100644 index 00000000..9f3111c4 --- /dev/null +++ b/src/input/c02agf.input.pamphlet @@ -0,0 +1,32 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input c02agf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +a:Matrix SF:= + [[1.0 ,2.0 ,3.0 ,4.0 ,5.0 ,6.0 ]] +n:=ncols(a)-1 +scale:=true +result:=c02agf(a,n,scale,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/c05adf.input.pamphlet b/src/input/c05adf.input.pamphlet new file mode 100644 index 00000000..143b6611 --- /dev/null +++ b/src/input/c05adf.input.pamphlet @@ -0,0 +1,33 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input c05adf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +f:ASP1(F):=exp(-X)-X +a:SF:=0.0 +b:SF:=1.0 +eps:SF:=1.0e-5 +eta:SF:=0.0 +result:= c05adf(a,b,eps,eta,-1,f) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/c05nbf.input.pamphlet b/src/input/c05nbf.input.pamphlet new file mode 100644 index 00000000..d0a2ad6a --- /dev/null +++ b/src/input/c05nbf.input.pamphlet @@ -0,0 +1,43 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input c05nbf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +n:=9 +lwa:=n*(3*n+13)/2 +xtol:SF:=1.0e-9 +fi:ASP6(FCN):=retract vector[_ + 3*X[1] - 2*X[1]**2 - 2*X[2] + 1,_ + -X[1] + 3*X[2] - 2*X[2]**2 - 2*X[3] + 1,_ + -X[2] + 3*X[3] - 2*X[3]**2 - 2*X[4] + 1,_ + -X[3] + 3*X[4] - 2*X[4]**2 - 2*X[5] + 1,_ + -X[4] + 3*X[5] - 2*X[5]**2 - 2*X[6] + 1,_ + -X[5] + 3*X[6] - 2*X[6]**2 - 2*X[7] + 1,_ + -X[6] + 3*X[7] - 2*X[7]**2 - 2*X[8] + 1,_ + -X[7] + 3*X[8] - 2*X[8]**2 - 2*X[9] + 1,_ + -X[8] + 3*X[9] - 2*X[9]**2 + 1] +x:Matrix SF:= + [[-1.0 ,-1.0 ,-1.0 ,-1.0 ,-1.0 ,-1.0 ,-1.0 ,-1.0 ,-1.0 ]] +result:=c05nbf(n,lwa,x,xtol,-1,fi) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/c05pbf.input.pamphlet b/src/input/c05pbf.input.pamphlet new file mode 100644 index 00000000..44a33652 --- /dev/null +++ b/src/input/c05pbf.input.pamphlet @@ -0,0 +1,44 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input c05pbf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +n:=9 +ldfjac:=n +lwa:=n*(n+13)/2 +xtol:SF:=1.0e-9 +x:Matrix SF:= + [[-1.0 ,-1.0 ,-1.0 ,-1.0 ,-1.0 ,-1.0 ,-1.0 ,-1.0 ,-1.0 ]] +fcn:ASP35(FCN):=retract vector[_ +3*X[1] - 2*X[1]**2 - 2*X[2] + 1,_ +-X[1] + 3*X[2] - 2*X[2]**2 - 2*X[3] + 1,_ +-X[2] + 3*X[3] - 2*X[3]**2 - 2*X[4] + 1,_ +-X[3] + 3*X[4] - 2*X[4]**2 - 2*X[5] + 1,_ +-X[4] + 3*X[5] - 2*X[5]**2 - 2*X[6] + 1,_ +-X[5] + 3*X[6] - 2*X[6]**2 - 2*X[7] + 1,_ +-X[6] + 3*X[7] - 2*X[7]**2 - 2*X[8] + 1,_ +-X[7] + 3*X[8] - 2*X[8]**2 - 2*X[9] + 1,_ +-X[8] + 3*X[9] - 2*X[9]**2 + 1] +result:=c05pbf(n,ldfjac,lwa,x,xtol,-1,fcn) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/c06eaf.input.pamphlet b/src/input/c06eaf.input.pamphlet new file mode 100644 index 00000000..8aa6d37b --- /dev/null +++ b/src/input/c06eaf.input.pamphlet @@ -0,0 +1,31 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input c06aef.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +x:Matrix SF:= + [[0.34907 ,0.54890 ,0.74776 ,0.94459 ,1.13850 ,1.32850 ,1.51370 ]] +n:=ncols x +result:=c06eaf(n,x,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/c06ebf.input.pamphlet b/src/input/c06ebf.input.pamphlet new file mode 100644 index 00000000..8d131503 --- /dev/null +++ b/src/input/c06ebf.input.pamphlet @@ -0,0 +1,31 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input c06ebf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +x:Matrix SF:= + [[0.34907 ,0.54890 ,0.74776 ,0.94459 ,1.13850 ,1.32850 ,1.51370 ]] +n:=ncols x +result:=c06ebf(n,x,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/c06ecf.input.pamphlet b/src/input/c06ecf.input.pamphlet new file mode 100644 index 00000000..09953421 --- /dev/null +++ b/src/input/c06ecf.input.pamphlet @@ -0,0 +1,33 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input c06ecf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +x:Matrix SF:= + [[0.34907 ,0.54890 ,0.74776 ,0.94459 ,1.13850 ,1.32850 ,1.51370 ]] +y:Matrix SF:= + [[-0.37168 ,-0.35669 ,-0.31175 ,-0.23702 ,-0.13274 ,0.00074 ,0.16298 ]] +n:=ncols x +result:=c06ecf(n,x,y,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/c06ekf.input.pamphlet b/src/input/c06ekf.input.pamphlet new file mode 100644 index 00000000..ad89d548 --- /dev/null +++ b/src/input/c06ekf.input.pamphlet @@ -0,0 +1,36 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input c06ekf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +x:Matrix SF:= + [[1.00 ,1.00 ,1.00 ,1.00 ,1.00 ,0.00 ,0.00 ,0.00 ,0.00 ]] +y:Matrix SF:= + [[0.50 ,0.50 ,0.50 ,0.50 ,0.00 ,0.00 ,0.00 ,0.00 ,0.00 ]] +n:=ncols x +job:=1 +c06ekf(job,n,x,y,-1) +job:=2 +result:=c06ekf(job,n,x,y,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/c06fpf.input.pamphlet b/src/input/c06fpf.input.pamphlet new file mode 100644 index 00000000..e4633c86 --- /dev/null +++ b/src/input/c06fpf.input.pamphlet @@ -0,0 +1,36 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input c06fpf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +x:Matrix SF:= + [[0.3854 ,0.6772 ,0.1138 ,0.6751 ,0.6362 ,0.1424] ,_ + [0.5417 ,0.2983 ,0.1181 ,0.7255 ,0.8638 ,0.8723] ,_ + [0.9172 ,0.0644 ,0.6037 ,0.6430 ,0.0428 ,0.4815 ]] +m:=nrows x +n:=ncols x +trig:Matrix SF:=new(1,2*n,0.0@SF) +init:="i" +result:=c06fpf(m,n,init,x,trig,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/c06fqf.input.pamphlet b/src/input/c06fqf.input.pamphlet new file mode 100644 index 00000000..920d6ca2 --- /dev/null +++ b/src/input/c06fqf.input.pamphlet @@ -0,0 +1,36 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input c06fqf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +x:Matrix SF:= + [[0.3854 ,0.6772 ,0.1138 ,0.6751 ,0.6362 ,0.1424],_ + [0.5417 ,0.2983 ,0.1181 ,0.7255 ,0.8638 ,0.8723],_ + [0.9172 ,0.0644 ,0.6037 ,0.6430 ,0.0428 ,0.4815 ]] +m:=nrows x +n:=ncols x +trig:Matrix SF:=new(1,2*n,0.0@SF) +init:="i" +result:=c06fqf(m,n,init,x,trig,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/c06frf.input.pamphlet b/src/input/c06frf.input.pamphlet new file mode 100644 index 00000000..3fb04627 --- /dev/null +++ b/src/input/c06frf.input.pamphlet @@ -0,0 +1,40 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input c06frf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +x:Matrix SF:= + [[0.3854 ,0.6772 ,0.1138 ,0.6751 ,0.6362 ,0.1424],_ + [0.9172 ,0.0644 ,0.6037 ,0.6430 ,0.0428 ,0.4815],_ + [0.1156 ,0.0685 ,0.2060 ,0.8630 ,0.6967 ,0.2792 ]] +y:Matrix SF:= + [[0.5417, 0.2983, 0.1181 ,0.7255 ,0.8638 ,0.8723],_ + [0.9089, 0.3118, 0.3465 ,0.6198, 0.2668, 0.1614],_ + [0.6214, 0.8681, 0.7060 ,0.8652, 0.9190, 0.3355 ]] +m:=nrows x +n:=ncols x +trig:Matrix SF:=new(1,2*n,0.0@SF) +init:="i" +result:=c06frf(m,n,init,x,y,trig,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/c06fuf.input.pamphlet b/src/input/c06fuf.input.pamphlet new file mode 100644 index 00000000..c3bca823 --- /dev/null +++ b/src/input/c06fuf.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input c06fuf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +x:Matrix SF:= + [[1.000,0.999,0.987,0.936,0.802],_ + [0.994,0.989,0.963,0.891,0.731],_ + [0.903,0.885,0.823,0.694,0.467]] +y:Matrix SF:= + [[0.000,-0.040,-0.159,-0.352,-0.597],_ + [-0.111,-0.151,-0.268,-0.454,-0.682],_ + [-0.430,-0.466,-0.568,-0.720,-0.884]] +n:=ncols x +m:=nrows x +trigm:Matrix SF:=new(1,2*m,0.0@SF) +trign:Matrix SF:=new(1,2*n,0.0@SF) +init:="i" +result:=c06fuf(m,n,init,x,y,trigm,trign,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/c06gbf.input.pamphlet b/src/input/c06gbf.input.pamphlet new file mode 100644 index 00000000..98d4225e --- /dev/null +++ b/src/input/c06gbf.input.pamphlet @@ -0,0 +1,31 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input c06gbf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +x:Matrix SF:= + [[0.34907 ,0.54890 ,0.74776 ,0.94459 ,1.13850 ,1.32850 ,1.51370 ]] +n:=ncols x +result:=c06gbf(n,x,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/c06gcf.input.pamphlet b/src/input/c06gcf.input.pamphlet new file mode 100644 index 00000000..96b1dfbb --- /dev/null +++ b/src/input/c06gcf.input.pamphlet @@ -0,0 +1,31 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input c06gcf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +y:Matrix SF:= + [[-0.37168 ,-0.35669 ,-0.31175 ,-0.23702 ,0.00074 ,0.16298 ,1.51370 ]] +n:=ncols y +result:=c06gcf(n,y,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/c06gqf.input.pamphlet b/src/input/c06gqf.input.pamphlet new file mode 100644 index 00000000..e1516b54 --- /dev/null +++ b/src/input/c06gqf.input.pamphlet @@ -0,0 +1,34 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input c06gqf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +x:Matrix SF:= + [[0.3854 ,0.6772 ,0.1138 ,0.6751 ,0.6362 ,0.1424],_ + [0.5417 ,0.2983 ,0.1181 ,0.7255 ,0.8638 ,0.8723],_ + [0.9172 ,0.0644 ,0.6037 ,0.6430 ,0.0428 ,0.4815 ]] +m:=nrows x +n:=ncols x +result:=c06gqf(m,n,x,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/c06gsf.input.pamphlet b/src/input/c06gsf.input.pamphlet new file mode 100644 index 00000000..8649441d --- /dev/null +++ b/src/input/c06gsf.input.pamphlet @@ -0,0 +1,34 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input c06gsf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +x:Matrix SF:= + [[0.3854 ,0.6772 ,0.1138 ,0.6751 ,0.6362 ,0.1424],_ + [0.5417 ,0.2983 ,0.1181 ,0.7255 ,0.8638 ,0.8723],_ + [0.9172 ,0.0644 ,0.6037 ,0.6430 ,0.0428 ,0.4815 ]] +m:=nrows x +n:=ncols x +result:=c06gsf(m,n,x,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/calculus.input.pamphlet b/src/input/calculus.input.pamphlet new file mode 100644 index 00000000..362598ea --- /dev/null +++ b/src/input/calculus.input.pamphlet @@ -0,0 +1,61 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input calculus.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{bugs} +\subsection{bug1} +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +-- Input for page FormalDerivativePage +)clear all + +differentiate(f, x) +f := operator f +x := operator x +y := operator y +a := f(x z, y z, z**2) + x y(z+1) +dadz := differentiate(a, z) +eval(eval(dadz, 'x, z +-> exp z), 'y, z +-> log(z+1)) +eval(eval(a, 'x, z +-> exp z), 'y, z +-> log(z+1)) +differentiate(%, z) + +-- Input for page LaplacePage +)clear all + +sin(a*t) * cosh(a*t) - cos(a*t) * sinh(a*t) +laplace(%, t, s) +laplace((exp(a*t) - exp(b*t))/t, t, s) +laplace(2/t * (1 - cos(a*t)), t, s) +laplace(exp(-a*t) * sin(b*t) / b**2, t, s) +laplace((cos(a*t) - cos(b*t))/t, t, s) +laplace(exp(a*t+b)*Ei(c*t), t, s) +laplace(a*Ci(b*t) + c*Si(d*t), t, s) +laplace(sin(a*t) - a*t*cos(a*t) + exp(t**2), t, s) + +-- Input for page DerivativePage +)clear all + +f := exp exp x +differentiate(f, x) +differentiate(f, x, 4) +g := sin(x**2 + y) +differentiate(g, y) +differentiate(g, [y, y, x, x]) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/calculus2.input.pamphlet b/src/input/calculus2.input.pamphlet new file mode 100644 index 00000000..f90b9303 --- /dev/null +++ b/src/input/calculus2.input.pamphlet @@ -0,0 +1,359 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input calculus2.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{bugs} +\subsection{bug1} +exp: series expansion involves transcendental constants +<<bug1>>= +exp(2 + tan(y)) +@ +<<bugs>>= + +-- Input for page FormalDerivativePage +)clear all + +differentiate(f, x) +f := operator f +x := operator x +y := operator y +a := f(x z, y z, z**2) + x y(z+1) +dadz := differentiate(a, z) +eval(eval(dadz, 'x, z +-> exp z), 'y, z +-> log(z+1)) +eval(eval(a, 'x, z +-> exp z), 'y, z +-> log(z+1)) +differentiate(%, z) + +-- Input for page SeriesArithmeticPage +)clear all + +x := series x +num := 3 + x +den := 1 + 7 * x +num / den +base := 1 / (1 - x) +expon := x * base +base ** expon + +-- Input for page SeriesConversionPage +)clear all + +f := sin(a*x) +series(f,x = 0) +g := y / (exp(y) - 1) +series(g) +h := sin(3*x) +series(h,x,x = %pi/12) +series(sqrt(tan(a*x)),x = 0) +series(sec(x) ** 2,x = %pi/2) +bern := t * exp(t*x) / (exp(t) - 1) +series(bern,t = 0) + +-- Input for page SeriesDifferentialEquationPage +)clear all + +)set streams calculate 7 +y := operator 'y +eq := differentiate(y(x), x, 3) - sin(differentiate(y(x), x, 2)) * exp(y(x)) = cos(x) +seriesSolve(eq, y, x = 0, [1, 0, 0]) +x := operator 'x +eq1 := differentiate(x(t), t) = 1 + x(t)**2 +eq2 := differentiate(y(t), t) = x(t) * y(t) +seriesSolve([eq2, eq1], [x, y], t = 0, [y(0) = 1, x(0) = 0]) + +-- Input for page LaplacePage +)clear all + +sin(a*t) * cosh(a*t) - cos(a*t) * sinh(a*t) +laplace(%, t, s) +laplace((exp(a*t) - exp(b*t))/t, t, s) +laplace(2/t * (1 - cos(a*t)), t, s) +laplace(exp(-a*t) * sin(b*t) / b**2, t, s) +laplace((cos(a*t) - cos(b*t))/t, t, s) +laplace(exp(a*t+b)*ei(c*t), t, s) +laplace(a*ci(b*t) + c*si(d*t), t, s) +laplace(sin(a*t) - a*t*cos(a*t) + exp(t**2), t, s) + +-- Input for page SeriesCoefficientPage +)clear all + +x := series(x) +y := exp(x) * sin(x) +coefficient(y,6) +coefficient(y,15) +y + +-- Input for page SymbolicIntegrationPage +)clear all + +f := (x**2+2*x+1) / (x**6+6*x**5+15*x**4+20*x**3+15*x**2+6*x+2) +integrate(f, x) +g := log(1 + sqrt(a * x + b)) / x +integrate(g, x) +integrate(1/(x**2 - 2),x) +integrate(1/(x**2 + 2),x) +h := x**2 / (x**4 - a**2) +integrate(h, x) +complexIntegrate(h, x) +expandLog % +rootSimp % +ratForm % + +-- Input for page DerivativePage +)clear all + +f := exp exp x +differentiate(f, x) +differentiate(f, x, 4) +g := sin(x**2 + y) +differentiate(g, y) +differentiate(g, [y, y, x, x]) + +-- Input for page SeriesFormulaPage +)clear all + +taylor(n +-> 1/factorial(n),x = 0) +taylor(n +-> (-1)**(n-1)/n,x = 1,1..) +taylor(n +-> (-1)**(n-1)/n,x = 1,1..7) +laurent(n +-> (-1)**(n-1)/(n + 2),x = 1,-1..) +puiseux(i +-> (-1)**((i-1)/2)/factorial(i),x = 0,1..,2) +puiseux(j +-> j**2,x = 8,-4/3..,1/2) +series(n +-> 1/factorial(n),x = 0) +series(n +-> (-1)**(n - 1)/(n + 2),x = 1,-1..) +series(i +-> (-1)**((i - 1)/2)/factorial(i),x = 0,1..,2) + +-- Input for page SeriesCreationPage +)clear all + +x := series x +1/(1 - x - x**2) +sin(x) +sin(1 + x) +sin(a * x) +series(1/log(y),y = 1) +f : UTS(FLOAT,z,0) := exp(z) +series(1/factorial(n),n,w = 0) + +-- Input for page SeriesFunctionPage +)clear all + +x := series x +rat := x**2 / (1 - 6*x + x**2) +sin(rat) +y : UTS(FRAC INT,y,0) := y +exp(y) +tan(y**2) +cos(y + y**5) +log(1 + sin(y)) +<<bug1>> +z : UTS(EXPR INT,z,0) := z +exp(2 + tan(z)) +w := taylor w +exp(2 + tan(w)) + +-- Input for page LimitPage +)clear all + +f := sin(a*x) / tan(b*x) +limit(f,x=0) +g := csc(a*x) / csch(b*x) +limit(g,x=0) +h := (1 + k/x)**x +limit(h,x=%plusInfinity) + +-- Input for page SeriesBernoulliPage +)clear all + +reduce(+,[m**4 for m in 1..10]) +sum4 := sum(m**4, m = 1..k) +eval(sum4, k = 10) +f := t*exp(x*t) / (exp(t) - 1) +)set streams calculate 5 +ff := taylor(f,t = 0) +factorial(6) * coefficient(ff,6) +g := eval(f, x = x + 1) - f +normalize(g) +taylor(g,t = 0) +B5 := factorial(5) * coefficient(ff,5) +1/5 * (eval(B5, x = k + 1) - eval(B5, x = 1)) +sum4 +@ +<<*>>= + +-- Input for page FormalDerivativePage +)clear all + +differentiate(f, x) +f := operator f +x := operator x +y := operator y +a := f(x z, y z, z**2) + x y(z+1) +dadz := differentiate(a, z) +eval(eval(dadz, 'x, z +-> exp z), 'y, z +-> log(z+1)) +eval(eval(a, 'x, z +-> exp z), 'y, z +-> log(z+1)) +differentiate(%, z) + +-- Input for page SeriesArithmeticPage +)clear all + +x := series x +num := 3 + x +den := 1 + 7 * x +num / den +base := 1 / (1 - x) +expon := x * base +base ** expon + +-- Input for page SeriesConversionPage +)clear all + +f := sin(a*x) +series(f,x = 0) +g := y / (exp(y) - 1) +series(g) +h := sin(3*x) +series(h,x,x = %pi/12) +series(sqrt(tan(a*x)),x = 0) +series(sec(x) ** 2,x = %pi/2) +bern := t * exp(t*x) / (exp(t) - 1) +series(bern,t = 0) + +-- Input for page SeriesDifferentialEquationPage +)clear all + +)set streams calculate 7 +y := operator 'y +eq := differentiate(y(x), x, 3) - sin(differentiate(y(x), x, 2)) * exp(y(x)) = cos(x) +seriesSolve(eq, y, x = 0, [1, 0, 0]) +x := operator 'x +eq1 := differentiate(x(t), t) = 1 + x(t)**2 +eq2 := differentiate(y(t), t) = x(t) * y(t) +seriesSolve([eq2, eq1], [x, y], t = 0, [y(0) = 1, x(0) = 0]) + +-- Input for page LaplacePage +)clear all + +sin(a*t) * cosh(a*t) - cos(a*t) * sinh(a*t) +laplace(%, t, s) +laplace((exp(a*t) - exp(b*t))/t, t, s) +laplace(2/t * (1 - cos(a*t)), t, s) +laplace(exp(-a*t) * sin(b*t) / b**2, t, s) +laplace((cos(a*t) - cos(b*t))/t, t, s) +laplace(exp(a*t+b)*ei(c*t), t, s) +laplace(a*ci(b*t) + c*si(d*t), t, s) +laplace(sin(a*t) - a*t*cos(a*t) + exp(t**2), t, s) + +-- Input for page SeriesCoefficientPage +)clear all + +x := series(x) +y := exp(x) * sin(x) +coefficient(y,6) +coefficient(y,15) +y + +-- Input for page SymbolicIntegrationPage +)clear all + +f := (x**2+2*x+1) / (x**6+6*x**5+15*x**4+20*x**3+15*x**2+6*x+2) +integrate(f, x) +g := log(1 + sqrt(a * x + b)) / x +integrate(g, x) +integrate(1/(x**2 - 2),x) +integrate(1/(x**2 + 2),x) +h := x**2 / (x**4 - a**2) +integrate(h, x) +complexIntegrate(h, x) +expandLog % +rootSimp % +ratForm % + +-- Input for page DerivativePage +)clear all + +f := exp exp x +differentiate(f, x) +differentiate(f, x, 4) +g := sin(x**2 + y) +differentiate(g, y) +differentiate(g, [y, y, x, x]) + +-- Input for page SeriesFormulaPage +)clear all + +taylor(n +-> 1/factorial(n),x = 0) +taylor(n +-> (-1)**(n-1)/n,x = 1,1..) +taylor(n +-> (-1)**(n-1)/n,x = 1,1..7) +laurent(n +-> (-1)**(n-1)/(n + 2),x = 1,-1..) +puiseux(i +-> (-1)**((i-1)/2)/factorial(i),x = 0,1..,2) +puiseux(j +-> j**2,x = 8,-4/3..,1/2) +series(n +-> 1/factorial(n),x = 0) +series(n +-> (-1)**(n - 1)/(n + 2),x = 1,-1..) +series(i +-> (-1)**((i - 1)/2)/factorial(i),x = 0,1..,2) + +-- Input for page SeriesCreationPage +)clear all + +x := series x +1/(1 - x - x**2) +sin(x) +sin(1 + x) +sin(a * x) +series(1/log(y),y = 1) +f : UTS(FLOAT,z,0) := exp(z) +series(1/factorial(n),n,w = 0) + +-- Input for page SeriesFunctionPage +)clear all + +x := series x +rat := x**2 / (1 - 6*x + x**2) +sin(rat) +y : UTS(FRAC INT,y,0) := y +exp(y) +tan(y**2) +cos(y + y**5) +log(1 + sin(y)) +z : UTS(EXPR INT,z,0) := z +exp(2 + tan(z)) +w := taylor w +exp(2 + tan(w)) + +-- Input for page LimitPage +)clear all + +f := sin(a*x) / tan(b*x) +limit(f,x=0) +g := csc(a*x) / csch(b*x) +limit(g,x=0) +h := (1 + k/x)**x +limit(h,x=%plusInfinity) + +-- Input for page SeriesBernoulliPage +)clear all + +reduce(+,[m**4 for m in 1..10]) +sum4 := sum(m**4, m = 1..k) +eval(sum4, k = 10) +f := t*exp(x*t) / (exp(t) - 1) +)set streams calculate 5 +ff := taylor(f,t = 0) +factorial(6) * coefficient(ff,6) +g := eval(f, x = x + 1) - f +normalize(g) +taylor(g,t = 0) +B5 := factorial(5) * coefficient(ff,5) +1/5 * (eval(B5, x = k + 1) - eval(B5, x = 1)) +sum4 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/card.input.pamphlet b/src/input/card.input.pamphlet new file mode 100644 index 00000000..af18d2ab --- /dev/null +++ b/src/input/card.input.pamphlet @@ -0,0 +1,42 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input CARD.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from CardinalNumberXmpPage +)clear all + +c0 := 0 :: CardinalNumber +c1 := 1 :: CardinalNumber +c2 := 2 :: CardinalNumber +c3 := 3 :: CardinalNumber +A0 := Aleph 0 +A1 := Aleph 1 +finite? c2 +finite? A0 +countable? c2 +countable? A0 +countable? A1 +[c2 + c2, c2 + A1] +[c0*c2, c1*c2, c2*c2, c0*A1, c1*A1, c2*A1, A0*A1] +[c2**c0, c2**c1, c2**c2, A1**c0, A1**c1, A1**c2] +[c2-c1, c2-c2, c2-c3, A1-c2, A1-A0, A1-A1] +generalizedContinuumHypothesisAssumed true +[c0**A0, c1**A0, c2**A0, A0**A0, A0**A1, A1**A0, A1**A1] +a := Aleph 0 +c := 2**a +f := 2**c +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/cardinal.input.pamphlet b/src/input/cardinal.input.pamphlet new file mode 100644 index 00000000..7c800f85 --- /dev/null +++ b/src/input/cardinal.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input cardinal.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)clear all +(c0, c1, c2, c3, A0, A1): CardinalNumber +c0 := 0::NNI +c1 := 1::NNI +c2 := 2::NNI +c3 := 3::NNI +A0 := Aleph 0 +A1 := Aleph 1 +[finite? c2, finite? A0] +[finite? c2, finite? A0] +[countable? c2, countable? A0, countable? A1] +[c2 + c2, c2 + A1] +[c2 - c1, c2 - c2, c2 - c3, A1 - c2, A1 - A0, A1 - A1] +[c0 * c2, c1 * c2, c2 * c2, c0 * A1, c1 * A1, c2 * A1, A0 * A1] +[c2**c0, c2**c1, c2**c2, A1**c0, A1**c1, A1**c2] +generalizedContinuumHypothesisAssumed true +[c0**A0, c1**A0, c2**A0, A0**A0, A0**A1, A1**A0, A1**A1] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/carten.input.pamphlet b/src/input/carten.input.pamphlet new file mode 100644 index 00000000..444c6391 --- /dev/null +++ b/src/input/carten.input.pamphlet @@ -0,0 +1,70 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input CARTEN.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from CartesianTensorXmpPage +)clear all + +CT := CARTEN(i0 := 1, 2, Integer) +t0: CT := 8 +rank t0 +v: DirectProduct(2, Integer) := directProduct [3,4] +Tv: CT := v +m: SquareMatrix(2, Integer) := matrix [[1,2],[4,5]] +Tm: CT := m +n: SquareMatrix(2, Integer) := matrix [[2,3],[0,1]] +Tn: CT := n +t1: CT := [2, 3] +rank t1 +t2: CT := [t1, t1] +t3: CT := [t2, t2] +tt: CT := [t3, t3]; tt := [tt, tt] +rank tt +Tmn := product(Tm, Tn) +Tmv := contract(Tm,2,Tv,1) +Tm*Tv +Tmv = m * v +t0() +t1(1+1) +t2(2,1) +t3(2,1,2) +Tmn(2,1,2,1) +t0[] +t1[2] +t2[2,1] +t3[2,1,2] +Tmn[2,1,2,1] +cTmn := contract(Tmn,1,2) +trace(m) * n +contract(Tmn,1,2) = trace(m) * n +contract(Tmn,1,3) = transpose(m) * n +contract(Tmn,1,4) = transpose(m) * transpose(n) +contract(Tmn,2,3) = m * n +contract(Tmn,2,4) = m * transpose(n) +contract(Tmn,3,4) = trace(n) * m +tTmn := transpose(Tmn,1,3) +transpose Tmn +transpose Tm = transpose m +rTmn := reindex(Tmn, [1,4,2,3]) +tt := transpose(Tm)*Tn - Tn*transpose(Tm) +Tv*(tt+Tn) +reindex(product(Tn,Tn),[4,3,2,1])+3*Tn*product(Tm,Tm) +delta: CT := kroneckerDelta() +contract(Tmn, 2, delta, 1) = reindex(Tmn, [1,3,4,2]) +epsilon:CT := leviCivitaSymbol() +contract(epsilon*Tm*epsilon, 1,2) = 2 * determinant m +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/cclass.input.pamphlet b/src/input/cclass.input.pamphlet new file mode 100644 index 00000000..b5e6ca74 --- /dev/null +++ b/src/input/cclass.input.pamphlet @@ -0,0 +1,38 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input CCLASS.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from CharacterClassXmpPage +)clear all + +cl1 := charClass [char "a", char "e", char "i", char "o", char "u", char "y"] +cl2 := charClass "bcdfghjklmnpqrstvwxyz" +digit() +hexDigit() +upperCase() +lowerCase() +alphabetic() +alphanumeric() +member?(char "a", cl1) +member?(char "a", cl2) +intersect(cl1, cl2) +union(cl1,cl2) +difference(cl1,cl2) +intersect(complement(cl1),cl2) +insert!(char "a", cl2) +remove!(char "b", cl2) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/cdraw.input.pamphlet b/src/input/cdraw.input.pamphlet new file mode 100644 index 00000000..8d07d8a0 --- /dev/null +++ b/src/input/cdraw.input.pamphlet @@ -0,0 +1,164 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input cdraw.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +-- complex surface and vector field drawing by SCM +-- complex surface vector field drawing + +C := Complex DoubleFloat +S := Segment DoubleFloat +PC := Record(rr:DoubleFloat, th:DoubleFloat) + +realSteps: PI := 25 -- the number of steps in the real direction +imagSteps: PI := 25 -- the number of steps in the imaginary direction +clipValue: DoubleFloat := 10 -- the maximum length of a vector to draw + + +-- Draw a complex function as a height field +-- uses the complex norm as the height and the complex argument as the color +-- optionally it will draw arrows on the surface indicating the direction +-- of the complex argument + +-- sample call: +-- f: C -> C +-- f z == exp(1/z) +-- drawComplex(f, 0.3..3, 0..2*%pi, false) + +-- parameter descriptions: +-- f: the function to draw +-- rRange: the range of the real values +-- imagRange: the range of imaginary values +drawComplex(f: C -> C, realRange: S, imagRange: S): VIEW3D == + free realSteps, imagSteps + delReal := (hi(realRange) - lo(realRange))/realSteps + delImag := (hi(imagRange) - lo(imagRange))/imagSteps + funTable: ARRAY2(PC) := new(realSteps+1, imagSteps+1, [0,0]$PC) + real := lo(realRange) + for i in 1..realSteps+1 repeat + imag := lo(imagRange) + for j in 1..imagSteps+1 repeat + z := f complex(real, imag) + funTable(i,j) := [clipFun(sqrt norm z), argument(z)]$PC + imag := imag + delImag + real := real + delReal + llp:List List Point DoubleFloat := [] + real := lo(realRange) + for i in 1..realSteps+1 repeat + imag := lo(imagRange) + lp:List Point DoubleFloat := [] + for j in 1..imagSteps+1 repeat + lp := cons(point [real,imag, funTable(i,j).rr, + funTable(i,j).th] ,lp) + imag := imag + delImag + real := real + delReal + llp := cons(reverse! lp, llp) + llp := reverse! llp + space := mesh(llp)$ThreeSpace(DoubleFloat) + makeViewport3D(space, "Complex Function")$VIEW3D + +-- draw a complex vector field +-- these vector fields should be viewed from the top by pressing the +-- "XY" translate button on the VIEW3D control panel + +-- parameters: +-- f: the mapping from C to C which we will draw +-- realRange: the range of the reals +-- tRange: the range of the imaginaries + +-- sample call: +-- f z == sin z +-- drawComplexVectorField(f, -2..2, -2..2) +-- call the functions 'setRealSteps' and 'setImagSteps' to change the +-- number of arrows drawn in each direction. + +drawComplexVectorField(f: C -> C, realRange: S, imagRange: S): VIEW3D == + -- compute the steps size of the grid + delReal := (hi(realRange) - lo(realRange))/realSteps + delImag := (hi(imagRange) - lo(imagRange))/imagSteps + -- create the space to hold the arrows + space := create3Space()$ThreeSpace DoubleFloat + real := lo(realRange) + for i in 1..realSteps+1 repeat + imag := lo(imagRange) + for j in 1..imagSteps+1 repeat + -- compute the function + z := f complex(real, imag) + -- get the direction of the arrow + arg := argument z + -- get the length of the arrow + len := clipFun(sqrt norm z) + -- create point at the base of the arrow + p1 := point [real, imag, 0.0@DoubleFloat, arg] + -- scale the arrow length so it isn't too long + scaleLen := delReal * len + -- create the point at the top of the arrow + p2 := point [p1.1 + scaleLen*cos(arg), p1.2 + scaleLen*sin(arg), + 0.0@DoubleFloat, arg] + -- make the pointer at the top of the arrow + arrow := makeArrow(p1, p2, scaleLen, arg) + -- add the line segments in the arrow to the space + for a in arrow repeat curve(space, a)$ThreeSpace DoubleFloat + imag := imag + delImag + real := real + delReal + -- draw the vector feild + makeViewport3D(space, "Complex Vector Field")$VIEW3D + +-- relative size of the arrow head compared to the length of the arrow +arrowScale := 0.25@DoubleFloat + +-- angle of the arrow head +arrowAngle := %pi-%pi/10.0@DoubleFloat + +-- Add an arrow head to a line segment, which starts at 'p1', ends at 'p2', +-- has length 'len', and and angle 'arg'. We pass 'len' and 'arg' as +-- arguments since thet were already computed by the calling program +makeArrow(p1, p2, len, arg) == + c1 := cos(arg + arrowAngle) + s1 := sin(arg + arrowAngle) + c2 := cos(arg - arrowAngle) + s2 := sin(arg - arrowAngle) + p3 := point [p2.1 + c1*arrowScale*len, p2.2 + s1*arrowScale*len, + p2.3, p2.4] + p4 := point [p2.1 + c2*arrowScale*len, p2.2 + s2*arrowScale*len, + p2.3, p2.4] + [[p1, p2, p3], [p2, p4]] + +-- set the number of steps to use in the real direction +setRealSteps(n) == + free realSteps + realSteps := n + +-- set the number of steps to use in the imaginary direction +setImagSteps(n) == + free imagSteps + imagSteps := n + +-- set the maximum length of a vector +setClipValue clip == + free clipValue + clipValue := clip + +-- clip a value in the interval (-clip...clip) +clipFun(x:DoubleFloat):DoubleFloat == + min(max(x, -clipValue), clipValue) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/ch.input.pamphlet b/src/input/ch.input.pamphlet new file mode 100644 index 00000000..d9bee69b --- /dev/null +++ b/src/input/ch.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ch.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> +--Cyclohexan + +mfzn : SQMATRIX(6,DMP([x,y,z],Fraction INT)) :=_ + [[0,1,1,1,1,1],[1,0,1,8/3,x,8/3],[1,1,0,1,8/3,y],_ + [1,8/3,1,0,1,8/3],[1,x,8/3,1,0,1],[1,8/3,y,8/3,1,0]] +fzn := determinant mfzn +mfxn : SQMATRIX(6,DMP([x,y,z],Fraction Integer)) :=_ + [[0,1,1,1,1,1],[1,0,1,8/3,y,8/3],[1,1,0,1,8/3,z],_ + [1,8/3,1,0,1,8/3],[1,y,8/3,1,0,1],[1,8/3,z,8/3,1,0]] +fxn := determinant mfxn +mfyn : SQMATRIX(6,DMP([x,y,z],Fraction Integer)) :=_ + [[0,1,1,1,1,1],[1,0,1,8/3,z,8/3],[1,1,0,1,8/3,x],_ + [1,8/3,1,0,1,8/3],[1,z,8/3,1,0,1],[1,8/3,x,8/3,1,0]] +fyn := determinant mfyn +gb := groebnerFactorize [fxn,fyn,fzn] + + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/char.input.pamphlet b/src/input/char.input.pamphlet new file mode 100644 index 00000000..a5f91ab3 --- /dev/null +++ b/src/input/char.input.pamphlet @@ -0,0 +1,35 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input CHAR.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from CharacterXmpPage +)clear all + +chars := [char "a", char "A", char "X", char "8", char "+"] +space() +quote() +escape() +[ord c for c in chars] +[upperCase c for c in chars] +[lowerCase c for c in chars] +[alphabetic? c for c in chars] +[upperCase? c for c in chars] +[lowerCase? c for c in chars] +[digit? c for c in chars] +[hexDigit? c for c in chars] +[alphanumeric? c for c in chars] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/clif.input.pamphlet b/src/input/clif.input.pamphlet new file mode 100644 index 00000000..25d6c0ad --- /dev/null +++ b/src/input/clif.input.pamphlet @@ -0,0 +1,73 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input CLIF.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- Input generated from CliffordAlgebraXmpPage +)clear all + + +-- Input generated from ugxCliffordComplexPage +)clear all + +K := Fraction Polynomial Integer +m := matrix [[-1]] +C := CliffordAlgebra(1, K, quadraticForm m) +i: C := e(1) +x := a + b * i +y := c + d * i +x * y + +-- Input generated from ugxCliffordQuaternPage +)clear all + +K := Fraction Polynomial Integer +m := matrix [[-1,0],[0,-1]] +H := CliffordAlgebra(2, K, quadraticForm m) +i: H := e(1) +j: H := e(2) +k: H := i * j +x := a + b * i + c * j + d * k +y := e + f * i + g * j + h * k +x + y +x * y +y * x + +-- Input generated from ugxCliffordExteriorPage +)clear all + +K := Fraction Polynomial Integer +Ext := CliffordAlgebra(3, K, quadraticForm 0) +i: Ext := e(1) +j: Ext := e(2) +k: Ext := e(3) +x := x1*i + x2*j + x3*k +y := y1*i + y2*j + y3*k +x + y +x * y + y * x +dual2 a == coefficient(a,[2,3]) * i + coefficient(a,[3,1]) * j + coefficient(a,[1,2]) * k +dual2(x*y) + +-- Input generated from ugxCliffordDiracPage +)clear all + +K := Fraction Integer +g := matrix [[1,0,0,0], [0,-1,0,0], [0,0,-1,0], [0,0,0,-1]] +D := CliffordAlgebra(4,K, quadraticForm g) +gam := [e(i)$D for i in 1..4] +m := 1; n:= 2; r := 3; s := 4; +lhs := reduce(+, [reduce(+, [ g(l,t)*gam(l)*gam(m)*gam(n)*gam(r)*gam(s)*gam(t) for l in 1..4]) for t in 1..4]) +rhs := 2*(gam s * gam m*gam n*gam r + gam r*gam n*gam m*gam s) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/clifford.input.pamphlet b/src/input/clifford.input.pamphlet new file mode 100644 index 00000000..c6f22ac9 --- /dev/null +++ b/src/input/clifford.input.pamphlet @@ -0,0 +1,107 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input clifford.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> +-- CliffordAlgebra(n, K, Q) defines a vector space of dimension 2**n +-- over K, given a quadratic form Q on K**n. +-- +-- If e[i] 1<=i<=n is a basis for K**n then +-- 1, e[i] 1<=i<=n, e[i1]*e[i2] 1<=i1<i2<=n,...,e[1]*e[2]*..*e[n] +-- is a basis for the Clifford Algebra. +-- +-- The algebra is defined by the relations +-- e[i]*e[j] = -e[j]*e[i] i ^= j, +-- e[i]*e[i] = Q(e[i]) +-- +-- Examples of Clifford Algebras are: +-- gaussians, quaternions, exterior algebras and spin algebras. + +-- Choose rational functions as the ground field. +)clear all +K := FRAC POLY INT + +--% The complex numbers as a Clifford Algebra +)clear p qf +qf: QFORM(1, K) := quadraticForm(matrix([[-1]])$(SQMATRIX(1,K))) +C := CLIF(1, K, qf) +i := e(1)$C +x := a + b * i +y := c + d * i +x * y +recip % +x*% +%*y + +--% The quaternions as a Clifford Algebra +)clear p qf +qf:QFORM(2, K) :=quadraticForm matrix([[-1, 0], [0, -1]])$(SQMATRIX(2,K)) +H := CLIF(2, K, qf) +i := e(1)$H +j := e(2)$H +k := i * j +x := a + b * i + c * j + d * k +y := e + f * i + g * j + h * k +x + y +x * y +y * x + +--% The exterior algebra on a 3 space. +)clear p qf +qf: QFORM(3, K) := quadraticForm(0::SQMATRIX(3,K)) +Ext := CLIF(3,K,qf) +i := e(1)$Ext +j := e(2)$Ext +k := e(3)$Ext +x := x1*i + x2*j + x3*k +y := y1*i + y2*j + y3*k +x + y +x * y + y * x +-- In n space, a grade p form has a dual n-p form. +-- In particular, in 3 space the dual of a grade 2 element identifies +-- e1*e2->e3, e2*e3->e1, e3*e1->e2. +dual2 a == + coefficient(a,[2,3])$Ext * i + _ + coefficient(a,[3,1])$Ext * j + _ + coefficient(a,[1,2])$Ext * k + +-- The vector cross product is then given by +dual2(x*y) + +--% The Dirac Algebra used in Quantum Field Theory. +)clear p qf +K := FRAC INT +g: SQMATRIX(4, K) := [[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,-1]] +qf: QFORM(4, K) := quadraticForm g +D := CLIF(4,K,qf) + +-- The usual notation is gamma sup i. +gam := [e(i)$D for i in 1..4] + +-- There are various contraction identities of the form +-- g(l,t)*gam(l)*gam(m)*gam(n)*gam(r)*gam(s)*gam(t) = +-- 2*(gam(s)gam(m)gam(n)gam(r) + gam(r)*gam(n)*gam(m)*gam(s)) +-- where the sum over l and t is implied. + +-- Verify this identity for m=1,n=2,r=3,s=4 +m := 1; n:= 2; r := 3; s := 4; +lhs := reduce(+,[reduce(+,[g(l,t)*gam(l)*gam(m)*gam(n)*gam(r)*gam(s)*gam(t) + for l in 1..4]) for t in 1..4]) +rhs := 2*(gam s * gam m*gam n*gam r + gam r*gam n*gam m*gam s) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/coercels.input.pamphlet b/src/input/coercels.input.pamphlet new file mode 100644 index 00000000..fd6551fb --- /dev/null +++ b/src/input/coercels.input.pamphlet @@ -0,0 +1,34 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input coercels.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +alternatingGroup 4 +% :: List Permutation Integer +li := % +pgr := MonoidRing(Polynomial PrimeField 5, Permutation Integer) +p : pgr := first li +q : pgr := first li +basis := [p,q,p*p,p*q, q*p,q*q, p*q*q, p*q*p, q*p*q,q*q*p,q*p*q*q,q*q*p*q] +% :: Set MonoidRing(Polynomial PrimeField 5,Permutation Integer) + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/collect.input.pamphlet b/src/input/collect.input.pamphlet new file mode 100644 index 00000000..4d79d23d --- /dev/null +++ b/src/input/collect.input.pamphlet @@ -0,0 +1,95 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input collect.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + + +-- Input for page Collections +)clear all + +a := [i**3 for i in 0..10] +b := expand [0..10] +c := [x**3 for x in b] +d := [i**3 for i in 0..10 | even? i] +d := [x**3 for x in b | even? x] +d := [x for x in c | even? x] +d := [i**3 for i in 0..10 by 2 | even? i] +e := reverse [i**3 for i in 10..0 by -2 | even? i] +[x - y for x in d for y in e] + +-- Input generated from ContinuedFractionXmpPage +)clear all + +c := continuedFraction(314159/100000) +partialQuotients c +convergents c +approximants c +pq := partialQuotients(1/c) +continuedFraction(first pq,repeating [1],rest pq) +z:=continuedFraction(3,repeating [1],repeating [3,6]) +dens:Stream Integer := cons(1,generate((x+->x+4),6)) +cf := continuedFraction(0,repeating [1],dens) +ccf := convergents cf +eConvergents := [2*e + 1 for e in ccf] +eConvergents :: Stream Float +exp 1.0 +cf := continuedFraction(1,[(2*i+1)**2 for i in 0..],repeating [2]) +ccf := convergents cf +piConvergents := [4/p for p in ccf] +piConvergents :: Stream Float +continuedFraction((- 122 + 597*%i)/(4 - 4*%i)) +r : Fraction UnivariatePolynomial(x,Fraction Integer) +r := ((x - 1) * (x - 2)) / ((x-3) * (x-4)) +continuedFraction r +[i*i for i in convergents(z) :: Stream Float] +[x**3 - y for x in b | even? x for y in e] +f := [i**3 for i in 0..] +[i**3 for i in 0..10] +[i**3 for i in 0.. while i < 11] +[i**3 for i in 0.. for x in 0..10] +[[i**j for j in 0..3] for i in 0..] +[[i**j for j in 0..] for i in 0..3] +brace [i**3 for i in 10..0 by -2] + +-- Input for page ForCollectionDetailPage +)clear all + +u := [i**3 for i in 1..10] +u(4) +[8*i**3 for n in 1..5] +[u(2*n) for n in 1..5] +[u(i) for i in 1..10 | even? i] +[x for x in u | even? x] + +-- Input for page ForStreamDetailPage +)clear all + +u := [i**3 for i in 1..] +u(4) +u +u(16) +[i**3 for i in 0.. | even? i] +[8*i**3 for i in 0..] +[i**3 for i in 0.. by 2] +[u(i) for i in 1.. | even? i] +[u(2*i) for i in 1..] +[x for x in u | even? x] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/color.input.pamphlet b/src/input/color.input.pamphlet new file mode 100644 index 00000000..131467c5 --- /dev/null +++ b/src/input/color.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input color.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- test input of Color domain +numberOfHues() +red() +blue() +green() +yellow() +b := hue blue() +red() + green() +hue red() + hue green() +red() + yellow() +red() + 3*yellow() +3*red() + yellow() +c := color 15 +draw(x**2,x=-1..1,pointColor == green()) +g := color 13 +draw(x**2,x=-1..1,curveColor == g + 2*blue()) + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/complex.input.pamphlet b/src/input/complex.input.pamphlet new file mode 100644 index 00000000..43fb1d53 --- /dev/null +++ b/src/input/complex.input.pamphlet @@ -0,0 +1,37 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input COMPLEX.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +<<*>>= + +-- Input generated from ComplexXmpPage +)clear all + +a := complex(4/3,5/2) +b := complex(4/3,-5/2) +a + b +a - b +a * b +a / b +% :: Fraction Complex Integer +3.4 + 6.7 * %i +conjugate a +norm a +real a +imag a +gcd(13 - 13*%i,31 + 27*%i) +lcm(13 - 13*%i,31 + 27*%i) +factor(13 - 13*%i) +factor complex(2,0) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/cone.input.pamphlet b/src/input/cone.input.pamphlet new file mode 100644 index 00000000..9c45e1d8 --- /dev/null +++ b/src/input/cone.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input cone.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- graph of a cone +draw(surface(u*cos(v),u*sin(v),u),u = -3..3,v = 0..2*%pi,[title "Cone"]) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/conformal.input.pamphlet b/src/input/conformal.input.pamphlet new file mode 100644 index 00000000..1c4dba42 --- /dev/null +++ b/src/input/conformal.input.pamphlet @@ -0,0 +1,182 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input conformal.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- Drawing conformal maps. + +-- The functions in this file draw conformal maps both on the +-- complex plane and on the Riemann sphere. + +-- Compile, don't interpret functions. +)set fun comp on + +C := Complex DoubleFloat -- Complex Numbers +S := Segment DoubleFloat -- Draw ranges +R3 := POINT DoubleFloat -- points in 3-space + +-- conformalDraw(f, rRange, tRange, rSteps, tSteps, coord) +-- draws the image of the coordinate grid under f in the complex plane. +-- The grid may be given in either polar or cartesian coordinates. +-- parameter descriptions: +-- f: the function to draw +-- rRange: the range of the radius (in polar) or real (in cartesian) +-- tRange: the range of theta (in polar) or imaginary (in cartesian) +-- tSteps, rSteps: the number of intervals in each direction +-- coord: the coordinate system to use. Either "polar" or "cartesian" + +conformalDraw: (C -> C, S, S, PI, PI, String) -> VIEW3D +conformalDraw(f, rRange, tRange, rSteps, tSteps, coord) == + transformC := + coord = "polar" => polar2Complex + cartesian2Complex + cm := makeConformalMap(f, transformC) + sp := createThreeSpace() + adaptGrid(sp, cm, rRange, tRange, rSteps, tSteps) + makeViewport3D(sp, "Conformal Map") + +-- riemannConformalDraw(f, rRange, tRange, rSteps, tSteps, coord) +-- draws the image of the coordinate grid under f on the Riemann sphere. +-- The grid may given in either polar or cartesian coordinates. +-- parameter descriptions: +-- f: the function to draw +-- rRange: the range of the radius(in polar) or real (in cartesian) +-- tRange: the range of theta (in polar) or imaginary (in cartesian) +-- tSteps, rSteps: the number of intervals in each direction +-- coord: the coordinate system to use. either "polar" or "cartesian" + +riemannConformalDraw: (C -> C, S, S, PI, PI, String) -> VIEW3D +riemannConformalDraw(f, rRange, tRange, rSteps, tSteps, coord) == + transformC := + coord = "polar" => polar2Complex + cartesian2Complex + sp := createThreeSpace() + cm := makeRiemannConformalMap(f, transformC) + adaptGrid(sp, cm, rRange, tRange, rSteps, tSteps) + -- add an invisible point at the north pole for scaling + curve(sp, [point [0,0,2.0@DoubleFloat,0], point [0,0, 2.0@DoubleFloat,0]]) + makeViewport3D(sp, "Conformal Map on the Riemann Sphere") + +-- Plot the coordinate grid using adaptive plotting for the coordinate +-- lines, and drawing tubes around the lines. +adaptGrid(sp, f, uRange, vRange, uSteps, vSteps) == + delU := (hi(uRange) - lo(uRange))/uSteps + delV := (hi(vRange) - lo(vRange))/vSteps + uSteps := uSteps + 1; vSteps := vSteps + 1 + u := lo uRange + -- draw the coodinate lines in the v direction + for i in 1..uSteps repeat + -- create a curve 'c' which fixes the current value of 'u' + c := curryLeft(f,u) + cf := (t:DoubleFloat):DoubleFloat +-> 0 + -- draw the 'v' coordinate line + makeObject(c, vRange::Segment Float, colorFunction == cf, space == sp, _ + tubeRadius == 0.02, tubePoints == 6) + u := u + delU + v := lo vRange + -- draw the coodinate lines in the u direction + for i in 1..vSteps repeat + -- create a curve 'c' which fixes the current value of 'v' + c := curryRight(f,v) + cf := (t:DoubleFloat):DoubleFloat +-> 1 + -- draw the 'u' coordinate line + makeObject(c, uRange::Segment Float, colorFunction == cf, space == sp, _ + tubeRadius == 0.02, tubePoints == 6) + v := v + delV + void() + +-- map a point in the complex plane to the Riemann sphere. +riemannTransform(z) == + r := sqrt norm z + cosTheta := (real z)/r + sinTheta := (imag z)/r + cp := 4*r/(4+r**2) + sp := sqrt(1-cp*cp) + if r>2 then sp := -sp + point [cosTheta*cp, sinTheta*cp, -sp + 1] + +-- convert cartesian coordinates to cartesian form complex +cartesian2Complex(r:DoubleFloat, i:DoubleFloat):C == complex(r, i) + +-- convert polar coordinates to cartesian form complex +polar2Complex(r:DoubleFloat, th:DoubleFloat):C == complex(r*cos(th), r*sin(th)) + +-- convert a complex function into a mapping from (DoubleFloat,DoubleFloat) to R3 in the +-- complex plane. +makeConformalMap(f, transformC) == + (u:DoubleFloat,v:DoubleFloat):R3 +-> + z := f transformC(u, v) + point [real z, imag z, 0.0@DoubleFloat] + +-- convert a complex function into a mapping from (DoubleFloat,DoubleFloat) to R3 on the +-- Riemann sphere. +makeRiemannConformalMap(f, transformC) == + (u:DoubleFloat, v:DoubleFloat):R3 +-> riemannTransform f transformC(u, v) + +-- draw a picture of the mapping of the complex plane to the Riemann sphere. +riemannSphereDraw: (S, S, PI, PI, String) -> VIEW3D +riemannSphereDraw(rRange, tRange, rSteps, tSteps, coord) == + transformC := + coord = "polar" => polar2Complex + cartesian2Complex + grid := (u:DoubleFloat , v:DoubleFloat): R3 +-> + z1 := transformC(u, v) + point [real z1, imag z1, 0] + sp := createThreeSpace() + adaptGrid(sp, grid, rRange, tRange, rSteps, tSteps) + connectingLines(sp, grid, rRange, tRange, rSteps, tSteps) + makeObject(riemannSphere, 0..2*%pi, 0..%pi, space == sp) + f := (z:C):C +-> z + cm := makeRiemannConformalMap(f, transformC) + adaptGrid(sp, cm, rRange, tRange, rSteps, tSteps) + makeViewport3D(sp, "Riemann Sphere") + +-- draw the lines which connect the points in the complex plane to +-- the north pole of the Riemann sphere. +connectingLines(sp, f, uRange, vRange, uSteps, vSteps) == + delU := (hi(uRange) - lo(uRange))/uSteps + delV := (hi(vRange) - lo(vRange))/vSteps + uSteps := uSteps + 1; vSteps := vSteps + 1 + u := lo uRange + -- for each grid point + for i in 1..uSteps repeat + v := lo vRange + for j in 1..vSteps repeat + p1 := f(u,v) + p2 := riemannTransform complex(p1.1, p1.2) + fun := lineFromTo(p1,p2) + cf := (t:DoubleFloat):DoubleFloat +-> 3 + makeObject(fun, 0..1, space == sp, tubePoints == 4, tubeRadius == 0.01, + colorFunction == cf) + v := v + delV + u := u + delU + void() + +riemannSphere(u,v) == + sv := sin(v) + 0.99@DoubleFloat*(point [cos(u)*sv, sin(u)*sv, cos(v),0.0@DoubleFloat]) + + point [0.0@DoubleFloat, 0.0@DoubleFloat, 1.0@DoubleFloat, 4.0@DoubleFloat] + +-- create a line functions which goeas from p1 to p2 as its paramter +-- goes from 0 to 1. +lineFromTo(p1, p2) == + d := p2 - p1 + (t:DoubleFloat):Point DoubleFloat +-> p1 + t*d +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/constant.input.pamphlet b/src/input/constant.input.pamphlet new file mode 100644 index 00000000..5e65ce10 --- /dev/null +++ b/src/input/constant.input.pamphlet @@ -0,0 +1,70 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input constant.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> +)clear all +-- knuth volume 2 p596 tables of numerical quantities +digits(42) +outputSpacing(5) +numeric(sqrt(2)) +numeric(sqrt(3)) +numeric(sqrt(5)) +numeric(sqrt(10)) +numeric(2**(1/3)) +numeric(3**(1/3)) +numeric(2**(1/4)) +numeric(log(2)) +numeric(log(3)) +numeric(log(10)) +numeric(1/log(2)) +numeric(1/log(10)) +numeric(%pi) +numeric(%pi/180) +numeric(1/%pi) +numeric(%pi**2) +numeric(sqrt(%pi)) +numeric(Gamma(1/2)) +numeric(Gamma(1/3)) +numeric(Gamma(2/3)) +numeric(%e) +numeric(1/%e) +numeric(%e**2) +-- this we don't have. it is the difference of the harmonic series and +-- the natural log (e.g. limit 1+1/2+...1/m-log(m)) +-- this converges slowly, essentially giving 1 more decimal place per +-- power of 10 in the sum. +gamma:=numeric(sum(1/x,x=1..10000)-log(10000)) +numeric(log(%pi)) +-- this we don't have. it is the golden ratio (1 + sqrt(5))/2 +phi:=(1+sqrt(5))/2 +numeric(phi) +-- gamma isn't the right to any reasonable precision above. reset it. +gamma:=0.5772156649015328606065120900824024310422 +numeric(%e**gamma) +numeric(%e**(%pi/4)) +numeric(sin(1)) +numeric(cos(1)) +-- this we don't have. it is the zeta function +-- numeric(zeta(3)) +numeric(log(phi)) +numeric(1/log(phi)) +numeric(-log(log(2))) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/contfrac.input.pamphlet b/src/input/contfrac.input.pamphlet new file mode 100644 index 00000000..7e349b78 --- /dev/null +++ b/src/input/contfrac.input.pamphlet @@ -0,0 +1,96 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input contfrac.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)clear all +r1 := 3/4 +r2 := 314159/100000 + +c1 := r1 :: ContinuedFraction Integer +c2 := r2 :: ContinuedFraction Integer + +-- We can view these in the list notation +partialQuotients c1 +partialQuotients c2 + +-- These are algebraic objects, so we can manipulate them accordingly +c1 + c2 +c1 * c2 +1 / c2 +c1 - c2 +c2 - c1 + +-- and can convert them back to rational numbers. +convergents % + + +)clear all +-- Continued fractions over other Euclidean domains +a0 := ((-122 + 597* %i)/(4 - 4*%i)) +b0 := ((-595 - %i)/(3 - 4*%i)) +a := continuedFraction(a0) +b := continuedFraction(b0) +a + b +convergents % +last % - (a0 + b0) +a / b +convergents % +last % - (a0/b0) + +(a = b)::Boolean +c := continuedFraction(3 + 4*%i, repeating [1 + %i], repeating [5 - %i]) +a/c +-- (a = c)::Boolean -- should give error +d := complete continuedFraction(3+4*%i, repeating [1+%i],[i-%i for i in 1..5]) +(a = d)::Boolean + + +q : Fraction UnivariatePolynomial('x, Fraction Integer) +q := (2*x**2 - x + 1) / (3*x**3 - x + 8) + +c := continuedFraction q +d := continuedFraction differentiate q +c/d +convergents % +q/differentiate q + +)clear all +-- This file illustrates continued fractions. + +)set streams calculate 7 + +-- Use the notation Phi(ai/bi, i = 1..n) for continued fractions +-- a1/(b1 + (a2/b2 + ... (an/bn) ...)) + +-- 1/(e-1) may be written Phi(i/i, i = 1..) +s := continuedFraction(0, expand [1..], expand [1..]) +-- Euler discovered the relation (e-1)/(e+1) = Phi(1/(4i-2), i = 1..) +t := reducedContinuedFraction(0, [4*i-2 for i in 1..]) +-- Arithmetic on infinite continued fractions is supported. +-- The results are given in reduced form. We illustrate by using the +-- values s = 1/(e-1) and t = (e-1)/(e+1) to recover the expansion for e. +e := 1/(s*t) - 1 +c := convergents e +for i in 1..15 repeat + output numeric c.i +(s = t)::Boolean +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/contfrc.input.pamphlet b/src/input/contfrc.input.pamphlet new file mode 100644 index 00000000..0effab29 --- /dev/null +++ b/src/input/contfrc.input.pamphlet @@ -0,0 +1,43 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input CONTFRAC.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- Input generated from ContinuedFractionXmpPage +)clear all + +c := continuedFraction(314159/100000) +partialQuotients c +convergents c +approximants c +pq := partialQuotients(1/c) +continuedFraction(first pq,repeating [1],rest pq) +z:=continuedFraction(3,repeating [1],repeating [3,6]) +dens:Stream Integer := cons(1,generate((x+->x+4),6)) +cf := continuedFraction(0,repeating [1],dens) +ccf := convergents cf +eConvergents := [2*e + 1 for e in ccf] +eConvergents :: Stream Float +exp 1.0 +cf := continuedFraction(1,[(2*i+1)**2 for i in 0..],repeating [2]) +ccf := convergents cf +piConvergents := [4/p for p in ccf] +piConvergents :: Stream Float +continuedFraction((- 122 + 597*%i)/(4 - 4*%i)) +r : Fraction UnivariatePolynomial(x,Fraction Integer) +r := ((x - 1) * (x - 2)) / ((x-3) * (x-4)) +continuedFraction r +[i*i for i in convergents(z) :: Stream Float] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/coordsys.input.pamphlet b/src/input/coordsys.input.pamphlet new file mode 100644 index 00000000..af2f3129 --- /dev/null +++ b/src/input/coordsys.input.pamphlet @@ -0,0 +1,79 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input coordsys.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- test input for CoordinateSystems package +draw(sin(x),x=0.5..%pi,coordinates == bipolar(1$DFLOAT)) +m(u:DFLOAT,v:DFLOAT):DFLOAT == 1 +draw(m,0..2*%pi, 0..%pi,coordinates == bipolar(1$DFLOAT)) + +draw(surface(u*cos(v),u*sin(v),u),u=1..4,v=1..2*%pi,coordinates == bipolarCylindrical(1$DFLOAT)) + +--conical(a,b) maps a 3D point (lambda,mu,nu) to the rectangular coordinates: +--x = lambda*mu*nu/(a*b) +--y = lambda/a*sqrt((mu**2-a**2)*(nu**2-a**2)/(a**2-b**2)) +--z = lambda/b*sqrt((mu**2-b**2)*(nu**2-b**2)/(b**2-a**2)) +--NOTE: There will be a division by zero error if a*b = 0, or a**2-b**2 = 0, +-- or if b**2-a**2 = 0. Also, the following relations must be true: +-- (mu**2-a**2)*(nu**2-a**2)/(a**2-b**2) > 0 and +-- (mu**2-b**2)*(nu**2-b**2)/(b**2-a**2) > 0. + +j1(t:DFLOAT):DFLOAT == 4 +j2(t:DFLOAT):DFLOAT == t +draw(curve(j1,j2,j2),-9..9,coordinates == cylindrical) + +draw(sin(4*t/7),t=0..14*%pi,coordinates == elliptic(1$DFLOAT)) +m(u:DFLOAT,v:DFLOAT):DFLOAT == 1 +draw(m,0..2*%pi,0..%pi,coordinates == elliptic(1$DFLOAT)) + +U2:Vector Expression Integer := vector [0,0,1] +x(u,v) == beta(u) + v*delta(u) +beta u == vector [cos u, sin u, 0] +delta u == (cos(u/2)) * beta(u) + sin(u/2) * U2 +vec := x(u,v) +draw(surface(vec.1,vec.2,vec.3),v=-0.5..0.5,u=0..2*%pi,coordinates == ellipticCylindrical(1$DFLOAT),var1Steps == 50,var2Steps == 50) + +m(u:DFLOAT,v:DFLOAT):DFLOAT == 1 +draw(m,-%pi/2..%pi/2,0..2*%pi,coordinates == oblateSpheroidal(1$DFLOAT)) + +h1(t:DFLOAT):DFLOAT == t +h2(t:DFLOAT):DFLOAT == 2 +draw(curve(h1,h2),-3..3,coordinates == parabolic) +draw(surface(u*cos(v),u*sin(v),2*u),u=0..4,v=0..2*%pi,coordinates == parabolic) + +draw(surface(u*cos(v),u*sin(v),v*cos(u)),u=0..4,v=0..2*%pi,coordinates == parabolicCylindrical) + +draw(surface(u*cos(v),u*sin(v),u*v),u=0..4,v=0..2*%pi,coordinates==paraboloidal,var1Steps == 50, var2Steps == 50) + +draw(sin(4*t/7),t=0..14*%pi,coordinates == polar) +m(u:DFLOAT,v:DFLOAT):DFLOAT == 1 +draw(m,0..2*%pi, 0..%pi,coordinates == polar) + +m(u:DFLOAT,v:DFLOAT):DFLOAT == 1 +draw(m,-%pi/2..%pi/2,0..2*%pi,coordinates == prolateSpheroidal(1$DFLOAT)) + +m(u:DFLOAT,v:DFLOAT):DFLOAT == 1 +draw(m,0..2*%pi,0..%pi,coordinates == spherical) + +draw(surface(u*cos(v),u*sin(v),u),u=1..4,v=1..4*%pi,coordinates == toroidal(1$DFLOAT)) + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/curl.input.pamphlet b/src/input/curl.input.pamphlet new file mode 100644 index 00000000..6229aa89 --- /dev/null +++ b/src/input/curl.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input curl.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- @(#)curl.input 1.1 89/09/07 20:54:44 +draw(curve(sin(t)*sin(2*t)*sin(3*t),sin(4*t)*sin(5*t)*sin(6*t)),t = 0..2*%pi) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/cycles.input.pamphlet b/src/input/cycles.input.pamphlet new file mode 100644 index 00000000..6c6c2c72 --- /dev/null +++ b/src/input/cycles.input.pamphlet @@ -0,0 +1,374 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input cycles.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +--Examples of Polya-Redfield enumeration methods. +-- +--This file is based upon the paper +--J.H.Redfield 'The Theory of Group-Reduced Distributions' +--American J. Math.,49 (1927) 433-455, +--and is an application of group theory to enumeration problems. +--It is a development of the work by P.A.MacMahon on the +--application of symmetric functions and Hammond operators to +--combinatorial theory. +-- +--The theory is based upon the symmetric functions s which are the +-- i +--sum of the i th powers of the variables. +--The cycle index of a permutation may be represented as a partition. +-- For example, the partition +-- 2 2 2 2 +-- (3 2 1 ) will be used to represent s s s and +-- 3 2 1 +-- will indicate that the permutation has two cycles of length 3, +-- one of length 2 and two of length 1. +--The cycle index of a permutation group is the sum of the cycle indices +--of its permutations divided by the number of permutations. +-- +--The cycle indices of certain groups are provided. +--complete n is the cycle index of the symmetric group of order n +)clear all +)expose EVALCYC +complete 1 +-- +-- (1) (1) +-- +complete 2 +-- +-- 1 1 2 +-- (2) - (2) + - (1 ) +-- 2 2 +-- +complete 3 +-- +-- 1 1 1 3 +-- (3) - (3) + - (2 1) + - (1 ) +-- 3 2 6 +-- +-- +complete 7 +-- +-- (7) +-- 1 1 1 1 2 1 1 1 3 +-- - (7) + - (6 1) + -- (5 2) + -- (5 1 ) + -- (4 3) + - (4 2 1) + -- (4 1 ) +-- 7 6 10 10 12 8 24 +-- + +-- 1 2 1 2 1 2 1 4 1 3 1 2 3 +-- -- (3 1) + -- (3 2 ) + -- (3 2 1 ) + -- (3 1 ) + -- (2 1) + -- (2 1 ) +-- 18 24 12 72 48 48 +-- + +-- 1 5 1 7 +-- --- (2 1 ) + ---- (1 ) +-- 240 5040 +-- +--elementary n is the nth elementary symmetric function. +-- +elementary 7 +-- +-- (8) +-- 1 1 1 1 2 1 1 1 3 +-- - (7) - - (6 1) - -- (5 2) + -- (5 1 ) - -- (4 3) + - (4 2 1) - -- (4 1 ) +-- 7 6 10 10 12 8 24 +-- + +-- 1 2 1 2 1 2 1 4 1 3 1 2 3 +-- -- (3 1) + -- (3 2 ) - -- (3 2 1 ) + -- (3 1 ) - -- (2 1) + -- (2 1 ) +-- 18 24 12 72 48 48 +-- + +-- 1 5 1 7 +-- - --- (2 1 ) + ---- (1 ) +-- 240 5040 +-- +--alternating n is the cycle index of the alternating group +--having an even number of even parts in each cycle partition. +-- +alternating 7 +-- +-- (9) +-- 2 1 2 1 1 2 1 2 1 4 1 2 3 +-- - (7) + - (5 1 ) + - (4 2 1) + - (3 1) + -- (3 2 ) + -- (3 1 ) + -- (2 1 ) +-- 7 5 4 9 12 36 24 +-- + +-- 1 7 +-- ---- (1 ) +-- 2520 +-- +-- +--cyclic n is the cycle index of the cyclic group +cyclic 7 +-- +-- 6 1 7 +-- (10) - (7) + - (1 ) +-- 7 7 +-- +--dihedral n is the cycle index of the dihedral group +-- +dihedral 7 +-- +-- 3 1 3 1 7 +-- (11) - (7) + - (2 1) + -- (1 ) +-- 7 2 14 +-- +--graphs n is the cycle index of the group of permutations on +--the edges of the complete graph with n nodes induced by +--applying the symmetric group to the nodes. +graphs 5 +-- +-- (12) +-- 1 1 2 1 2 1 3 1 4 2 1 3 4 1 10 +-- - (6 3 1) + - (5 ) + - (4 2) + - (3 1) + - (2 1 ) + -- (2 1 ) + --- (1 ) +-- 6 5 4 6 8 12 120 +-- +--The cycle index of a direct product of two groups is the product of the +--cycle indices of the groups. +--Redfield provided two operations on two cycle indices which +--will be called cup and cap here. +--The cup of two cycle indices is a kind of scalar product that +--combines monomials for permutations with the same cycles. +-- +--The cap operation provides the sum of the coefficients of the result +--of the cup operation which will be an integer that enumerates +--group-reduced distributions. +-- +--We can for example represent complete 2 * complete 2 +--as the set of objects a a b b and +--complete 2 * complete 1 * complete 1 as c c d e. +-- +--The integer cap(complete 2**2,complete 2*complete 1**2) +--is the number of different sets of four pairs. +-- +--a a b b a a b b a a b b a a b b +--c c d e c d c e c e c d d e c c +-- +cap(complete 2**2,complete 2*complete 1**2) +-- +-- (13) 4 +-- +--The integer cap(elementary 2**2,complete 2*complete 1**2) +--is the number of different sets of four pairs no two pairs being equal. +-- +-- a a b b a a b b +-- c d c e c e c d +-- +cap(elementary 2**2,complete 2*complete 1**2) +-- +-- (14) 2 +-- +--In this case the configurations enumerated are easily constructed, +--however the theory merely enumerates them providing little help in +--actually constructing them. Similarly +-- +--The number of 6-pairs, first from a a a b b c, second from d d e e f g. +-- +cap(complete 3*complete 2*complete 1,complete 2**2*complete 1**2) +-- +-- (15) 24 +-- +--Same again, but with no equal pairs +-- +cap(elementary 3*elementary 2*elementary 1,complete 2**2*complete 1**2) +-- +-- (16) 8 +-- +cap(complete 3*complete 2*complete 1,elementary 2**2*elementary 1**2) +-- +-- (17) 8 +-- +--The number of 6-triples, first from a a a b b c, second from +--d d e e f g, third from h h i i j j +-- +eval(cup(complete 3*complete 2*complete 1, cup(complete 2**2*complete 1**2,complete 2**3))) +-- +-- (18) 1500 +-- +--The cycle index of vertices of a square is dihedral 4 +-- +square:=dihedral 4 +-- +-- 1 3 2 1 2 1 4 +-- (19) - (4) + - (2 ) + - (2 1 ) + - (1 ) +-- 4 8 4 8 +-- +--The number of different squares with 2 red vertices and 2 blue vertices +-- +cap(complete 2**2,square) +-- +-- (20) 2 +-- +--The number of necklaces with 3 red beads,2 blue beads and 2 green beads +-- +cap(complete 3*complete 2**2,dihedral 7) +-- +-- (21) 18 +-- +--The number of graphs with 5 nodes and 7 edges +-- +cap(graphs 5,complete 7*complete 3) +-- +-- (22) 4 +--The cycle index of rotations of vertices of a cube +-- +macro s == powerSum +cube:=(1/24)*(s 1**8+9*s 2**4 + 8*s 3**2*s 1**2+6*s 4**2) +-- +-- 1 2 1 2 2 3 4 1 8 +-- (23) - (4 ) + - (3 1 ) + - (2 ) + -- (1 ) +-- 4 3 8 24 +-- +--The number of cubes with 4 red vertices and 4 blue vertices +cap(complete 4**2,cube) +-- +-- (24) 7 +-- +--The number of labeled graphs with degree sequence 2 2 2 1 1 +--with no loops or multiple edges +cap(complete 2**3*complete 1**2,wreath(elementary 4,elementary 2)) +--with loops allowed but not multiple edges +cap(complete 2**3*complete 1**2,wreath(elementary 4,complete 2)) +-- with multiple edges allowed, but not loops +cap(complete 2**3*complete 1**2,wreath(complete 4,elementary 2)) +-- with both multiple edges and loops allowed +cap(complete 2**3*complete 1**2,wreath(complete 4,complete 2)) +--Having constructed a cycle index for a configuration +--we are at liberty to evaluate the s i components any way we please. +--For example we can produce enumerating generating functions. +--This is done by providing a function f from an integer i to the +--value required of s , and then evaluating eval(f,cycleindex) +-- i +x:ULS(FRAC INT,'x,0):=x +ZeroOrOne:INT->ULS(FRAC INT,'x,0) +Integers:INT->ULS(FRAC INT,'x,0) +--For the integers 0 1 , or two colors +ZeroOrOne n == 1+x**n +ZeroOrOne 5 +--For the integers 0,1,2,... +Integers n == 1/(1-x**n) +Integers 5 +-- +--The coefficient of x**n below is the number of graphs with 5 nodes +--and n edges. +-- +eval(ZeroOrOne,graphs 5) +-- +-- 2 3 4 5 6 7 8 9 10 11 +-- (30) 1 + x + 2x + 4x + 6x + 6x + 6x + 4x + 2x + x + x + O(x ) +-- +--The coefficient of x**n is the number of necklaces with +-- n red beads and n-8 green beads. +eval(ZeroOrOne,dihedral 8) +--The coefficient of x**n is the number of partitions of n +--into 4 or fewer parts +eval(Integers,complete 4) +-- +-- (32) +-- 2 3 4 5 6 7 8 9 10 11 +-- 1 + x + 2x + 3x + 5x + 6x + 9x + 11x + 15x + 18x + 23x + O(x ) +-- +--The coefficient of x**n is the number of partitions of n into 4 +-- boxes containing ordered distinct parts. +eval(Integers,elementary 4) +-- +-- 6 7 8 9 10 11 +-- (33) x + x + 2x + 3x + 5x + O(x ) +-- +--the coefficient of x**n is the number of partitions of n +--into exactly 4 parts +-- +--The coefficient of x**n is the number of different cubes with n +-- red vertices and 8-n green ones. +-- +eval(ZeroOrOne,cube) +-- +-- 2 3 4 5 6 7 8 +-- (36) 1 + x + 3x + 3x + 7x + 3x + 3x + x + x +-- +--The coefficient of x**n is the number of different cubes with integers +-- on the vertices whose sum is n. +-- +eval(Integers,cube) +-- +-- (37) +-- 2 3 4 5 6 7 8 9 10 +-- 1 + x + 4x + 7x + 21x + 37x + 85x + 151x + 292x + 490x + 848x +-- + +-- 11 +-- O(x ) +-- +-- the coefficient of x**n is the number of graphs with 5 nodes and +-- with integers on the edges whose sum is n. +-- In other words the enumeration is of multigraphs with 5 nodes and n +-- edges. +eval(Integers,graphs 5) +-- +-- (38) +-- 2 3 4 5 6 7 8 9 10 +-- 1 + x + 3x + 7x + 17x + 35x + 76x + 149x + 291x + 539x + 974x +-- + +-- 11 +-- O(x ) +-- +--Graphs with 15 nodes enumerated with respect to number of edges +-- +eval(ZeroOrOne ,graphs 15) +-- +-- (39) +-- 2 3 4 5 6 7 8 9 10 +-- 1 + x + 2x + 5x + 11x + 26x + 68x + 177x + 496x + 1471x + 4583x +-- + +-- 11 12 13 14 15 16 +-- 15036x + 51814x + 185987x + 691001x + 2632420x + 10176660x +-- + +-- 17 18 19 20 21 +-- 39500169x + 152374465x + 578891716x + 2149523582x + O(x ) +-- +-- +--Necklaces with 7 green beads, 8 white beads, 5 yellow beads and 10 +--red beads. +-- +cap(dihedral 30,complete 7*complete 8*complete 5*complete 10) +-- +-- (40) 49958972383320 +-- The function SFunction is the S-function of a partition written +-- as a descending list of integers expressed in terms of power sum +-- symmetric functions. +sf3221:= SFunction [3,2,2,1] +-- It counts the number of different tableaux of shape 3,2,2,1 filled +-- with objects with an ascending order in the columns and a +-- non-descending order in the rows. +-- cap(sf3221,complete 4**2) is the number filled +-- with a a b b c c d d. +cap(sf3221,complete 2**4) +-- the configurations enumerated are +-- a a b a a c a a d +-- b c b b b b +-- c d c d c c +-- d d d +-- cap(sf3221,powerSum 1**8) is the number of tableaux filled with 1..8. +cap(sf3221,powerSum 1**8) +--The coefficient of x**n below is the number of column strict +-- reverse plane partitions of n of shape 3 2 2 1. +-- The smallest is +-- 0 0 0 +-- 1 1 +-- 2 2 +-- 3 +eval(Integers,sf3221) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/cycles1.input.pamphlet b/src/input/cycles1.input.pamphlet new file mode 100644 index 00000000..01ebb037 --- /dev/null +++ b/src/input/cycles1.input.pamphlet @@ -0,0 +1,69 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input CYCLES.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from CycleIndicatorsXmpPage +)clear all + +)expose EVALCYC +complete 1 +complete 2 +complete 3 +complete 7 +elementary 7 +alternating 7 +cyclic 7 +dihedral 7 +graphs 5 +cap(complete 2**2, complete 2*complete 1**2) +cap(elementary 2**2, complete 2*complete 1**2) +cap(complete 3*complete 2*complete 1,complete 2**2*complete 1**2) +cap(elementary 3*elementary 2*elementary 1,complete 2**2*complete 1**2) +cap(complete 3*complete 2*complete 1,elementary 2**2*elementary 1**2) +eval(cup(complete 3*complete 2*complete 1, cup(complete 2**2*complete 1**2,complete 2**3))) +square:=dihedral 4 +cap(complete 2**2,square) +cap(complete 3*complete 2**2,dihedral 7) +cap(graphs 5,complete 7*complete 3) +s(x) == powerSum(x) +cube:=(1/24)*(s 1**8+9*s 2**4 + 8*s 3**2*s 1**2+6*s 4**2) +cap(complete 4**2,cube) +cap(complete 2**3*complete 1**2,wreath(elementary 4,elementary 2)) +cap(complete 2**3*complete 1**2,wreath(elementary 4,complete 2)) +cap(complete 2**3*complete 1**2,wreath(complete 4,elementary 2)) +cap(complete 2**3*complete 1**2,wreath(complete 4,complete 2)) +x: ULS(FRAC INT,'x,0) := 'x +ZeroOrOne: INT -> ULS(FRAC INT, 'x, 0) +Integers: INT -> ULS(FRAC INT, 'x, 0) +ZeroOrOne n == 1+x**n +ZeroOrOne 5 +Integers n == 1/(1-x**n) +Integers 5 +eval(ZeroOrOne, graphs 5) +eval(ZeroOrOne,dihedral 8) +eval(Integers,complete 4) +eval(Integers,elementary 4) +eval(ZeroOrOne,cube) +eval(Integers,cube) +eval(Integers,graphs 5) +eval(ZeroOrOne ,graphs 15) +cap(dihedral 30,complete 7*complete 8*complete 5*complete 10) +sf3221:= SFunction [3,2,2,1] +cap(sf3221,complete 2**4) +cap(sf3221, powerSum 1**8) +eval(Integers, sf3221) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/cycloid.input.pamphlet b/src/input/cycloid.input.pamphlet new file mode 100644 index 00000000..e6e899ec --- /dev/null +++ b/src/input/cycloid.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input cycloid.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- @(#)cycloid1.input 1.1 89/09/07 20:54:46 +draw(curve(t - sin t,1 - cos t),t = -5..5) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/cycloid2.input.pamphlet b/src/input/cycloid2.input.pamphlet new file mode 100644 index 00000000..ec6dd4cc --- /dev/null +++ b/src/input/cycloid2.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input cycloid2.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- @(#)cycloid2.input 1.1 89/09/07 20:54:48 +draw(curve(2*t - sin t,2 - cos t),t = -5..5) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/cycloid3.input.pamphlet b/src/input/cycloid3.input.pamphlet new file mode 100644 index 00000000..0d80f0a5 --- /dev/null +++ b/src/input/cycloid3.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input cycloid3.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- @(#)cycloid3.input 1.1 89/09/07 20:54:50 +draw(curve(t - 2*sin t,1 - 2*cos t),t = -5..5) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/cyfactor.input.pamphlet b/src/input/cyfactor.input.pamphlet new file mode 100644 index 00000000..3d4a58ef --- /dev/null +++ b/src/input/cyfactor.input.pamphlet @@ -0,0 +1,52 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input cyfactor.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> + +)cl all + +--Special case tests of factoring code for cyclotomic polynomials + +-- +/- x^n - 1 (n even) + +factor(x**84 - 1) +factor(-(x**68 -1)) + +-- +/- x^n + 1 (n odd) + +factor(x**99 + 1) +factor(-(x**77 +1)) + +-- +/- x^(2^k) + 1 + +ind := 2**6 +factor(x**ind + 1) + +ind := 2**7 +factor(-(x**ind + 1)) + +-- This takes a lot longer than it should. It will improve when the +-- cyclotomic code improves. + +factor(x**84 + 1) +D +--cyclotomic code improves. +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d01ajf.input.pamphlet b/src/input/d01ajf.input.pamphlet new file mode 100644 index 00000000..34b71d38 --- /dev/null +++ b/src/input/d01ajf.input.pamphlet @@ -0,0 +1,36 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d01ajf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +e:EXPR FLOAT:=(X*sin(30*X)/(sqrt(1-(X/(2*%pi))**2))) +f:ASP1(F):=retract e +a:SF:=0.0 +b:SF:=%pi*2 +epsabs:SF:=0.0 +epsrel:SF:=1.0e-4 +liw:=200 +lw:=4*liw +result:=d01ajf(a,b,epsabs,epsrel,lw,liw,-1,f) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d01akf.input.pamphlet b/src/input/d01akf.input.pamphlet new file mode 100644 index 00000000..ca9d6001 --- /dev/null +++ b/src/input/d01akf.input.pamphlet @@ -0,0 +1,36 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d01akf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +e:EXPR FLOAT:=X*sin(30*X)*cos(X) +f:ASP1(F):=retract e +a:SF:=0.0 +b:SF:=%pi*2 +epsabs:SF:=0.0 +epsrel:SF:=1.0e-4 +liw:=200 +lw:=4*liw +result:=d01akf(a,b,epsabs,epsrel,lw,liw,-1,f) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d01alf.input.pamphlet b/src/input/d01alf.input.pamphlet new file mode 100644 index 00000000..e9cb84a2 --- /dev/null +++ b/src/input/d01alf.input.pamphlet @@ -0,0 +1,38 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d01alf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +e:EXPR FLOAT:=1/sqrt(abs(X-1/7)) +f:ASP1(F):= retract e +a:SF:=0.0 +b:SF:=1.0 +points:Matrix SF:=[[1/7]] +npts:=ncols points +epsabs:SF:=0.0 +epsrel:SF:=1.0e-4 +liw:=max(npts+4,400) +lw:=max(2*npts+8,2*liw) +result:=d01alf(a,b,npts,points,epsabs,epsrel,lw,liw,-1,f) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d01amf.input.pamphlet b/src/input/d01amf.input.pamphlet new file mode 100644 index 00000000..c36281cd --- /dev/null +++ b/src/input/d01amf.input.pamphlet @@ -0,0 +1,35 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d001amf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +e:EXPR FLOAT:=1/((X+1)*sqrt(X)) +f:ASP1(F):=retract e +a:SF:=0.0 +epsabs:SF:=0.0 +epsrel:SF:=1.0e-4 +liw:=200 +lw:=4*liw +result:=d01amf(a,1,epsabs,epsrel,lw,liw,-1,f) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d01anf.input.pamphlet b/src/input/d01anf.input.pamphlet new file mode 100644 index 00000000..28583463 --- /dev/null +++ b/src/input/d01anf.input.pamphlet @@ -0,0 +1,37 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d01anf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +e:EXPR FLOAT:=log(X) +f:ASP1(G):=retract e +a:SF:=1.0e-6 +b:SF:=1.0 +epsabs:SF:=0.0 +epsrel:SF:=1.0e-4 +omega:SF:=10*%pi +liw:=max(400,2) +lw:=max(2*liw,4) +result:=d01anf(a,b,omega,2,epsabs,epsrel,lw,liw,-1,f) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d01apf.input.pamphlet b/src/input/d01apf.input.pamphlet new file mode 100644 index 00000000..75b67603 --- /dev/null +++ b/src/input/d01apf.input.pamphlet @@ -0,0 +1,39 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d01apf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +e:Expression Float:=sin(10*X) +f:ASP1(G):=retract e +a:SF:=1.0e-6 +b:SF:=1.0 +alpha:SF:=-0.5 +beta:SF:=-0.5 +epsabs:SF:=0.0 +epsrel:SF:=1.0e-4 +key:=1 +liw:=200 +lw:=4*liw +result:=d01apf(a,b,alpha,beta,key,epsabs,epsrel,lw,liw,-1,f) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d01aqf.input.pamphlet b/src/input/d01aqf.input.pamphlet new file mode 100644 index 00000000..2e2e05ee --- /dev/null +++ b/src/input/d01aqf.input.pamphlet @@ -0,0 +1,37 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d001aqf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +e:Expression Float:=(X**2+0.01**2)**-1 +f:ASP1(G):=retract e +a:SF:=-1.0 +b:SF:=1.0 +c:SF:=0.5 +epsabs:SF:=0.0 +epsrel:SF:=1.0e-4 +liw:=200 +lw:=4*200 +result:=d01aqf(a,b,c,epsabs,epsrel,lw,liw,-1,f) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d01asf.input.pamphlet b/src/input/d01asf.input.pamphlet new file mode 100644 index 00000000..d00389eb --- /dev/null +++ b/src/input/d01asf.input.pamphlet @@ -0,0 +1,37 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d01asf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +e:Expression Float:=1/sqrt(X) +f:ASP1(G):=retract e +a:SF:=1.0e-12 +omega:SF:=%pi/2 +key:=1 +epsabs:SF:=1.0e-3 +limlst:=50 +liw:=400 +lw:=2*liw +result:=d01asf(a,omega,key,epsabs,limlst,lw,liw,-1,f) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d01bbf.input.pamphlet b/src/input/d01bbf.input.pamphlet new file mode 100644 index 00000000..098ffc78 --- /dev/null +++ b/src/input/d01bbf.input.pamphlet @@ -0,0 +1,33 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d01bbf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +a:SF:=0.0 +b:SF:=1.0 +itype:=1 +n:=6 +kind:=0 +result:=d01bbf(a,b,itype,n,kind,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d01fcf.input.pamphlet b/src/input/d01fcf.input.pamphlet new file mode 100644 index 00000000..70385066 --- /dev/null +++ b/src/input/d01fcf.input.pamphlet @@ -0,0 +1,38 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d01fcf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +e:= (4.0*X[1]*X[3]*X[3]*exp(2.0*X[1]*X[3])/((1.0+X[2]+X[4])**2))::EXPR FLOAT +f:ASP4(FUNCTN):=retract e +ndim:=4 +a:Matrix SF:=[[0.0,0.0,0.0,0.0]] +b:Matrix SF:=[[1.0,1.0,1.0,1.0]] +alpha:=2^ndim+2*ndim^2+2*ndim+1 +minpts:=1000 +maxpts:=5700 +eps:=0.0001 +lenwrk:=606 +result:=d01fcf(ndim,a,b,maxpts,eps,lenwrk,minpts,-1,f) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d01gaf.input.pamphlet b/src/input/d01gaf.input.pamphlet new file mode 100644 index 00000000..a04ac380 --- /dev/null +++ b/src/input/d01gaf.input.pamphlet @@ -0,0 +1,37 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d01gaf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +n:=21 +x:Matrix SF:= + [[0.00 ,0.04 ,0.08 ,0.12 ,0.22 ,0.26 ,0.30 ,_ + 0.38 ,0.39 ,0.42 ,0.45 ,0.46 ,0.60 ,0.68 ,_ + 0.72 ,0.73 ,0.83 ,0.85 ,0.88 ,0.90 ,1.00 ]] +y:Matrix SF:= + [[4.0000 ,3.9936 ,3.9746 ,3.9432 ,3.8153 ,3.7467 ,3.6697 ,_ + 3.4943 ,3.4719 ,3.4002 ,3.3264 ,3.3014 ,2.9412 ,2.7352 ,_ + 2.6344 ,2.6094 ,2.3684 ,2.3222 ,2.2543 ,2.2099 ,2.0000 ]] +result:=d01gaf(x,y,n,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d01gbf.input.pamphlet b/src/input/d01gbf.input.pamphlet new file mode 100644 index 00000000..fbcb5db9 --- /dev/null +++ b/src/input/d01gbf.input.pamphlet @@ -0,0 +1,38 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d01gbf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +ndim:=4 +e:=(4.0*X[1]*X[3]*X[3]*exp(2.0*X[1]*X[3])/((1.0+X[2]+X[4])**2)) +f:ASP4(FUNCTN):=retract e +a:Matrix SF:=[[0.0,0.0,0.0,0.0]] +b:Matrix SF:=[[1.0,1.0,1.0,1.0]] +maxcls:=20000 +eps:=0.01 +lenwrk:=500 +wrk:Matrix SF:=new(1,lenwrk,0.0); +mincls:=1000 +result:=d01gbf(ndim,a,b,maxcls,eps,lenwrk,mincls,wrk,-1,f) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d02bbf.input.pamphlet b/src/input/d02bbf.input.pamphlet new file mode 100644 index 00000000..a0871f38 --- /dev/null +++ b/src/input/d02bbf.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d02bbf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +xend:SF:=8.0 +n:=3 +irelab:=0 +x:SF:=0.0 +y:Matrix SF:= + [[0.0 ,0.5 ,%pi*0.2 ]] +tol:SF:=0.0001 +vef:Vector Expression Float:= + [tan(Y[3]) ,-0.032*tan(Y[3])/Y[2] -0.02*Y[2]/cos(Y[3]) ,-0.032/(Y[2]**2) ] +fcn:Asp7(FCN):= retract vef +vm:Vector MachineFloat:= + [1,2,3,4,5,6,7,8] +output:Asp8(OUTPUT):= coerce vm +result:=d02bbf(xend,# vm,n,irelab,x,y,tol,-1,fcn,output) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d02bhf.input.pamphlet b/src/input/d02bhf.input.pamphlet new file mode 100644 index 00000000..c7de235c --- /dev/null +++ b/src/input/d02bhf.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d02bhf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +xend:SF:=10.0 +n:=3 +irelab:=0 +hmax:SF:=0.0 +x:SF:=0.0 +y:Matrix SF:= + [[0.5 ,0.5 ,%pi*0.2 ]] +tol:SF:=0.0001 +ef:Expression Float:=1.0*Y[1]::EXPR FLOAT +g:Asp9(G):=retract ef +vef:Vector Expression Float:= + [tan(Y[3]) ,-0.032*tan(Y[3])/Y[2] -0.02*Y[2]/cos(Y[3]) ,-0.032/(Y[2]**2) ] +fcn:Asp7(FCN):= retract vef +result:=d02bhf(xend,n,irelab,hmax,x,y,tol,-1,g,fcn) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d02cjf.input.pamphlet b/src/input/d02cjf.input.pamphlet new file mode 100644 index 00000000..920e4a68 --- /dev/null +++ b/src/input/d02cjf.input.pamphlet @@ -0,0 +1,42 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d02cjf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +xend:SF:=10.0 +n:=3 +tol:SF:=0.0001 +relabs:="D" +x:SF:=0.0 +y:Matrix SF:=[[0.5 ,0.5 ,%pi*0.2 ]] +ef:Expression Float:=Y[1]:: EXPR FLOAT +g:Asp9(G):=retract ef +vef:Vector Expression Float:= + [tan(Y[3]) ,-0.032*tan(Y[3])/Y[2] -0.02*Y[2]/cos(Y[3]) ,-0.032/(Y[2]**2) ] +fcn:Asp7(FCN):= retract vef +vm:Vector MachineFloat:= + [2,4,6,8] +output:Asp8(OUTPUT):=coerce vm +result:=d02cjf(xend,# vm,n,tol,relabs,x,y,-1,g,fcn,output) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d02ejf.input.pamphlet b/src/input/d02ejf.input.pamphlet new file mode 100644 index 00000000..dc3e99b3 --- /dev/null +++ b/src/input/d02ejf.input.pamphlet @@ -0,0 +1,46 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d02ejf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +xend:SF:= 10.0 +n:=3 +relabs:="D" +iw:=95 +x:SF:=0.0 +y:Matrix SF:= + [[1.0 ,0.0 ,0.0 ]] +tol:=0.0001 +ef:Expression Float:=(Y[1]::EXPR FLOAT)-0.9 +g:Asp9(G):=retract ef +vef:Vector Expression Float:= + [-0.04*Y[1]+1.0E4*Y[2]*Y[3] ,_ + 0.04*Y[1]-1.0E4*Y[2]*Y[3]-3.0E7*Y[2]*Y[2] ,_ + 3.0E7*Y[2]*Y[2] ] +fcn:ASP7(FCN):=retract vef +pederv:Asp31(PEDERV):=retract vef +vm:Vector MachineFloat:=[2,4,6,8] +output:Asp8(OUTPUT):=coerce vm +result:=d02ejf(xend,# vm,n,relabs,iw,x,y,tol,-1,g,fcn,pederv,output) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d02gaf.input.pamphlet b/src/input/d02gaf.input.pamphlet new file mode 100644 index 00000000..8936af66 --- /dev/null +++ b/src/input/d02gaf.input.pamphlet @@ -0,0 +1,51 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d02gaf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +u:Matrix SF:= + [[0 ,10 ],[0 ,1 ],[0 ,0 ]] +v:Matrix SF:= + [[0.0 ,1.0 ],[0.0 ,0.0 ],[1.0 ,1.0 ]] +n:=3 +a:SF:=0.0 +b:SF:=10.0 +tol:=1.0e-3 +mnp:=64 +lw:=3056 +liw:= 471 +x:Matrix SF:= + [[0.0 ,0.4 ,0.8 ,1.2 ,1.6 ,2.0 ,2.4 ,2.8 ,3.2 ,_ + 3.6 ,4.0 ,4.4 ,4.8 ,5.2 ,5.6 ,6.0 ,6.4 ,6.8 ,_ + 7.2 ,7.6 ,8.0 ,8.4 ,8.8 ,9.2 ,9.6 ,10.0 ,0.0 ,_ + 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,_ + 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,_ + 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,_ + 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ]] +np:=26 +vef:Vector Expression Float:= + [Y[2] ,Y[3] ,-Y[1]*Y[3]-0.2*(1-Y[2]*Y[2]) ] +fcn:Asp7(FCN):=retract vef +result:=d02gaf(u,v,n,a,b,tol,mnp,lw,liw,x,np,-1,fcn) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d02gbf.input.pamphlet b/src/input/d02gbf.input.pamphlet new file mode 100644 index 00000000..a2ef4c23 --- /dev/null +++ b/src/input/d02gbf.input.pamphlet @@ -0,0 +1,58 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d02gbf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +a:SF:=0.0 +b:SF:=1.0 +n:=2 +tol:SF:=1.0e-3 +mnp:= 70 +lw:=1702 +liw:=352 +c:Matrix SF:= + [[1 ,0 ],[0 ,0 ]] +d:Matrix SF:= + [[0 ,0 ],[1 ,0 ]] +gam:Matrix SF:= + [[0 ,1 ]] +x:Matrix SF:= + [[0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,_ + 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,_ + 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,_ + 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,_ + 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,_ + 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,_ + 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,_ + 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ]] +np:=0 +ifail:= 11 +mef:Matrix Expression Float:= + [[0 ,1 ],[0 ,-10 ]] +fcnf:Asp77(FCNF):=retract mef +vef:Vector Expression Float := + [0 ,0 ] +fcng:Asp78(FCNG):=retract vef +result:=d02gbf(a,b,n,tol,mnp,lw,liw,c,d,gam,x,np,ifail,fcnf,fcng) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d02kef.input.pamphlet b/src/input/d02kef.input.pamphlet new file mode 100644 index 00000000..5b200dd0 --- /dev/null +++ b/src/input/d02kef.input.pamphlet @@ -0,0 +1,50 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d02kef.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +xpoint:Matrix SF:= + [[0.0 ,0.1 ,4**(1/3) ,30.0 ,30.0 ]] +m:=5 +k:=11 +tol:SF:=0.0001 +maxfun:=0 +match:=0 +elam:=14 +delam:=1 +hmax:Matrix SF:= + [[0.0 ,0.0 ],[0.0 ,0.0 ],_ + [ 0.0 ,0.0 ],[0.0 ,0.0 ],[0.0 ,0.0 ]] +maxit:= 0 +vef:Vector Expression Float:= + [1.0 ,ELAM-X-2.0/(X*X) ,1.0 ] +coeffn:Asp10(COEFFN):=retract vef +mef:Matrix Expression Float:= + [[XL ,2.0 ],[1.0 ,-sqrt(XR-ELAM) ]] +bdyval:Asp80(BDYVAL):=retract mef +result:=d02kef(xpoint,m,k,tol,maxfun,match,elam,delam,hmax,maxit,-1,coeffn,bdyval) +-- the following are the default Asps used. +outputAsFortran()$Asp12(MONIT) +outputAsFortran()$Asp33(REPORT) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d02raf.input.pamphlet b/src/input/d02raf.input.pamphlet new file mode 100644 index 00000000..be82a48c --- /dev/null +++ b/src/input/d02raf.input.pamphlet @@ -0,0 +1,53 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d02raf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +n:=3 +mnp:=40 +numbeg:=2 +nummix:=0 +tol:=1.0e-4 +init:=0 +iy:=3 +ijac:=1 +lwork:=1925 +liwork:=283 +np:=17 +x:Matrix SF:= + [[0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,_ + 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,10.0 ,0.0 ,0.0 ,0.0 ,_ + 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,_ + 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ]] +y:Matrix SF:=new(3,40,0.0) +deleps:=0.1 +ifail:=11 +vef:Vector Expression Float:= + [Y[2] ,Y[3] ,-Y[1]*Y[3] - 2*EPS*(1-Y[2]*Y[2]) ] +fcn:Asp41(FCN,JACOBF,JACEPS):= retract vef +vei:Vector Expression Integer:= + [YA[1] ,YA[2] ,YB[2] -1 ] +g:Asp42(G,JACOBG,JACGEP):=retract vei +result:=d02raf(n,mnp,numbeg,nummix,tol,init,iy,ijac,lwork,liwork,np,x,y,deleps,ifail,fcn,g) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d03edf.input.pamphlet b/src/input/d03edf.input.pamphlet new file mode 100644 index 00000000..e31739b1 --- /dev/null +++ b/src/input/d03edf.input.pamphlet @@ -0,0 +1,87 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d03edf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +ngx := 9 +ngy := 9 +lda := 134 +alpha := 1.7 +hx := 1/(ngx+1) +hy := 1/(ngy+1) +a := new(lda,7,0.0)$Matrix DoubleFloat; +rhs := new(1,lda,0.0)$Matrix DoubleFloat; +ub := new(1,ngx*ngy,0.0)$Matrix DoubleFloat; +for j in 1..ngy repeat + for i in 1..ngx repeat + k := (j-1)*ngx + i + a(k,1) := 1 - 0.5*alpha + a(k,2) := 0.5*alpha + a(k,3) := 1 - 0.5*alpha + a(k,4) := -4 + alpha + a(k,5) := 1 - 0.5*alpha + a(k,6) := 0.5*alpha + a(k,7) := 1 - 0.5*alpha + rhs(1,k) := -4.0*hx*hy +for i in 2..(ngx-1) repeat + ix := i + a(ix,1) := 0 + a(ix,2) := 0 + ix := i + (ngy -1)*ngx + a(ix,6) := 0 + a(ix,7) := 0 +for j in 2..(ngy-1) repeat + iy := (j-1)*ngx+1 + a(iy,3) := 0 + a(iy,6) := 0 + iy := j *ngx + rhs(1,iy) := rhs(1,iy) - a(iy,5) - a(iy,2) + a(iy,2) := 0 + a(iy,5) := 0 +k := 1 +a(1,1) := 0 +a(1,2) := 0 +a(1,3) := 0 +a(1,6) := 0 +k := 1 + (ngy-1)*ngx +a(k,3) := 0 +a(k,6) := 0 +a(k,7) := 0 +k := ngx +rhs(1,k) := rhs(1,k) - a(k,2)*0.5 -a(k,5) +a(k,1) := 0 +a(k,2) := 0 +a(k,5) := 0 +k := ngx * ngy +rhs(1,k) := rhs(1,k) - a(k,2) - a(k,5) +a(k,2) := 0 +a(k,5) := 0 +a(k,6) := 0 +a(k,7) := 0 +ifail := 0 +maxit := 15 +acc := 1.0e-4 +iout := 0 +result:=d03edf(ngx,ngy,lda,maxit,acc,iout,a,rhs,ub,ifail) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d03eef.input.pamphlet b/src/input/d03eef.input.pamphlet new file mode 100644 index 00000000..d1fcd0b3 --- /dev/null +++ b/src/input/d03eef.input.pamphlet @@ -0,0 +1,40 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d03eef.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +xmin := 0.0 +xmax := 1.0 +ymin := 0.0 +ymax := 1.0 +psi := -sin(X)*sin(Y) + 50*cos(X)*cos(Y) +50*sin(X)*cos(Y) +d03eea :Vector Expression Float := [1,0,1,50,50,0,psi] +d03eeb :Matrix Expression Float := matrix[[0,1,-sin(X)],[1,0,sin(X)*sin(Y)],[1,0,sin(X)*sin(Y)],[0,1,-sin(Y)]] +ngx := 9 +ngy := 9 +lda := 133 +scheme := "c" +ifail := -1 +result:=d03eef(xmin,xmax,ymin,ymax,ngx,ngy,lda,scheme,ifail,d03eea::ASP73('PDEF),d03eeb::ASP74('BNDY)) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/d03faf.input.pamphlet b/src/input/d03faf.input.pamphlet new file mode 100644 index 00000000..94b4ad32 --- /dev/null +++ b/src/input/d03faf.input.pamphlet @@ -0,0 +1,79 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input d03faf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +xs := 0.0 +xf := 1.0 +l := 16 +lbdcnd := 1 +m := 32 +n := 20 +maxlm := 32 +mdimf := m+1 +ldimf := l+1 +lwrk := 2*(n+1)*maxlm+3*l+3*m+4*n+6000 +bdxs := new(mdimf,n+1,0.0)$Matrix DoubleFloat; +bdxf := new(mdimf,n+1,0.0)$Matrix DoubleFloat; +ys := 0.0 +yf := 2*numeric(%pi) +mbdcnd := 0 +bdys := new(ldimf,n+1,0.0)$Matrix DoubleFloat; +bdyf := new(ldimf,n+1,0.0)$Matrix DoubleFloat; +zs := 0.0 +zf := numeric(%pi)/2 +nbdcnd := 2 +bdzs := new(ldimf,m+1,0.0)$Matrix DoubleFloat; +bdzf := new(ldimf,m+1,0.0)$Matrix DoubleFloat; +lambda := -2 +ifail := 0 + +-- define grid points +dx := (xf-xs)/l +x := [[xs + (i-1)*dx for i in 1..l+1]] :: Matrix DoubleFloat; +dy := (yf-ys)/m +y := [[ys + (i-1)*dy for i in 1..m+1]] :: Matrix DoubleFloat; +dz := (zf-zs)/n +z := [[zs + (i-1)*dz for i in 1..n+1]] :: Matrix DoubleFloat; + +f:=zeroMatrix(ldimf,mdimf,n+1)$M3D DFLOAT; +--speed up these loops by compiling +foo()== + for k in 1..n+1 repeat + for j in 1..m+1 repeat + setelt!(f,1,j,k,sin(y(1,j))*cos(z(1,k))) + for j in 1..m+1 repeat + for i in 1..l+1 repeat + setelt!(f,i,j,1,x(1,i)**4*sin(y(1,j))) + for k in 2..n+1 repeat + for j in 1..m+1 repeat + for i in 2..l repeat + setelt!(f,i,j,k,4*x(1,i)**2*(3-x(1,i)**2)*sin(y(1,j))*cos(z(1,k))) + for j in 1..m+1 repeat + for i in 1..l+1 repeat + bdzf(i,j):=-x(1,i)**4*sin(y(1,j)) +foo() +result:=d03faf(xs,xf,l,lbdcnd,bdxs,bdxf,ys,yf,m,mbdcnd,bdys,bdyf,_ +zs,zf,n,nbdcnd,bdzs,bdzf,lambda,ldimf,mdimf,lwrk,f,ifail) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/damped.input.pamphlet b/src/input/damped.input.pamphlet new file mode 100644 index 00000000..4e0e5310 --- /dev/null +++ b/src/input/damped.input.pamphlet @@ -0,0 +1,52 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input damped.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- Input file to solve linear second order differential equations +-- with driving force A*cos(wt). + +-- The equation is solved at y(0)=y'(0)=0 for +-- (i) an overdamped, forced motion example c**2-4*k*m > 0 +-- (ii) critically damped c**2-4*k*m = 0 +-- (iii) underdamped c**2-4*k*m < 0 + +-- The resulting equations are then plotted. + +)clear all +y := operator y +deq := m*D(y x, x, 2) + c*D(y x, x) + k*(y x) = A * cos (w * x) + +solve(deq, y, x=0, [0,0]) -- takes a few minutes +ex:=% +eval(%, [c=6,k=5,m=1,A=6*sqrt(5),w=sqrt(5)]) -- c**2-4*k*m = 16 +draw(%,x=0..15,title=="Overdamping") + +eval(ex, [k=5,m=1,A=6*sqrt(5),w=sqrt(5)]) -- c**2-4*k*m = 0 +limit(%,c=sqrt(20),"right") -- otherwise division by zero +draw(%,x=0..15,title=="Critically Damped") + +eval(ex, [c=2,k=5,m=1,A=6*sqrt(5),w=sqrt(5)]) -- c**2-4*k*m = -16 +trigs % +rule1 := rule sin(-x) == - sin(x) +rule2 := rule cos(-x) == cos(x) +rule2 rule1 %% (-3) +draw(%,x=0..15,title=="Underdamped") +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/danzwill.input.pamphlet b/src/input/danzwill.input.pamphlet new file mode 100644 index 00000000..a6e20714 --- /dev/null +++ b/src/input/danzwill.input.pamphlet @@ -0,0 +1,118 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input danzwill.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{bugs} +\subsection{bug1} +integrate: pole in path of integration +<<bug1>>= +)set mes test off +d9:= integrate( 1/x**2,x=-1..1) +)set mes test on +@ +<<bugs>>= +-- X-External-Networks: yes +-- Date: Fri, 3 Apr 92 10:58:35 -0500 +-- From: zwilling@world.std.com (Daniel Zwillinger) +-- To: axiom@watson.ibm.com +-- +-- Enclosed is my test suite of integrals in MAPLE format. +-- I would appreciate you running it under AXIOM and returning the +-- results to me via email. +-- +-- Thank you. +-- +-- ---------------------------------------------------------------------- +-- Daniel Zwillinger email: zwilling@world.std.com +-- 61 Highland Avenue phone: 617/646-8565 +-- Arlington, MA 02174 +-- Home of: Handbook of Differential Equations +-- Home of: Handbook of Integration +-- ---------------------------------------------------------------------- +-- +)clear all +)set break resume +i1 := integrate( sin(x), x) +--i2 := integrate( sqrt(tan(x)), x) +i3 := integrate( x/(x**3-1),x) +i4 := integrate( x/sin(x)**2, x) +i5 := integrate( log(x)/sqrt(x+1), x) +i6 := integrate( exp(-a*x**2), x) +i7 := integrate( x/(log(x))**3, x) +i8 := integrate( x/(sqrt(1+x)+sqrt(1-x)),x) +i9 := integrate( 1/(2+cos(x)),x) +i10:= integrate( sin(x)/x**2, x) + +d1:= integrate( 1/(2+cos(x)),x=0..4*%pi) +)set mes test off +d2:= integrate( sin(x)/x,x=%minusInfinity..%plusInfinity) +)set mes test on +d3:= integrate( x**2/(1+x**3),x=0..%plusInfinity) +d4:= integrate( exp(-x)/sqrt(x),x=0..%plusInfinity) +d5:= integrate( exp(-x**2)*log(x)**2,x=0..%plusInfinity) +d6:= integrate( exp(-x)*log(x)**2*x**3,x=1..%plusInfinity) +d7:= integrate( exp(-x)*x**(1/3),x=1..%plusInfinity) +d8:= integrate( exp(-x)*x**2/(1-exp(-2*x)),x=0..%plusInfinity) + +@ +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- X-External-Networks: yes +-- Date: Fri, 3 Apr 92 10:58:35 -0500 +-- From: zwilling@world.std.com (Daniel Zwillinger) +-- To: axiom@watson.ibm.com +-- +-- Enclosed is my test suite of integrals in MAPLE format. +-- I would appreciate you running it under AXIOM and returning the +-- results to me via email. +-- +-- Thank you. +-- +-- ---------------------------------------------------------------------- +-- Daniel Zwillinger email: zwilling@world.std.com +-- 61 Highland Avenue phone: 617/646-8565 +-- Arlington, MA 02174 +-- Home of: Handbook of Differential Equations +-- Home of: Handbook of Integration +-- ---------------------------------------------------------------------- +-- +)clear all +)set break resume +i1 := integrate( sin(x), x) +--i2 := integrate( sqrt(tan(x)), x) +i3 := integrate( x/(x**3-1),x) +i4 := integrate( x/sin(x)**2, x) +i5 := integrate( log(x)/sqrt(x+1), x) +i6 := integrate( exp(-a*x**2), x) +i7 := integrate( x/(log(x))**3, x) +i8 := integrate( x/(sqrt(1+x)+sqrt(1-x)),x) +i9 := integrate( 1/(2+cos(x)),x) +i10:= integrate( sin(x)/x**2, x) + +d1:= integrate( 1/(2+cos(x)),x=0..4*%pi) +)set mes test off +d2:= integrate( sin(x)/x,x=%minusInfinity..%plusInfinity) +)set mes test on +d3:= integrate( x**2/(1+x**3),x=0..%plusInfinity) +d4:= integrate( exp(-x)/sqrt(x),x=0..%plusInfinity) +d5:= integrate( exp(-x**2)*log(x)**2,x=0..%plusInfinity) +d6:= integrate( exp(-x)*log(x)**2*x**3,x=1..%plusInfinity) +d7:= integrate( exp(-x)*x**(1/3),x=1..%plusInfinity) +d8:= integrate( exp(-x)*x**2/(1-exp(-2*x)),x=0..%plusInfinity) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/de2re.input.pamphlet b/src/input/de2re.input.pamphlet new file mode 100644 index 00000000..024bc4a8 --- /dev/null +++ b/src/input/de2re.input.pamphlet @@ -0,0 +1,62 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input de2re.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{bugs} +The function |LinearOrdinaryDifferentialOperator| is undefined +<<bug1>>= +dn := D()$L +-- 4 well known differential operators +exp:= dn - 1 +sincos := dn**2 + 1 +airy := dn**2 - n +hermite := dn**2 - 2*n*dn + 1 + +-- the recurrences satisfied by the coefficients of their series solutions +--recurrence(exp, 0) +--recurrence(sincos, 0) +--recurrence(airy, 0) +--recurrence(airy, 1) +--recurrence(hermite, 0) + +-- a non-trivial example from the GFUN tech. rep (Salvy & Zimmermann) +op := (335 * n**2 + 1290) * dn**2 + 1540 * n * dn + 468720 +--recurrence(op, 0) +@ +<<bugs>>= +---------------------------------- de2re.input ----------------------------- +)cl all + +P := UP(n, INT) +n := n::P + +L := LODO1 P +<<bug1>> + +@ +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +---------------------------------- de2re.input ----------------------------- +)cl all + +P := UP(n, INT) +n := n::P + +L := LODO1 P +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/decimal.input.pamphlet b/src/input/decimal.input.pamphlet new file mode 100644 index 00000000..df23be7d --- /dev/null +++ b/src/input/decimal.input.pamphlet @@ -0,0 +1,30 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input DECIMAL.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + + +-- Input generated from DecimalExpansionXmpPage +)clear all + +r := decimal(22/7) +r + decimal(6/7) +[decimal(1/i) for i in 350..354] +decimal(1/2049) +p := decimal(1/4)*x**2 + decimal(2/3)*x + decimal(4/9) +q := differentiate(p, x) +g := gcd(p, q) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/defintef.input.pamphlet b/src/input/defintef.input.pamphlet new file mode 100644 index 00000000..ad2b8449 --- /dev/null +++ b/src/input/defintef.input.pamphlet @@ -0,0 +1,45 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input defintef.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> +-- defintef.input -- modified, last version was from Aug 21 1992 +-------------------------------- defintef.input ------------------------------- + +)clear all + +-- Evans and Johnson, in their "Uses of technology in the mathematics +-- curriculum" workbook list a number of +-- "integrals that your computer can't do". +-- int(sin(x)^3/(sin(x)^3+cos(x)^3),x=0..Pi/2) is one of them. +sin(x)**3/(sin(x)**3+cos(x)**3) +integrate(%, x = 0..%pi/2, "noPole") + +x**2/(1+x**3) +integrate(%, x=0..%plusInfinity) + +exp(-x**2)*log(x)**2 +integrate(%, x=0..%plusInfinity) + +x * asin(x/(x+1)) +integrate(%, x=0..1) + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/defintrf.input.pamphlet b/src/input/defintrf.input.pamphlet new file mode 100644 index 00000000..3517cb13 --- /dev/null +++ b/src/input/defintrf.input.pamphlet @@ -0,0 +1,31 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input defintrf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)cle all +-- difficult example from Kahan: +-- most symbolic indefinite integrals for f will have a pole between 1 and 2 +-- note that f is positive on [1..2] so we expect the integral to be positive +f := (x**4 - 3*x**2 + 6)/(x**6-5*x**4+5*x**2+4) +integrate(f, x = 1..2) +numeric % +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/defs.input.pamphlet b/src/input/defs.input.pamphlet new file mode 100644 index 00000000..85b35ef3 --- /dev/null +++ b/src/input/defs.input.pamphlet @@ -0,0 +1,110 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input defs.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +The [[otherwise]] clause is not recognized either in the NAG version +or the Axiom version. +<<fib>>= +)clear all + +fib(0) == 1 +fib(1) == 1 +fib(n) == fib(n-1) + fib(n-2) otherwise +fib(10) +fib(100) +[fib(2**i) for i in 1..] + +@ +The [[when]] clause is not recognized either in the NAG version or +the Axiom version. +<<chebyshev>>= +chebyshev1: Integer -> UnivariatePolynomial(x,Fraction Integer) +chebyshev1(0) == 1 +chebyshev1(1) == x +chebyshev1(n) == 2*x* chebyshev1(n-1) - chebyshev1(n-2) when n > 1 +chebyshev1(2) +chebyshev1(7) +chebyshev2 : Integer -> UnivariatePolynomial(x,Fraction Integer) +chebyshev2 == rules + chebyshev2(0) == 1 + chebyshev2(1) == 2*x + chebyshev2(n) == 2*x* chebyshev2(n-1) - chebyshev2(n-2) when n > 1 +chebyshev2(1) +chebyshev2(4) +chebyshev2(11) + +@ +<<*>>= + +-- Input for page DefinitionsVsMappings +)clear all + +square(x) == x*x +square == x +-> x*x +factorial(0) == 1 +factorial(n) == n * fact(n - 1) when n > 0 +factorial(n) == + n = 0 => 1 + n > 0 => n * factorial(n - 1) +factorial == n +-> + n = 0 => 1 + n > 0 => n * factorial(n - 1) + +-- Input for page DefinitionsForFunctions +)clear all + +define square(x) == x*x +square(x) == x*x +square(111) +square == x +-> x*x +square(1111) +timesY(x) == x * y +timesY == x +-> x * y +timesY(2) +y := 2 +timesY(2) +y := 3 +timesY(2) + +-- Input for page RulesForVariables +)clear all + +rule x == y + z +x +rule y == z + 1 +x +z := a; y := 1; +x +a := 2/3 +x + +-- Input for page RulesVsAssignments +)clear all + +rule x == y + 1; rule y == z + 1; rule z == 7; +[x,y,z] +rule z == 7; rule y == z + 1; rule x == y + 1; [x, y, z] +rule z == 1; [x, y, z] +a := b + 1; b := c + 1; c := 7; +[a, b, c] +b := 5; [a, b, c] +c := 7; b := c + 1; a := b + 1; [a, b, c] +p := q + 1; rule q == r + 1; r := 7; [p, q, r] +r := 1; [p, q, r] + +-- Input for page RecurrenceRelations +<<fib>> +<<chebyshev>> +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/derham.input.pamphlet b/src/input/derham.input.pamphlet new file mode 100644 index 00000000..760c0de1 --- /dev/null +++ b/src/input/derham.input.pamphlet @@ -0,0 +1,55 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input DERHAM.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from DeRhamComplexXmpPage +)clear all + +coefRing := Integer +lv : List Symbol := [x,y,z] +der := DERHAM(coefRing,lv) +R := Expression coefRing +f : R := x**2*y*z-5*x**3*y**2*z**5 +g : R := z**2*y*cos(z)-7*sin(x**3*y**2)*z**2 +h : R :=x*y*z-2*x**3*y*z**2 +dx : der := generator(1) +dy : der := generator(2) +dz : der := generator(3) +[dx,dy,dz] := [generator(i)$der for i in 1..3] +alpha : der := f*dx + g*dy + h*dz +beta : der := cos(tan(x*y*z)+x*y*z)*dx + x*dy +exteriorDifferential alpha; +exteriorDifferential % +gamma := alpha * beta +exteriorDifferential(gamma) - (exteriorDifferential(alpha)*beta - alpha * exteriorDifferential(beta)) +a : BOP := operator('a) +b : BOP := operator('b) +c : BOP := operator('c) +sigma := a(x,y,z) * dx + b(x,y,z) * dy + c(x,y,z) * dz +theta := a(x,y,z) * dx * dy + b(x,y,z) * dx * dz + c(x,y,z) * dy * dz +totalDifferential(a(x,y,z))$der +exteriorDifferential sigma +exteriorDifferential theta +one : der := 1 +g1 : der := a([x,t,y,u,v,z,e]) * one +h1 : der := a([x,y,x,t,x,z,y,r,u,x]) * one +exteriorDifferential g1 +exteriorDifferential h1 +coefficient(gamma, dx*dy) +coefficient(gamma, one) +coefficient(g1,one) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/dfloat.input.pamphlet b/src/input/dfloat.input.pamphlet new file mode 100644 index 00000000..e517a13b --- /dev/null +++ b/src/input/dfloat.input.pamphlet @@ -0,0 +1,34 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input DFLOAT.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from DoubleFloatXmpPage +)clear all + +2.71828 +2.71828@DoubleFloat +2.71828 :: DoubleFloat +eApprox : DoubleFloat := 2.71828 +avg : List DoubleFloat -> DoubleFloat +avg l == + empty? l => 0 :: DoubleFloat + reduce(_+,l) / #l +avg [] +avg [3.4,9.7,-6.8] +cos(3.1415926)$DoubleFloat +cos(3.1415926 :: DoubleFloat) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/dhtri.input.pamphlet b/src/input/dhtri.input.pamphlet new file mode 100644 index 00000000..a107879d --- /dev/null +++ b/src/input/dhtri.input.pamphlet @@ -0,0 +1,68 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input dhtri.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- Create Affine transformations (DH matrices) that transform +-- a given triangle into another given triangle + +-- tri2tri(t1, t2) returns a DHMATRIX which transforms t1 to t2, +-- where t1 and t2 are the vertices of two triangles in 3-space. +tri2tri(t1: List Point DoubleFloat, t2: List Point DoubleFloat): DHMATRIX(DoubleFloat) == + n1 := triangleNormal(t1) + n2 := triangleNormal(t2) + tet2tet(concat(t1, n1), concat(t2, n2)) + +-- tet2tet(t1, t2) returns a DHMATRIX which transforms t1 to t2, +-- where t1 and t2 are the vertices of two tetrahedrons in 3-space. +tet2tet(t1: List Point DoubleFloat, t2: List Point DoubleFloat): DHMATRIX(DoubleFloat) == + m1 := makeColumnMatrix t1 + m2 := makeColumnMatrix t2 + m2 * inverse(m1) + +-- put the vertices of a tetrahedron into matrix form +makeColumnMatrix(t) == + m := new(4,4,0)$DHMATRIX(DoubleFloat) + for x in t for i in 1..repeat + for j in 1..3 repeat + m(j,i) := x.j + m(4,i) := 1 + m + +-- return a vector normal to the given triangle, whose length +-- is the square root of the area of the triangle +triangleNormal(t) == + a := triangleArea t + p1 := t.2 - t.1 + p2 := t.3 - t.2 + c := cross(p1, p2) + len := length(c) + len = 0 => error "degenerate triangle!" + c := (1/len)*c + t.1 + sqrt(a) * c + +-- compute the are of a triangle using Heron's formula +triangleArea t == + a := length(t.2 - t.1) + b := length(t.3 - t.2) + c := length(t.1 - t.3) + s := (a+b+c)/2 + sqrt(s*(s-a)*(s-b)*(s-c)) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/divisor.input.pamphlet b/src/input/divisor.input.pamphlet new file mode 100644 index 00000000..fee4e32c --- /dev/null +++ b/src/input/divisor.input.pamphlet @@ -0,0 +1,49 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input divisor.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)cl all +P0 := UP(x, FRAC INT) +P1 := UP(y, FRAC P0) +-- curve given by y^2 = x^8 + 1 (genus = 3) +R := RADFF(FRAC INT, P0, P1, 1 + x**8, 2) +genus()$R +fd := FDIV(FRAC INT, P0, P1, R) +-- let P be the place (x = 0, y = 1), +-- Q be the place (x = 0, y = -1), +-- and d be the divisor P - Q +d1 := divisor(0, 1)$fd +d2 := divisor(0, -1)$fd +d := d1 - d2 +d := reduce d +-- it turns out that d has order 4: +generator d +generator reduce(2 * d) +generator reduce(3 * d) +generator reduce(4 * d) +-- let's verify the RiemannRoch theorem: +lSpaceBasis d1 +lSpaceBasis(2 * d1) +lSpaceBasis(3 * d1) +lSpaceBasis(4 * d1) +lSpaceBasis(5 * d1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/dmp.input.pamphlet b/src/input/dmp.input.pamphlet new file mode 100644 index 00000000..aa20b50f --- /dev/null +++ b/src/input/dmp.input.pamphlet @@ -0,0 +1,31 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input DMP.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + + +-- Input generated from DistributedMultivariatePolynomialXmpPage +)clear all + +(d1,d2,d3) : DMP([z,y,x],FRAC INT) +d1 := -4*z + 4*y**2*x + 16*x**2 + 1 +d2 := 2*z*y**2 + 4*x + 1 +d3 := 2*z*x**2 - 2*y**2 - x +groebner [d1,d2,d3] +(n1,n2,n3) : HDMP([z,y,x],FRAC INT) +(n1,n2,n3) := (d1,d2,d3) +groebner [n1,n2,n3] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/dpol.input.pamphlet b/src/input/dpol.input.pamphlet new file mode 100644 index 00000000..78ae0ca9 --- /dev/null +++ b/src/input/dpol.input.pamphlet @@ -0,0 +1,71 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input dpol.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)clear all +odvar:=ODVAR Symbol +-- here are the first 5 derivatives of w +-- the i-th derivative of w is printed as w subscript 5 +[makeVariable('w,i)$odvar for i in 5..0 by -1] +-- these are now algebraic indeterminates, ranked in an orderly way +-- in increasing order: +sort % +-- we now make a general differential polynomial ring +-- instead of ODVAR, one can also use SDVAR for sequential ordering +dpol:=DSMP (FRAC INT, Symbol, odvar) +-- instead of using makeVariable, it is easier to +-- think of a differential variable w as a map, where +-- w.n is n-th derivative of w as an algebraic indeterminate +w := makeVariable('w)$dpol +-- create another one called z, which is higher in rank than w +-- since we are ordering by Symbol +z := makeVariable('z)$dpol +-- now define some differential polynomial +(f,b):dpol +f:=w.4::dpol - w.1 * w.1 * z.3 +b:=(z.1::dpol)**3 * (z.2)**2 - w.2 +-- compute the leading derivative appearing in b +lb:=leader b +-- the separant is the partial derivative of b with respect to its leader +sb:=separant b +-- of course you can differentiate these differential polynomials +-- and try to reduce f modulo the differential ideal generated by b +-- first eliminate z.3 using the derivative of b +bprime:= differentiate b +-- find its leader +lbprime:= leader bprime +-- differentiate f partially with respect to lbprime +pbf:=differentiate (f, lbprime) +-- to obtain the partial remainder of f with respect to b +ftilde:=sb * f- pbf * bprime +-- note high powers of lb still appears in ftilde +-- the initial is the leading coefficient when b is written +-- as a univariate polynomial in its leader +ib:=initial b +-- compute the leading coefficient of ftilde +-- as a polynomial in its leader +lcef:=leadingCoefficient univariate(ftilde, lb) +-- now to continue eliminating the high powers of lb appearing in ftilde: +-- to obtain the remainder of f modulo b and its derivatives + +f0:=ib * ftilde - lcef * b * lb +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/draw.input.pamphlet b/src/input/draw.input.pamphlet new file mode 100644 index 00000000..f95e2325 --- /dev/null +++ b/src/input/draw.input.pamphlet @@ -0,0 +1,79 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input draw.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> +)clear all + + +-- Two dimensional function plots + +draw(sin(11*x),x = 0..2*%pi) +draw(sin(11*x),x = 0..2*%pi,adaptive == false,title == "Non-adaptive plot") +draw(sin(11*x),x = 0..2*%pi,toScale == true,title == "Drawn to scale") +draw(sin(11*x),x = 0..2*%pi,coordinates == polar,title == "Polar plot") + +draw(tan x,x = -6..6,title == "Clipping on") +draw(tan x,x = -6..6,clip == false,title == "Clipping off") + +-- Parametric plane curves + +draw(curve(9*sin(3*t/4),8*sin(t)),t = -4*%pi..4*%pi,_ + toScale == true,title == "Lissajous curve") +draw(curve(sin(5*t),t),t = 0..2*%pi,title == "Parametric curve") +draw(curve(sin(5*t),t),t = 0..2*%pi,_ + coordinates == polar,title == "Parametric polar curve") +draw(curve(t,2),t = -3..3,coordinates == parabolic,title == "Parabolic plot") + +-- Parametric space curves + +draw(curve(sin(t)*cos(3*t/5),cos(t)*cos(3*t/5),cos(t)*sin(3*t/5)),_ + t = 0..15*%pi,title == "Parametric curve") +draw(curve(sin(t)*cos(3*t/5),cos(t)*cos(3*t/5),cos(t)*sin(3*t/5)),_ + t = 0..15*%pi,tubeRadius == .15,title == "Tube around curve") +draw(curve(4,t,t),t = -9..9,coordinates == cylindrical,title == "Spiral") +draw(curve(1,t/7,t/5),t = -70*%pi..70*%pi,coordinates == spherical,_ + title == "Gnarly curve on sphere") + +-- Three dimensional function plots + +draw(cos(x*y),x = -3..3,y = -3..3) + +colorFunction1(x:DFLOAT,y:DFLOAT):DFLOAT == x +draw(cos(x*y),x = -3..3,y = -3..3,colorFunction == colorFunction1) + +colorFunction2(x:DFLOAT,y:DFLOAT):DFLOAT == x**2 + y**2 +draw(cos(x*y),x = -3..3,y = -3..3,colorFunction == colorFunction2) + +colorFunction3(x:DFLOAT,y:DFLOAT,z:DFLOAT):DFLOAT == -z +draw(cos(x*y),x = -3..3,y = -3..3,colorFunction == colorFunction3) + +draw(1,u = 0..2*%pi,v = 0..%pi,coordinates == spherical,title == "Sphere") +draw(1,u = 0..2*%pi,v = 0..%pi,coordinates == spherical,_ + colorFunction == colorFunction2,title == "Sphere") + +draw(1,u = -%pi/2..%pi/2,v = 0..2*%pi,coordinates == oblateSpheroidal(1$DFLOAT),_ + title == "Oblate spheroidal coordinates") + +-- Parametric surfaces + +draw(surface(5*sin(u)*cos(v),4*sin(u)*sin(v),3*cos(u)),u = 0..%pi,v = 0..2*%pi,_ + title == "Which came first?") +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/draw2dSF.data.pamphlet b/src/input/draw2dSF.data.pamphlet new file mode 100644 index 00000000..6ce55cf4 --- /dev/null +++ b/src/input/draw2dSF.data.pamphlet @@ -0,0 +1,1042 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input draw2dSF.data} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + -2.4E-07 -0.00131248 +-2.395E-07 -0.00145311 + -2.39E-07 -0.000609357 +-2.385E-07 -0.000671857 + -2.38E-07 -0.000968732 +-2.375E-07 -0.00151561 + -2.37E-07 -0.00124217 +-2.365E-07 -0.00167186 + -2.36E-07 -0.000726545 +-2.355E-07 -0.00175779 + -2.35E-07 -0.00214842 +-2.345E-07 -0.00077342 + -2.34E-07 0.000250018 +-2.335E-07 -0.000468732 + -2.33E-07 -0.00171092 +-2.325E-07 -0.00124217 + -2.32E-07 -0.00105467 +-2.315E-07 -0.00181248 + -2.31E-07 -0.00193748 +-2.305E-07 -3.12324E-05 + -2.3E-07 -0.000406232 +-2.295E-07 -0.00157811 + -2.29E-07 -0.00120311 +-2.285E-07 -0.000734357 + -2.28E-07 -0.00136717 +-2.275E-07 -0.00166404 + -2.27E-07 -0.00123436 +-2.265E-07 -0.00203904 + -2.26E-07 -0.00124998 +-2.255E-07 -0.00139061 + -2.25E-07 -0.00191404 +-2.245E-07 -0.000921857 + -2.24E-07 -0.000414045 +-2.235E-07 -0.00092967 + -2.23E-07 -0.00146873 +-2.225E-07 -0.00174998 + -2.22E-07 -0.000937482 +-2.215E-07 -0.00124217 + -2.21E-07 -0.00067967 +-2.205E-07 -0.00144529 + -2.2E-07 -0.00122654 +-2.195E-07 -0.00184373 + -2.19E-07 -0.00181248 +-2.185E-07 -0.000296857 + -2.18E-07 -0.00116404 +-2.175E-07 -0.000914045 + -2.17E-07 -0.00021092 +-2.165E-07 -0.000718732 + -2.16E-07 -0.00208592 +-2.155E-07 -0.00140623 + -2.15E-07 -0.000515607 +-2.145E-07 -0.00046092 + -2.14E-07 -0.00161717 +-2.135E-07 -0.00181248 + -2.13E-07 -0.000976545 +-2.125E-07 -0.00096092 + -2.12E-07 -0.000914045 +-2.115E-07 -0.000859357 + -2.11E-07 -0.00120311 +-2.105E-07 -0.00134373 + -2.1E-07 -0.00117186 +-2.095E-07 -0.00126561 + -2.09E-07 -0.000781232 +-2.085E-07 -0.00235154 + -2.08E-07 -0.00119529 +-2.075E-07 -0.00159373 + -2.07E-07 0.000203143 +-2.065E-07 -0.00138279 + -2.06E-07 -0.00116404 +-2.055E-07 -0.000945295 + -2.05E-07 0.000531268 +-2.045E-07 -0.00089842 + -2.04E-07 -0.000882795 +-2.035E-07 -0.000593732 + -2.03E-07 -0.00077342 +-2.025E-07 -0.000843732 + -2.02E-07 -0.00089842 +-2.015E-07 -7.02949E-05 + -2.01E-07 -0.00042967 +-2.005E-07 -0.00064842 + -2E-07 0.00019533 +-1.995E-07 -0.00049217 + -1.99E-07 -0.00113279 +-1.985E-07 -0.00052342 + -1.98E-07 -0.000749982 +-1.975E-07 -0.000570295 + -1.97E-07 -0.000156232 +-1.965E-07 -0.000906232 + -1.96E-07 1.76E-08 +-1.955E-07 7.81426E-05 + -1.95E-07 0.000171893 +-1.945E-07 -0.000687482 + -1.94E-07 -0.00103123 +-1.935E-07 -0.000124982 + -1.93E-07 -0.000531232 +-1.925E-07 7.81426E-05 + -1.92E-07 -0.00080467 +-1.915E-07 -7.02949E-05 + -1.91E-07 0.000421893 +-1.905E-07 -0.00086717 + -1.9E-07 0.00044533 +-1.895E-07 -0.000320295 + -1.89E-07 -0.00033592 +-1.885E-07 3.90801E-05 + -1.88E-07 -7.02949E-05 +-1.875E-07 -0.00117967 + -1.87E-07 -0.000851545 +-1.865E-07 0.000875017 + -1.86E-07 -0.000187482 +-1.855E-07 -0.00033592 + -1.85E-07 0.00078908 +-1.845E-07 -0.000781232 + -1.84E-07 1.76E-08 +-1.835E-07 -0.000374982 + -1.83E-07 -0.00030467 +-1.825E-07 0.000429705 + -1.82E-07 -0.000695295 +-1.815E-07 -0.000109357 + -1.81E-07 0.00082033 +-1.805E-07 -0.00036717 + -1.8E-07 0.00133595 +-1.795E-07 0.000398455 + -1.79E-07 0.000585955 +-1.785E-07 0.00121877 + -1.78E-07 -0.00083592 +-1.775E-07 0.000523455 + -1.77E-07 0.00041408 +-1.765E-07 -0.000359357 + -1.76E-07 -6.24824E-05 +-1.755E-07 0.00101564 + -1.75E-07 0.000359393 +-1.745E-07 0.000710955 + -1.74E-07 0.00103127 +-1.735E-07 0.00044533 + -1.73E-07 0.000992205 +-1.725E-07 -9.37324E-05 + -1.72E-07 0.000953142 +-1.715E-07 0.000812517 + -1.71E-07 -0.00036717 +-1.705E-07 0.000187518 + -1.7E-07 0.000593768 +-1.695E-07 0.000906267 + -1.69E-07 0.00100783 +-1.685E-07 0.00157033 + -1.68E-07 0.000500018 +-1.675E-07 0.000906267 + -1.67E-07 -7.02949E-05 +-1.665E-07 0.000640643 + -1.66E-07 4.68926E-05 +-1.655E-07 0.000796892 + -1.65E-07 0.000734393 +-1.645E-07 0.000367205 + -1.64E-07 -7.81074E-05 +-1.635E-07 -1.56074E-05 + -1.63E-07 0.0016797 +-1.625E-07 0.00069533 + -1.62E-07 0.000750018 +-1.615E-07 0.000750018 + -1.61E-07 0.00121095 +-1.605E-07 0.000359393 + -1.6E-07 -3.90449E-05 +-1.595E-07 0.00010158 + -1.59E-07 0.000343768 +-1.585E-07 0.000460955 + -1.58E-07 0.000843767 +-1.575E-07 0.00160158 + -1.57E-07 0.000890642 +-1.565E-07 0.00146095 + -1.56E-07 0.000187518 +-1.555E-07 0.000312518 + -1.55E-07 0.00132033 +-1.545E-07 0.000453143 + -1.54E-07 0.00128908 +-1.535E-07 7.81426E-05 + -1.53E-07 0.00028908 +-1.525E-07 0.00038283 + -1.52E-07 0.00163283 +-1.515E-07 0.000523455 + -1.51E-07 0.000898455 +-1.505E-07 0.000718768 + -1.5E-07 3.12676E-05 +-1.495E-07 0.000679705 + -1.49E-07 0.0012422 +-1.485E-07 0.00103908 + -1.48E-07 0.00060158 +-1.475E-07 0.0014922 + -1.47E-07 0.00200002 +-1.465E-07 0.0013047 + -1.46E-07 0.00156252 +-1.455E-07 0.00102345 + -1.45E-07 0.00164064 +-1.445E-07 0.000554705 + -1.44E-07 0.000890642 +-1.435E-07 0.000890642 + -1.43E-07 0.00208595 +-1.425E-07 0.00069533 + -1.42E-07 0.0016172 +-1.415E-07 0.00110158 + -1.41E-07 0.00142189 +-1.405E-07 0.00185158 + -1.4E-07 0.00141408 +-1.395E-07 0.00206252 + -1.39E-07 0.00171095 +-1.385E-07 0.000929705 + -1.38E-07 0.00189845 +-1.375E-07 0.00152345 + -1.37E-07 0.00038283 +-1.365E-07 0.00113283 + -1.36E-07 0.00208595 +-1.355E-07 0.0014297 + -1.35E-07 0.00217189 +-1.345E-07 0.00215627 + -1.34E-07 0.00195314 +-1.335E-07 0.00160158 + -1.33E-07 0.00063283 +-1.325E-07 0.00135158 + -1.32E-07 0.00181252 +-1.315E-07 0.00238283 + -1.31E-07 0.0028047 +-1.305E-07 0.00254689 + -1.3E-07 0.00097658 +-1.295E-07 0.00147658 + -1.29E-07 0.00269533 +-1.285E-07 0.00232033 + -1.28E-07 0.00196095 +-1.275E-07 0.00177345 + -1.27E-07 0.0026172 +-1.265E-07 0.0022422 + -1.26E-07 0.0014922 +-1.255E-07 0.00291408 + -1.25E-07 0.00220314 +-1.245E-07 0.00185939 + -1.24E-07 0.00214845 +-1.235E-07 0.0024922 + -1.23E-07 0.00171095 +-1.225E-07 0.00293752 + -1.22E-07 0.00254689 +-1.215E-07 0.00321095 + -1.21E-07 0.00318752 +-1.205E-07 0.00271877 + -1.2E-07 0.00296877 +-1.195E-07 0.00353127 + -1.19E-07 0.00203908 +-1.185E-07 0.00291408 + -1.18E-07 0.0021797 +-1.175E-07 0.0031797 + -1.17E-07 0.0030547 +-1.165E-07 0.00217189 + -1.16E-07 0.00253127 +-1.155E-07 0.00327345 + -1.15E-07 0.0029922 +-1.145E-07 0.00353127 + -1.14E-07 0.00388283 +-1.135E-07 0.00303127 + -1.13E-07 0.00318752 +-1.125E-07 0.00289845 + -1.12E-07 0.00357814 +-1.115E-07 0.00215627 + -1.11E-07 0.00243752 +-1.105E-07 0.00252345 + -1.1E-07 0.00296095 +-1.095E-07 0.00378908 + -1.09E-07 0.00302345 +-1.085E-07 0.00400783 + -1.08E-07 0.0035547 +-1.075E-07 0.00247658 + -1.07E-07 0.00225002 +-1.065E-07 0.00319533 + -1.06E-07 0.00435939 +-1.055E-07 0.00253127 + -1.05E-07 0.00391408 +-1.045E-07 0.00300002 + -1.04E-07 0.00326564 +-1.035E-07 0.00470314 + -1.03E-07 0.00316408 +-1.025E-07 0.00346877 + -1.02E-07 0.00428127 +-1.015E-07 0.00376564 + -1.01E-07 0.0041797 +-1.005E-07 0.00289064 + -1E-07 0.00328908 + -9.95E-08 0.00354689 + -9.9E-08 0.0041172 + -9.85E-08 0.00240627 + -9.8E-08 0.00435939 + -9.75E-08 0.00403127 + -9.7E-08 0.00453908 + -9.65E-08 0.00403127 + -9.6E-08 0.00457033 + -9.55E-08 0.00416408 + -9.5E-08 0.00332814 + -9.45E-08 0.00367189 + -9.4E-08 0.00403908 + -9.35E-08 0.00371095 + -9.3E-08 0.00426564 + -9.25E-08 0.00442189 + -9.2E-08 0.00441408 + -9.15E-08 0.00359377 + -9.1E-08 0.00396095 + -9.05E-08 0.0026797 + -9E-08 0.00473439 + -8.95E-08 0.00453127 + -8.9E-08 0.00323439 + -8.85E-08 0.00406252 + -8.8E-08 0.0047422 + -8.75E-08 0.0033047 + -8.7E-08 0.00473439 + -8.65E-08 0.00560158 + -8.6E-08 0.00414064 + -8.55E-08 0.00445314 + -8.5E-08 0.00408595 + -8.45E-08 0.00476564 + -8.4E-08 0.00385939 + -8.35E-08 0.00585158 + -8.3E-08 0.00444533 + -8.25E-08 0.0051172 + -8.2E-08 0.00632033 + -8.15E-08 0.00590627 + -8.1E-08 0.00733595 + -8.05E-08 0.00625783 + -8E-08 0.00516408 + -7.95E-08 0.00610158 + -7.9E-08 0.00650783 + -7.85E-08 0.0056172 + -7.8E-08 0.00653127 + -7.75E-08 0.0053047 + -7.7E-08 0.00707814 + -7.65E-08 0.00648439 + -7.6E-08 0.00800783 + -7.55E-08 0.00733595 + -7.5E-08 0.00678908 + -7.45E-08 0.0068672 + -7.4E-08 0.00684377 + -7.35E-08 0.00729689 + -7.3E-08 0.00697658 + -7.25E-08 0.0070547 + -7.2E-08 0.00640627 + -7.15E-08 0.00826564 + -7.1E-08 0.00841408 + -7.05E-08 0.00987502 + -7E-08 0.00900002 + -6.95E-08 0.00850002 + -6.9E-08 0.0078047 + -6.85E-08 0.0084297 + -6.8E-08 0.0095547 + -6.75E-08 0.00889064 + -6.7E-08 0.00870314 + -6.65E-08 0.00908595 + -6.6E-08 0.00975783 + -6.55E-08 0.00946877 + -6.5E-08 0.0106875 + -6.45E-08 0.0101641 + -6.4E-08 0.0102969 + -6.35E-08 0.0108125 + -6.3E-08 0.0116406 + -6.25E-08 0.0087422 + -6.2E-08 0.0105 + -6.15E-08 0.0106485 + -6.1E-08 0.0118125 + -6.05E-08 0.011586 + -6E-08 0.0118047 + -5.95E-08 0.0133438 + -5.9E-08 0.0128281 + -5.85E-08 0.012961 + -5.8E-08 0.0143828 + -5.75E-08 0.0131485 + -5.7E-08 0.0129375 + -5.65E-08 0.0150703 + -5.6E-08 0.0145547 + -5.55E-08 0.0140156 + -5.5E-08 0.0155938 + -5.45E-08 0.0142735 + -5.4E-08 0.0143985 + -5.35E-08 0.0164766 + -5.3E-08 0.0161172 + -5.25E-08 0.0163594 + -5.2E-08 0.0166094 + -5.15E-08 0.0175781 + -5.1E-08 0.0165 + -5.05E-08 0.0179766 + -5E-08 0.0196563 + -4.95E-08 0.0185469 + -4.9E-08 0.0197969 + -4.85E-08 0.0188594 + -4.8E-08 0.0200938 + -4.75E-08 0.0206406 + -4.7E-08 0.0210938 + -4.65E-08 0.0207578 + -4.6E-08 0.022211 + -4.55E-08 0.0219063 + -4.5E-08 0.0223516 + -4.45E-08 0.0234297 + -4.4E-08 0.0240547 + -4.35E-08 0.0238203 + -4.3E-08 0.0252344 + -4.25E-08 0.0265156 + -4.2E-08 0.02575 + -4.15E-08 0.0259063 + -4.1E-08 0.0269766 + -4.05E-08 0.0269375 + -4E-08 0.0280625 + -3.95E-08 0.0287266 + -3.9E-08 0.0296172 + -3.85E-08 0.0304141 + -3.8E-08 0.0318438 + -3.75E-08 0.0311719 + -3.7E-08 0.0322422 + -3.65E-08 0.033086 + -3.6E-08 0.0334063 + -3.55E-08 0.0340313 + -3.5E-08 0.0354063 + -3.45E-08 0.0362031 + -3.4E-08 0.0367344 + -3.35E-08 0.0381875 + -3.3E-08 0.038875 + -3.25E-08 0.0402734 + -3.2E-08 0.0414453 + -3.15E-08 0.0425078 + -3.1E-08 0.0426875 + -3.05E-08 0.0440859 + -3E-08 0.0447188 + -2.95E-08 0.0455078 + -2.9E-08 0.0476016 + -2.85E-08 0.0486797 + -2.8E-08 0.0495 + -2.75E-08 0.0506875 + -2.7E-08 0.0539531 + -2.65E-08 0.0525938 + -2.6E-08 0.05425 + -2.55E-08 0.0565078 + -2.5E-08 0.0573281 + -2.45E-08 0.0581406 + -2.4E-08 0.0601484 + -2.35E-08 0.0616641 + -2.3E-08 0.0639531 + -2.25E-08 0.0654453 + -2.2E-08 0.0677578 + -2.15E-08 0.0685156 + -2.1E-08 0.0703828 + -2.05E-08 0.0719922 + -2E-08 0.0737578 + -1.95E-08 0.0749609 + -1.9E-08 0.0771875 + -1.85E-08 0.0790078 + -1.8E-08 0.0811016 + -1.75E-08 0.0837266 + -1.7E-08 0.0858594 + -1.65E-08 0.0877031 + -1.6E-08 0.0900156 + -1.55E-08 0.0916094 + -1.5E-08 0.0946875 + -1.45E-08 0.0956406 + -1.4E-08 0.0981797 + -1.35E-08 0.100422 + -1.3E-08 0.103219 + -1.25E-08 0.106805 + -1.2E-08 0.108523 + -1.15E-08 0.111656 + -1.1E-08 0.114273 + -1.05E-08 0.116617 + -1E-08 0.119602 + -9.5E-09 0.122133 + -9E-09 0.124555 + -8.5E-09 0.127906 + -8E-09 0.130547 + -7.5E-09 0.133633 + -7E-09 0.137133 + -6.5E-09 0.140391 + -6E-09 0.143367 + -5.5E-09 0.146648 + -5E-09 0.148992 + -4.5E-09 0.152203 + -4E-09 0.155273 + -3.5E-09 0.158633 + -3E-09 0.161578 + -2.5E-09 0.164703 + -2E-09 0.168047 + -1.5E-09 0.171469 + -1E-09 0.175586 + -5E-10 0.179055 +3.63959E-23 0.182453 + 5E-10 0.18543 + 1E-09 0.189086 + 1.5E-09 0.191875 + 2E-09 0.195477 + 2.5E-09 0.198781 + 3E-09 0.202398 + 3.5E-09 0.205734 + 4E-09 0.209359 + 4.5E-09 0.212961 + 5E-09 0.215805 + 5.5E-09 0.219164 + 6E-09 0.22232 + 6.5E-09 0.225641 + 7E-09 0.228672 + 7.5E-09 0.23243 + 8E-09 0.235164 + 8.5E-09 0.238039 + 9E-09 0.241383 + 9.5E-09 0.244727 + 1E-08 0.247617 + 1.05E-08 0.250633 + 1.1E-08 0.253758 + 1.15E-08 0.256984 + 1.2E-08 0.259141 + 1.25E-08 0.262078 + 1.3E-08 0.265367 + 1.35E-08 0.267242 + 1.4E-08 0.269383 + 1.45E-08 0.272156 + 1.5E-08 0.274086 + 1.55E-08 0.277016 + 1.6E-08 0.278531 + 1.65E-08 0.280727 + 1.7E-08 0.283562 + 1.75E-08 0.284047 + 1.8E-08 0.286289 + 1.85E-08 0.287523 + 1.9E-08 0.289078 + 1.95E-08 0.291039 + 2E-08 0.2915 + 2.05E-08 0.29325 + 2.1E-08 0.293508 + 2.15E-08 0.295195 + 2.2E-08 0.296867 + 2.25E-08 0.296773 + 2.3E-08 0.296648 + 2.35E-08 0.296789 + 2.4E-08 0.297508 + 2.45E-08 0.297664 + 2.5E-08 0.298359 + 2.55E-08 0.298641 + 2.6E-08 0.29793 + 2.65E-08 0.296852 + 2.7E-08 0.297273 + 2.75E-08 0.296898 + 2.8E-08 0.295258 + 2.85E-08 0.295398 + 2.9E-08 0.293492 + 2.95E-08 0.292914 + 3E-08 0.291711 + 3.05E-08 0.289727 + 3.1E-08 0.289117 + 3.15E-08 0.286852 + 3.2E-08 0.285711 + 3.25E-08 0.28357 + 3.3E-08 0.282 + 3.35E-08 0.279172 + 3.4E-08 0.278516 + 3.45E-08 0.276 + 3.5E-08 0.272414 + 3.55E-08 0.270641 + 3.6E-08 0.267773 + 3.65E-08 0.265148 + 3.7E-08 0.262961 + 3.75E-08 0.260445 + 3.8E-08 0.256016 + 3.85E-08 0.253523 + 3.9E-08 0.250234 + 3.95E-08 0.247047 + 4E-08 0.243266 + 4.05E-08 0.239602 + 4.1E-08 0.235469 + 4.15E-08 0.233078 + 4.2E-08 0.230961 + 4.25E-08 0.227797 + 4.3E-08 0.222062 + 4.35E-08 0.219891 + 4.4E-08 0.217766 + 4.45E-08 0.211242 + 4.5E-08 0.208766 + 4.55E-08 0.203891 + 4.6E-08 0.201742 + 4.65E-08 0.198883 + 4.7E-08 0.193242 + 4.75E-08 0.189906 + 4.8E-08 0.185273 + 4.85E-08 0.184773 + 4.9E-08 0.181344 + 4.95E-08 0.175828 + 5E-08 0.173594 + 5.05E-08 0.169437 + 5.1E-08 0.164836 + 5.15E-08 0.162859 + 5.2E-08 0.158445 + 5.25E-08 0.156969 + 5.3E-08 0.153102 + 5.35E-08 0.147469 + 5.4E-08 0.145375 + 5.45E-08 0.145 + 5.5E-08 0.140016 + 5.55E-08 0.138375 + 5.6E-08 0.134617 + 5.65E-08 0.133 + 5.7E-08 0.128992 + 5.75E-08 0.127 + 5.8E-08 0.12493 + 5.85E-08 0.121516 + 5.9E-08 0.119289 + 5.95E-08 0.117695 + 6E-08 0.115375 + 6.05E-08 0.112688 + 6.1E-08 0.109898 + 6.15E-08 0.10793 + 6.2E-08 0.105633 + 6.25E-08 0.102891 + 6.3E-08 0.101523 + 6.35E-08 0.0995391 + 6.4E-08 0.0973828 + 6.45E-08 0.0974531 + 6.5E-08 0.0942969 + 6.55E-08 0.0947891 + 6.6E-08 0.0924609 + 6.65E-08 0.0900625 + 6.7E-08 0.0894766 + 6.75E-08 0.0877109 + 6.8E-08 0.0852813 + 6.85E-08 0.0844766 + 6.9E-08 0.0838359 + 6.95E-08 0.0830547 + 7E-08 0.0823672 + 7.05E-08 0.0814453 + 7.1E-08 0.0801641 + 7.15E-08 0.0793906 + 7.2E-08 0.0774688 + 7.25E-08 0.0774766 + 7.3E-08 0.0764922 + 7.35E-08 0.0749922 + 7.4E-08 0.0745078 + 7.45E-08 0.0747656 + 7.5E-08 0.0740625 + 7.55E-08 0.0742109 + 7.6E-08 0.0723672 + 7.65E-08 0.0724141 + 7.7E-08 0.0713672 + 7.75E-08 0.0709688 + 7.8E-08 0.0688281 + 7.85E-08 0.0690625 + 7.9E-08 0.0691172 + 7.95E-08 0.0678594 + 8E-08 0.0683047 + 8.05E-08 0.0673672 + 8.1E-08 0.0672422 + 8.15E-08 0.0664609 + 8.2E-08 0.0669844 + 8.25E-08 0.0654375 + 8.3E-08 0.0649688 + 8.35E-08 0.0644375 + 8.4E-08 0.0645469 + 8.45E-08 0.0646875 + 8.5E-08 0.0638125 + 8.55E-08 0.0629219 + 8.6E-08 0.0632109 + 8.65E-08 0.0619922 + 8.7E-08 0.0632344 + 8.75E-08 0.0623125 + 8.8E-08 0.0608516 + 8.85E-08 0.0614297 + 8.9E-08 0.0597422 + 8.95E-08 0.0603828 + 9E-08 0.0592422 + 9.05E-08 0.0593672 + 9.1E-08 0.059125 + 9.15E-08 0.058125 + 9.2E-08 0.0585313 + 9.25E-08 0.0589141 + 9.3E-08 0.0565547 + 9.35E-08 0.0565234 + 9.4E-08 0.0561094 + 9.45E-08 0.0554688 + 9.5E-08 0.0552344 + 9.55E-08 0.0533125 + 9.6E-08 0.055 + 9.65E-08 0.054625 + 9.7E-08 0.0537578 + 9.75E-08 0.053 + 9.8E-08 0.0532188 + 9.85E-08 0.0532891 + 9.9E-08 0.0524375 + 9.95E-08 0.0532109 + 1E-07 0.0511563 + 1.005E-07 0.0501172 + 1.01E-07 0.0491172 + 1.015E-07 0.0502266 + 1.02E-07 0.0482266 + 1.025E-07 0.0484766 + 1.03E-07 0.0477734 + 1.035E-07 0.0484922 + 1.04E-07 0.0476719 + 1.045E-07 0.04725 + 1.05E-07 0.0462344 + 1.055E-07 0.0455391 + 1.06E-07 0.0445625 + 1.065E-07 0.0454219 + 1.07E-07 0.0449219 + 1.075E-07 0.04475 + 1.08E-07 0.0447031 + 1.085E-07 0.0437109 + 1.09E-07 0.0428125 + 1.095E-07 0.0430234 + 1.1E-07 0.0428281 + 1.105E-07 0.0419063 + 1.11E-07 0.0410469 + 1.115E-07 0.0416797 + 1.12E-07 0.0413672 + 1.125E-07 0.0408516 + 1.13E-07 0.0406328 + 1.135E-07 0.0401953 + 1.14E-07 0.0399531 + 1.145E-07 0.0395156 + 1.15E-07 0.0392813 + 1.155E-07 0.0401563 + 1.16E-07 0.0386094 + 1.165E-07 0.0389297 + 1.17E-07 0.0379219 + 1.175E-07 0.0376172 + 1.18E-07 0.0386016 + 1.185E-07 0.0377188 + 1.19E-07 0.0370781 + 1.195E-07 0.0363985 + 1.2E-07 0.0381953 + 1.205E-07 0.037711 + 1.21E-07 0.0366172 + 1.215E-07 0.0369688 + 1.22E-07 0.0377969 + 1.225E-07 0.0367188 + 1.23E-07 0.0369688 + 1.235E-07 0.0369297 + 1.24E-07 0.0367188 + 1.245E-07 0.0362735 + 1.25E-07 0.0364688 + 1.255E-07 0.0368438 + 1.26E-07 0.0357031 + 1.265E-07 0.0365938 + 1.27E-07 0.0355703 + 1.275E-07 0.0355235 + 1.28E-07 0.0346641 + 1.285E-07 0.0352266 + 1.29E-07 0.0374531 + 1.295E-07 0.0356563 + 1.3E-07 0.035875 + 1.305E-07 0.0351406 + 1.31E-07 0.0351016 + 1.315E-07 0.0352031 + 1.32E-07 0.0354141 + 1.325E-07 0.0354141 + 1.33E-07 0.0353047 + 1.335E-07 0.034961 + 1.34E-07 0.0346094 + 1.345E-07 0.0358281 + 1.35E-07 0.0350625 + 1.355E-07 0.0357344 + 1.36E-07 0.0358828 + 1.365E-07 0.0346406 + 1.37E-07 0.0350391 + 1.375E-07 0.0361094 + 1.38E-07 0.0337578 + 1.385E-07 0.0343594 + 1.39E-07 0.0340391 + 1.395E-07 0.0340235 + 1.4E-07 0.0350781 + 1.405E-07 0.0349453 + 1.41E-07 0.0347578 + 1.415E-07 0.0349375 + 1.42E-07 0.0345313 + 1.425E-07 0.0350078 + 1.43E-07 0.0338828 + 1.435E-07 0.0328125 + 1.44E-07 0.0345703 + 1.445E-07 0.0340235 + 1.45E-07 0.0339141 + 1.455E-07 0.0339141 + 1.46E-07 0.0338438 + 1.465E-07 0.0334688 + 1.47E-07 0.0341719 + 1.475E-07 0.0329063 + 1.48E-07 0.0328828 + 1.485E-07 0.0329688 + 1.49E-07 0.0329922 + 1.495E-07 0.0329531 + 1.5E-07 0.032211 + 1.505E-07 0.0329141 + 1.51E-07 0.0320547 + 1.515E-07 0.0331719 + 1.52E-07 0.0334766 + 1.525E-07 0.0325078 + 1.53E-07 0.0326094 + 1.535E-07 0.0315703 + 1.54E-07 0.0319531 + 1.545E-07 0.0311563 + 1.55E-07 0.0308281 + 1.555E-07 0.0319141 + 1.56E-07 0.0306172 + 1.565E-07 0.032 + 1.57E-07 0.0317266 + 1.575E-07 0.0305 + 1.58E-07 0.0306016 + 1.585E-07 0.0317266 + 1.59E-07 0.0307735 + 1.595E-07 0.0294844 + 1.6E-07 0.0290313 + 1.605E-07 0.0294766 + 1.61E-07 0.0292578 + 1.615E-07 0.0295313 + 1.62E-07 0.0302969 + 1.625E-07 0.0304375 + 1.63E-07 0.0292422 + 1.635E-07 0.0286797 + 1.64E-07 0.028836 + 1.645E-07 0.0288203 + 1.65E-07 0.0279297 + 1.655E-07 0.0283203 + 1.66E-07 0.0276875 + 1.665E-07 0.028875 + 1.67E-07 0.0285703 + 1.675E-07 0.0277813 + 1.68E-07 0.0286172 + 1.685E-07 0.0286328 + 1.69E-07 0.0286953 + 1.695E-07 0.0280078 + 1.7E-07 0.0274844 + 1.705E-07 0.0271094 + 1.71E-07 0.0270235 + 1.715E-07 0.0276016 + 1.72E-07 0.0278047 + 1.725E-07 0.0266328 + 1.73E-07 0.0269219 + 1.735E-07 0.0271641 + 1.74E-07 0.0274531 + 1.745E-07 0.0280938 + 1.75E-07 0.0259688 + 1.755E-07 0.0266563 + 1.76E-07 0.0273906 + 1.765E-07 0.0279297 + 1.77E-07 0.0268516 + 1.775E-07 0.0263985 + 1.78E-07 0.0260313 + 1.785E-07 0.0269063 + 1.79E-07 0.0266406 + 1.795E-07 0.0270547 + 1.8E-07 0.0274219 + 1.805E-07 0.026625 + 1.81E-07 0.0263438 + 1.815E-07 0.0261328 + 1.82E-07 0.0256172 + 1.825E-07 0.02525 + 1.83E-07 0.0266953 + 1.835E-07 0.0261719 + 1.84E-07 0.0259297 + 1.845E-07 0.0263594 + 1.85E-07 0.0260938 + 1.855E-07 0.026875 + 1.86E-07 0.0256172 + 1.865E-07 0.0260391 + 1.87E-07 0.0260938 + 1.875E-07 0.0265625 + 1.88E-07 0.026125 + 1.885E-07 0.0261797 + 1.89E-07 0.0255938 + 1.895E-07 0.0255625 + 1.9E-07 0.0258516 + 1.905E-07 0.0264688 + 1.91E-07 0.0264063 + 1.915E-07 0.024875 + 1.92E-07 0.0251875 + 1.925E-07 0.0244531 + 1.93E-07 0.0255625 + 1.935E-07 0.0265156 + 1.94E-07 0.0254844 + 1.945E-07 0.0261875 + 1.95E-07 0.0254375 + 1.955E-07 0.0255 + 1.96E-07 0.0253672 + 1.965E-07 0.0254375 + 1.97E-07 0.024711 + 1.975E-07 0.0240703 + 1.98E-07 0.0243125 + 1.985E-07 0.0248828 + 1.99E-07 0.0253516 + 1.995E-07 0.0249063 + 2E-07 0.0250547 + 2.005E-07 0.0254141 + 2.01E-07 0.0243281 + 2.015E-07 0.0251797 + 2.02E-07 0.0251953 + 2.025E-07 0.0247344 + 2.03E-07 0.0255156 + 2.035E-07 0.0247188 + 2.04E-07 0.0229688 + 2.045E-07 0.0251797 + 2.05E-07 0.0238594 + 2.055E-07 0.0255703 + 2.06E-07 0.0247969 + 2.065E-07 0.0253281 + 2.07E-07 0.0251875 + 2.075E-07 0.0238828 + 2.08E-07 0.0241406 + 2.085E-07 0.0241563 + 2.09E-07 0.0237735 + 2.095E-07 0.0244297 + 2.1E-07 0.0243047 + 2.105E-07 0.0228828 + 2.11E-07 0.0226172 + 2.115E-07 0.0242188 + 2.12E-07 0.0241485 + 2.125E-07 0.0235 + 2.13E-07 0.0242891 + 2.135E-07 0.0233438 + 2.14E-07 0.0226328 + 2.145E-07 0.0227266 + 2.15E-07 0.0228516 + 2.155E-07 0.023625 + 2.16E-07 0.0246719 + 2.165E-07 0.0231641 + 2.17E-07 0.0241172 + 2.175E-07 0.0224844 + 2.18E-07 0.0236016 + 2.185E-07 0.0249453 + 2.19E-07 0.0238047 + 2.195E-07 0.0226719 + 2.2E-07 0.0229297 + 2.205E-07 0.0230391 + 2.21E-07 0.0234922 + 2.215E-07 0.0241953 + 2.22E-07 0.0234453 + 2.225E-07 0.0229844 + 2.23E-07 0.02225 + 2.235E-07 0.0241485 + 2.24E-07 0.023711 + 2.245E-07 0.0224766 + 2.25E-07 0.0236875 + 2.255E-07 0.0224766 + 2.26E-07 0.0222422 + 2.265E-07 0.0228438 + 2.27E-07 0.022836 + 2.275E-07 0.0232813 + 2.28E-07 0.0229531 + 2.285E-07 0.022625 + 2.29E-07 0.0228906 + 2.295E-07 0.0230703 + 2.3E-07 0.0226641 + 2.305E-07 0.0221953 + 2.31E-07 0.022086 + 2.315E-07 0.0216094 + 2.32E-07 0.0218125 + 2.325E-07 0.02225 + 2.33E-07 0.0225938 + 2.335E-07 0.0235625 + 2.34E-07 0.0215 + 2.345E-07 0.0226172 + 2.35E-07 0.0225781 + 2.355E-07 0.0226328 + 2.36E-07 0.0221485 + 2.365E-07 0.0221016 + 2.37E-07 0.0222578 + 2.375E-07 0.0212813 + 2.38E-07 0.0211485 + 2.385E-07 0.0220547 + 2.39E-07 0.0224766 + 2.395E-07 0.0226016 + 2.4E-07 0.0226797 + 2.405E-07 0.0230469 + 2.41E-07 0.0215938 + 2.415E-07 0.0218985 + 2.42E-07 0.0206641 + 2.425E-07 0.0216485 + 2.43E-07 0.0225391 + 2.435E-07 0.0224297 + 2.44E-07 0.0217969 + 2.445E-07 0.0215625 + 2.45E-07 0.021461 + 2.455E-07 0.0222266 + 2.46E-07 0.0212031 + 2.465E-07 0.0218594 + 2.47E-07 0.0209297 + 2.475E-07 0.0211094 + 2.48E-07 0.0213985 + 2.485E-07 0.0213906 + 2.49E-07 0.0213281 + 2.495E-07 0.021625 + 2.5E-07 0.0210469 + 2.505E-07 0.0222188 + 2.51E-07 0.0219375 + 2.515E-07 0.0204688 + 2.52E-07 0.0210703 + 2.525E-07 0.0205938 + 2.53E-07 0.0215781 + 2.535E-07 0.0215 + 2.54E-07 0.0204688 + 2.545E-07 0.0210547 + 2.55E-07 0.0218906 + 2.555E-07 0.0217969 + 2.56E-07 0.0210703 + 2.565E-07 0.0212891 + 2.57E-07 0.0206563 + 2.575E-07 0.0201328 + 2.58E-07 0.020625 + 2.585E-07 0.0204141 + 2.59E-07 0.0209766 + 2.595E-07 0.021336 + 2.6E-07 0.0216563 + 2.605E-07 0.0208906 + 2.61E-07 0.0212031 + 2.615E-07 0.0212344 + 2.62E-07 0.0214922 + 2.625E-07 0.0202031 + 2.63E-07 0.0209297 + 2.635E-07 0.0205547 + 2.64E-07 0.0199219 + 2.645E-07 0.0211406 + 2.65E-07 0.0197891 + 2.655E-07 0.0206328 + 2.66E-07 0.0220313 + 2.665E-07 0.02125 + 2.67E-07 0.0208281 + 2.675E-07 0.0203828 + 2.68E-07 0.0206406 + 2.685E-07 0.0203438 + 2.69E-07 0.019875 + 2.695E-07 0.0205156 + 2.7E-07 0.020086 + 2.705E-07 0.0210547 + 2.71E-07 0.020711 + 2.715E-07 0.0217735 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/draw2dSF.input.pamphlet b/src/input/draw2dSF.input.pamphlet new file mode 100644 index 00000000..6edaed4a --- /dev/null +++ b/src/input/draw2dSF.input.pamphlet @@ -0,0 +1,52 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input draw2dSF.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all + +--open a file for input + +drawList(lp:List Point DoubleFloat):VIEW2D == + n := #lp + g := graphImage()$GRIMAGE + for p in lp repeat + component(g,p,pointColorDefault(),lineColorDefault(),pointSizeDefault()) + gi := makeGraphImage(g)$GRIMAGE + makeViewport2D(gi,[title("Points")])$VIEW2D + +readTheFile(filename,numberOfPoints) == + filenew:FILE(DoubleFloat):=open(filename,"input") + llp:=[point([read!(filenew),read!(filenew)])$Point(DoubleFloat) + for i in 1..numberOfPoints] + +-- first we read the file of x, y data +-- we cheat to get at the AXIOM variable +axiom:=string getEnv("AXIOM")$Lisp +pts:=readTheFile(axiom "/../../src/input/draw2dSF.data",1024); + +-- then we plot the points +drawList(pts) + + + + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/drawalg.input.pamphlet b/src/input/drawalg.input.pamphlet new file mode 100644 index 00000000..02ef11a7 --- /dev/null +++ b/src/input/drawalg.input.pamphlet @@ -0,0 +1,28 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input drawalg.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- TopLevelDrawFunctionsForAlgebraicCurves example + +--Plotting Plane Algebraic Curve +draw(y**2 + y - (x**3 - x) = 0, x, y, range == [-2..2,-2..1]) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/drawcfn.input.pamphlet b/src/input/drawcfn.input.pamphlet new file mode 100644 index 00000000..98a682e2 --- /dev/null +++ b/src/input/drawcfn.input.pamphlet @@ -0,0 +1,93 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input drawcfn.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Two dimensional function plots + +f(x:SF):SF == sin(11*x) +draw(f,0..2*%pi) +draw(f,0..2*%pi,adaptive == false,title == "Non-adaptive plot") +draw(f,0..2*%pi,toScale == true,title == "Drawn to scale") +draw(f,0..2*%pi,coordinates == polar,title == "Polar plot") + +g(x:SF):SF == tan(x) +draw(g,-6..6,title == "Clipping on") +draw(g,-6..6,clip == false,title == "Clipping off") + +-- Parametric plane curves + +f1(t:SF):SF == 9*sin(3*t/4) +f2(t:SF):SF == 8*sin(t) +draw(curve(f1,f2),-4*%pi..4*%pi,toScale == true,title == "Lissajous curve") + +g1(t:SF):SF == sin(5*t) +g2(t:SF):SF == t +draw(curve(g1,g2),0..2*%pi,title == "Parametric curve") +draw(curve(g1,g2),0..2*%pi,_ + coordinates == polar,title == "Parametric polar curve") + +h1(t:SF):SF == t +h2(t:SF):SF == 2 +draw(curve(h1,h2),-3..3,coordinates == parabolic,title == "Parabolic plot") + +-- Parametric space curves + +i1(t:SF):SF == sin(t)*cos(3*t/5) +i2(t:SF):SF == cos(t)*cos(3*t/5) +i3(t:SF):SF == cos(t)*sin(3*t/5) +draw(curve(i1,i2,i3),0..15*%pi,title == "Parametric curve") +draw(curve(i1,i2,i3),0..15*%pi,tubeRadius == .15,title == "Tube around curve") + +j1(t:SF):SF == 4 +j2(t:SF):SF == t +draw(curve(j1,j2,j2),-9..9,coordinates == cylindrical,title == "Spiral") + +k1(t:SF):SF == 1 +k2(t:SF):SF == t/7 +k3(t:SF):SF == t/5 +draw(curve(k1,k2,k3),-70*%pi..70*%pi,coordinates == spherical,_ + title == "Gnarly curve on sphere") + +-- Three dimensional function plots + +l(x:SF,y:SF):SF == cos(x*y) +draw(l,-3..3,-3..3) + +colorFunction1(x:SF,y:SF):SF == x +draw(l,-3..3,-3..3,colorFunction == colorFunction1) + +colorFunction2(x:SF,y:SF):SF == x**2 + y**2 +draw(l,-3..3,-3..3,colorFunction == colorFunction2) + +colorFunction3(x:SF,y:SF,z:SF):SF == -z +draw(l,-3..3,-3..3,colorFunction == colorFunction3) + +m(u:SF,v:SF):SF == 1 +draw(m,0..2*%pi,0..%pi,coordinates == spherical,title == "Sphere") +draw(m,0..2*%pi,0..%pi,coordinates == spherical,_ + colorFunction == colorFunction2,title == "Sphere") + +draw(m,-%pi/2..%pi/2,0..2*%pi,coordinates == oblateSpheroidal(1$SF),_ + title == "Oblate spheroidal coordinates") + +-- Parametric surfaces + +n1(u:SF,v:SF):SF == 5*sin(u)*cos(v) +n2(u:SF,v:SF):SF == 4*sin(u)*sin(v) +n3(u:SF,v:SF):SF == 3*cos(u) +draw(surface(n1,n2,n3),0..%pi,0..2*%pi,title == "Which came first?") +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/drawcfun.input.pamphlet b/src/input/drawcfun.input.pamphlet new file mode 100644 index 00000000..2ee9df3f --- /dev/null +++ b/src/input/drawcfun.input.pamphlet @@ -0,0 +1,99 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input drawcfun.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> +)clear all + +-- Two dimensional function plots + +f(x:DFLOAT):DFLOAT == sin(11*x) +draw(f,0..2*%pi) +draw(f,0..2*%pi,adaptive == false,title == "Non-adaptive plot") +draw(f,0..2*%pi,toScale == true,title == "Drawn to scale") +draw(f,0..2*%pi,coordinates == polar,title == "Polar plot") + +g(x:DFLOAT):DFLOAT == tan(x) +draw(g,-6..6,title == "Clipping on") +draw(g,-6..6,clip == false,title == "Clipping off") + +-- Parametric plane curves + +f1(t:DFLOAT):DFLOAT == 9*sin(3*t/4) +f2(t:DFLOAT):DFLOAT == 8*sin(t) +draw(curve(f1,f2),-4*%pi..4*%pi,toScale == true,title == "Lissajous curve") + +g1(t:DFLOAT):DFLOAT == sin(5*t) +g2(t:DFLOAT):DFLOAT == t +draw(curve(g1,g2),0..2*%pi,title == "Parametric curve") +draw(curve(g1,g2),0..2*%pi,_ + coordinates == polar,title == "Parametric polar curve") + +h1(t:DFLOAT):DFLOAT == t +h2(t:DFLOAT):DFLOAT == 2 +draw(curve(h1,h2),-3..3,coordinates == parabolic,title == "Parabolic plot") + +-- Parametric space curves + +i1(t:DFLOAT):DFLOAT == sin(t)*cos(3*t/5) +i2(t:DFLOAT):DFLOAT == cos(t)*cos(3*t/5) +i3(t:DFLOAT):DFLOAT == cos(t)*sin(3*t/5) +draw(curve(i1,i2,i3),0..15*%pi,title == "Parametric curve") +draw(curve(i1,i2,i3),0..15*%pi,tubeRadius == .15,title == "Tube around curve") + +j1(t:DFLOAT):DFLOAT == 4 +j2(t:DFLOAT):DFLOAT == t +draw(curve(j1,j2,j2),-9..9,coordinates == cylindrical,title == "Spiral") + +k1(t:DFLOAT):DFLOAT == 1 +k2(t:DFLOAT):DFLOAT == t/7 +k3(t:DFLOAT):DFLOAT == t/5 +draw(curve(k1,k2,k3),-70*%pi..70*%pi,coordinates == spherical,_ + title == "Gnarly curve on sphere") + +-- Three dimensional function plots + +l(x:DFLOAT,y:DFLOAT):DFLOAT == cos(x*y) +draw(l,-3..3,-3..3) + +colorFunction1(x:DFLOAT,y:DFLOAT):DFLOAT == x +draw(l,-3..3,-3..3,colorFunction == colorFunction1) + +colorFunction2(x:DFLOAT,y:DFLOAT):DFLOAT == x**2 + y**2 +draw(l,-3..3,-3..3,colorFunction == colorFunction2) + +colorFunction3(x:DFLOAT,y:DFLOAT,z:DFLOAT):DFLOAT == -z +draw(l,-3..3,-3..3,colorFunction == colorFunction3) + +m(u:DFLOAT,v:DFLOAT):DFLOAT == 1 +draw(m,0..2*%pi,0..%pi,coordinates == spherical,title == "Sphere") +draw(m,0..2*%pi,0..%pi,coordinates == spherical,_ + colorFunction == colorFunction2,title == "Sphere") + +draw(m,-%pi/2..%pi/2,0..2*%pi,coordinates == oblateSpheroidal(1$DFLOAT),_ + title == "Oblate spheroidal coordinates") + +-- Parametric surfaces + +n1(u:DFLOAT,v:DFLOAT):DFLOAT == 5*sin(u)*cos(v) +n2(u:DFLOAT,v:DFLOAT):DFLOAT == 4*sin(u)*sin(v) +n3(u:DFLOAT,v:DFLOAT):DFLOAT == 3*cos(u) +draw(surface(n1,n2,n3),0..%pi,0..2*%pi,title == "Which came first?") +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/drawcurv.input.pamphlet b/src/input/drawcurv.input.pamphlet new file mode 100644 index 00000000..b1a03a94 --- /dev/null +++ b/src/input/drawcurv.input.pamphlet @@ -0,0 +1,87 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input drawcurv.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)clear all +-- a circle + +seg1 : SEG FRAC INT := -3/2..3/2 +range1 : LIST SEG FRAC INT := [seg1,seg1] + +draw(x**2 + y**2 = 1,x,y,range == range1,title == "Unit Circle") + +-- ditto + +seg2 : SEG FLOAT := -1.1..1.1 +range2 : LIST SEG FLOAT := [seg2,seg2] + +draw(x**2 + y**2 = 1,x,y,range == range2,title == "Unit Circle, 2nd Graph") + +-- an ellipse + +seg3 : SEG FRAC INT := -4..4 +range3 : LIST SEG FRAC INT := [seg3,seg3] + +draw(x**2/9 + y**2/4 = 1,x,y,range == range3,_ + toScale == true,title == "Ellipse") + +-- another ellipse + +seg4 : SEG FRAC INT := -5..5 +range4 : LIST SEG FRAC INT := [seg4,seg4] + +draw(5*x**2 - 8*x*y + 5*y**2 = 9,x,y,range == range4) + +-- a parabola + +seg5a : SEG FRAC INT := -3..14 +seg5b : SEG FRAC INT := -3..10 +range5 : LIST SEG FRAC INT := [seg5a,seg5b] +draw(x**2 - 2*x*y + y**2 - x - 2 = 0,x,y,range == range5) + +-- a hyperbola + +draw(x**2/4 - y**2 = 1,x,y,range == range4) + +-- an elliptic curve + +seg6a : SEG FRAC INT := -2..2 +seg6b : SEG FRAC INT := -2..1 +range6 : LIST SEG FRAC INT := [seg6a,seg6b] + +draw(y**2 + y = x**3 - x,x,y,range == range6) + +-- ovals + +seg7a : SEG FRAC INT := -8..8 +seg7b : SEG FRAC INT := -4..4 +range7 : LIST SEG FRAC INT := [seg7a,seg7b] + +eq1 := (x**2 + y**2 + 5**2)**2 - (6**4 + 4*5**2*x**2) = 0 +draw(eq1,x,y,range == range7,title == "Cassinian oval with one loop") + +seg8a : SEG FRAC INT := -10..10 +range8 : LIST SEG FRAC INT := [seg8a,seg7b] + +eq2 := (x**2 + y**2 + 7**2)**2 - (6**4 + 4*7**2*x**2) = 0 +draw(eq2,x,y,range == range8,title == "Cassinian oval with two loops") +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/drawcx.input.pamphlet b/src/input/drawcx.input.pamphlet new file mode 100644 index 00000000..726cb331 --- /dev/null +++ b/src/input/drawcx.input.pamphlet @@ -0,0 +1,57 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input drawcx.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> +)clear all + +--Plotting Two Dimensional Compiled Functions of One Variable +f(x:DFLOAT):DFLOAT == sin(tan(x))-tan(sin(x)) +draw(f,0..6) +draw(f,0..6,unit == [1.0,0.5],toScale == true) + +--Plotting Two Dimensional Compiled Parametric Plane Curve Functions +i1(t:DFLOAT):DFLOAT == 9*sin(3*t/4) +i2(t:DFLOAT):DFLOAT == 8*sin(t) +draw(curve(i1,i2),-4*%pi..4*%pi) +draw(curve(i1,i2),-4*%pi..4*%pi,toScale == true, title == "Lissajous Curve") + +--Plotting Three Dimensional Compiled Parametric Space Curve Functions +i1(t:DFLOAT):DFLOAT ==sin(t)*cos(3*t/5) +i2(t:DFLOAT):DFLOAT ==cos(t)*cos(3*t/5) +i3(t:DFLOAT):DFLOAT ==cos(t)*sin(3*t/5) +draw(curve(i1,i2,i3),0..15*%pi) +draw(curve(i1,i2,i3),0..15*%pi,title == "Parametric Curve") + +--Plotting Three Dimensional Compiled Functions of Two Variables +l(x:DFLOAT,y:DFLOAT):DFLOAT == cos(x*y) +draw(l,-3..3,-3..3) +colorFxn(x:DFLOAT,y:DFLOAT):DFLOAT == 1/(x**2 + y**2 + 1) +draw(l,-3..3,-3..3, colorFunction == colorFxn) + +--Plotting Three Dimensional Compiled Parametric Surface Functions +n1(u:DFLOAT,v:DFLOAT):DFLOAT == u*cos(v) +n2(u:DFLOAT,v:DFLOAT):DFLOAT == u*sin(v) +n3(u:DFLOAT,v:DFLOAT):DFLOAT == v*cos(u) +draw(surface(n1,n2,n3),-4..4,0..2*%pi) +colorFxn(x:DFLOAT,y:DFLOAT):DFLOAT == 1/(x**2 + y**2 + 1) +draw(surface(n1,n2,n3),-4..4,0..2*%pi, colorFunction == colorFxn) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/drawex.input.pamphlet b/src/input/drawex.input.pamphlet new file mode 100644 index 00000000..a9df5453 --- /dev/null +++ b/src/input/drawex.input.pamphlet @@ -0,0 +1,80 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input drawex.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)clear all +-- examples of the draw function + +-- graph of a cone +draw(surface(u*cos(v),u*sin(v),u),u = -3..3,v = 0..2*%pi,title == "Cone") + +draw(curve(sin(t)*sin(2*t)*sin(3*t),sin(4*t)*sin(5*t)*sin(6*t)),t = 0..2*%pi) + +draw(curve(t - sin t,1 - cos t),t = -5..5) + +draw(curve(2*t - sin t,2 - cos t),t = -5..5) + +draw(curve(t - 2*sin t,1 - 2*cos t),t = -5..5) + +draw(surface(5*sin(u)*cos(v),4*sin(u)*sin(v),3*cos(u)),u=0..%pi,v=0..2*%pi) + +draw(surface(cos(t)/(1+sin(t)**2),sin(t)*cos(t)*cos(u)/(1+sin(t)**2), + sin(t)*cos(t)*sin(u)/(1+sin(t)**2)),t = -%pi..%pi,u = 0..%pi) + +-- helix +draw(curve(4*cos(t),4*sin(t),t),t = -10..10, title == "Helix") + +draw(sin(2 * x**2 + 3 * y**2)/(x**2 + y**2),x = -3..3,y = -3..3) + +draw(curve(9*sin(3*t/4),8*sin(t)),t = -4*%pi..4*%pi, _ + title == "Lissajous curve") + +draw(curve(-9*sin(4*t/5),8*sin(t)),t = -5*%pi..5*%pi, _ + title == "Lissajous curve") + +draw(curve(t**2 + 2*t - 1,t**2 + t - 2),t = -4..3) + +draw((x**2 - y**2)/(x**2 + y**2),x = -1..1,y = -1..1) + +draw(x**2 - y**2,x = -2..2, y = -2..2) + +draw(sin inv x,x = -1.03..3) + +draw(sin(x) * sin(y),x = 0..2*%pi, y = 0..2*%pi) + +draw(sin(x) * sin(y),x = 20*%pi..22*%pi, y = 20*%pi..22*%pi) + +draw(t/100,t = 0..100,coordinates == polar) + +draw(cos(x*y),x = -3..3, y = -3..3) + +draw(curve(3*(t**2-3),t*(t**2-3)),t = -3..3, title == "Tschirnhausen's Cubic") + +draw(curve(sin(t), cos(t), 0), t=0..2*%pi, tubeRadius == 0.5) + +draw(curve((t**2-1)/(3*t**2+1),t*(t**2-1)/(3*t**2+1)),t = -3..3, title == "Folium of Descartes") + +draw(curve(t - 2*sin t,1 - 2*cos t),t = -5..5) + +draw(curve(cos(t)/(1+sin(t)**2),sin(t)*cos(t)/(1+sin(t)**2)),t = -%pi..%pi, title == "Lemniscate of Bernoulli") + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/drawpoly.input.pamphlet b/src/input/drawpoly.input.pamphlet new file mode 100644 index 00000000..9181a1cc --- /dev/null +++ b/src/input/drawpoly.input.pamphlet @@ -0,0 +1,33 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input drawpoly.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> +a1**18 - 83.30408576104702*a1**17 + 4016.670203940073*a1**16 + _ + - 167241.63892168205*a1**15 + 5649108.7097550742*a1**14 + _ + - 1.4927698938773671E8*a1**13 + 3.2737267549354239E9*a1**12 + _ + - 6.0880865153029945E10*a1**11 + 8.4818140701374121E11*a1**10 + _ + - 7.1925755048090801E12*a1**9 + 3.6866360833695195E13*a1**8 + _ + - 1.2269584766923825E14*a1**7 + 2.990307540150555E14*a1**6 + _ + - 5.580671179246935E14*a1**5 + 5.4087180857969938E14*a1**4 + _ + 3.5962416171315931E14*a1**3 - 8.254469833838275E14*a1**2 + _ + - 4.3259667313869412E14*a1 - 1.2086386259492219E13 +draw(%,a1=-0.028..-0.027) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/drawx.input.pamphlet b/src/input/drawx.input.pamphlet new file mode 100644 index 00000000..7d8f2e0b --- /dev/null +++ b/src/input/drawx.input.pamphlet @@ -0,0 +1,50 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input drawx.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)clear all + +--Plotting Two Dimensional Functions of One Variable +draw(sin(tan(x))-tan(sin(x)),x=0..6) +draw(sin(tan(x))-tan(sin(x)),x=0..6,unit == [1.0,0.5],toScale == true) + +--Plotting Two Dimensional Parametric Plane Curves +draw(curve(9*sin(3*t/4),8*sin(t)),t=-4*%pi..4*%pi) +draw(curve(9*sin(3*t/4),8*sin(t)),t=-4*%pi..4*%pi,coordinates == polar) + +--Plotting Three Dimensional Parametric Space Curves +draw(curve(cos(t),sin(t),t),t=0..6) +draw(curve(cos(t),sin(t),t),t=0..6,tubeRadius == .35,tubePoints == 8) + +--Plotting Three Dimensional Functions of Two Variables +draw(cos(x*y),x = -3..3, y = -3..3) +l(x:DoubleFloat,y:DoubleFloat):DoubleFloat == cos(x*y) +colorFxn(x:DoubleFloat,y:DoubleFloat):DoubleFloat == 1/(x**2 + y**2 + 1) +draw(cos(x*y),x = -3..3, y = -3..3, colorFunction == colorFxn) + +--Plotting Three Dimensional Parametric Surfaces +draw(surface(u*cos(v),u*sin(v),v*cos(u)),u=-4..4,v=0..2*%pi) +l(x:DoubleFloat,y:DoubleFloat):DoubleFloat == cos(x*y) +colorFxn(x:DoubleFloat,y:DoubleFloat):DoubleFloat == 1/(x**2 + y**2 + 1) +draw(cos(x*y),x = -3..3, y = -3..3, colorFunction == colorFxn) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/dropt.input.pamphlet b/src/input/dropt.input.pamphlet new file mode 100644 index 00000000..3f3e3c81 --- /dev/null +++ b/src/input/dropt.input.pamphlet @@ -0,0 +1,92 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input dropt.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)clear all + +-- Draw Options + +draw(sin(1/x),x=-2*%pi..2*%pi,adaptive == true) +draw(sin(1/x),x=-2*%pi..2*%pi,adaptive == false) + +draw(tan(x),x=-2*%pi..2*%pi,clip == true) +draw(tan(x),x=-2*%pi..2*%pi,clip == false) + +draw(sin(x),x=-%pi..%pi,toScale == false) +draw(sin(x),x=-%pi..%pi,toScale == true) + + +--Other 2D Options: + +draw(sec(x),x=-2*%pi..2*%pi,clip == [-2*%pi..2*%pi,-%pi..%pi]) +draw(1/x,x=-10..10,clip == [-10..10]) + +draw(sin(x),x=-%pi..%pi,curveColor == 8.0) +draw(sin(x),x=-%pi..%pi,curveColor == bright red()) + +draw(sin(x),x=-%pi..%pi,pointColor == 3.0) +draw(sin(x),x=-%pi..%pi,pointColor == dim yellow()) + +draw(y**2 + y - (x**3 - x) = 0,x,y,range == [-2..2,-2..1]) +p := ((x**2 + y**2 + 1) - 8*x)**2 - (8*(x**2 + y**2 + 1) - 4*x - 1) +draw(p = 0,x,y,range == [-1.0..11.0, -7.0..7.0]) +seg1 : SEG FRAC INT := -3/2..3/2 +range1 : LIST SEG FRAC INT := [seg1,seg1] +draw(x**2 + y**2 = 1,x,y,range == range1) + +f1(t:DFLOAT):DFLOAT == 9*sin(3*t/4) +f2(t:DFLOAT):DFLOAT == 8*sin(t) +draw(curve(f1,f2),-4*%pi..4*%pi,unit == [2.0,0.5]) + +--Options used with 2D and 3D graphs: + +g1(t:DFLOAT):DFLOAT == sin(5*t) +g2(t:DFLOAT):DFLOAT == t +draw(curve(g1,g2),0..2*%pi) + +g1(t:DFLOAT):DFLOAT == sin(5*t) +g2(t:DFLOAT):DFLOAT == t +draw(curve(g1,g2),0..2*%pi,coordinates == polar) + + +m(u:DFLOAT,v:DFLOAT):DFLOAT == 1 +draw(m,0..2*%pi,0..%pi,coordinates == spherical,title == "Sphere") + +--3D Options: + +colorFxn1(x:DFLOAT,y:DFLOAT):DFLOAT == x*sin(x) +draw(m,0..2*%pi,0..%pi,colorFunction == colorFxn1,title == "color = x*sin(x)",coordinates == spherical) + +colorFxn2(x:DFLOAT,y:DFLOAT):DFLOAT == x**2 - y**2 +draw(m,0..2*%pi,0..%pi,colorFunction == colorFxn2,title == "color = x**2 - y**2",coordinates == spherical) + +colorFxn3(x:DFLOAT,y:DFLOAT,z:DFLOAT):DFLOAT == sin(x*z) + cos(y*z) +draw(m,0..2*%pi,0..%pi,colorFunction == colorFxn3,title == "color = sin(x*z)+cos(y*z)",coordinates == spherical) + +draw(curve(sin(t),cos(t),0),t=0..2*%pi,tubeRadius == .25) + +draw(curve(sin(t),cos(t),0),t=0..2*%pi,tubeRadius == .25, tubePoints == 3) + +draw(cos(x*y),x=-3..3,y=-3..3,var1Steps == 3, var2Steps == 3) +draw(cos(x*y),x=-3..3,y=-3..3,var1Steps == 9, var2Steps == 9) +draw(cos(x*y),x=-3..3,y=-3..3) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e01baf.input.pamphlet b/src/input/e01baf.input.pamphlet new file mode 100644 index 00000000..dfc653eb --- /dev/null +++ b/src/input/e01baf.input.pamphlet @@ -0,0 +1,35 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e01baf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +m:=7 +x:Matrix SF:= + [[0.0 ,0.2 ,0.4 ,0.6 ,0.75 ,0.9 ,1.0 ]] +y:Matrix SF:= + [[1.0000 ,1.2214 ,1.4918 ,1.8221 ,2.1170 ,2.4596 ,2.7183 ]] +lck:=11 +lwrk:=58 +result:=e01baf(m,x,y,lck,lwrk,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e01bef.input.pamphlet b/src/input/e01bef.input.pamphlet new file mode 100644 index 00000000..5b683cc5 --- /dev/null +++ b/src/input/e01bef.input.pamphlet @@ -0,0 +1,34 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e01bef.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +n:=9 +x:Matrix SF:= + [[7.99 ,8.09 ,8.19 ,8.70 ,9.20 ,10.00 ,12.00 ,15.00 ,20.00 ]] +f:Matrix SF:= + [[0.00000e+0 ,0.27643e-4 ,0.43750e-1 ,0.16918 ,_ + 0.46943 ,0.94374 ,0.99864 ,0.99992 ,0.99999 ]] +result:=e01bef(n,x,f,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e01bff.input.pamphlet b/src/input/e01bff.input.pamphlet new file mode 100644 index 00000000..aeb674aa --- /dev/null +++ b/src/input/e01bff.input.pamphlet @@ -0,0 +1,40 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e01bff.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +n:=9 +x:Matrix SF:= + [[7.99 ,8.09 ,8.19 ,8.70 ,9.20 ,10.00 ,12.00 ,15.00 ,20.00 ]] +f:Matrix SF:= + [[0.00000e+0 ,0.27643e-4 ,0.43750e-1 ,0.16918 ,_ + 0.46943 ,0.94374 ,0.99864 ,0.99992 ,0.99999 ]] +d:Matrix SF:= + [[0.00000e+0 ,5.52510e-4 ,0.33587 ,0.34944 ,_ + 0.59696 ,6.03260e-2 ,8.98335e-4 ,2.93954e-5 ,0.00000 ]] +m:=11 +px:Matrix SF:= + [[7.9900000000000002 + (i-1) *1.2010000000000001 for i in 1..11]] +result:=e01bff(n,x,f,d,m,px,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e01bgf.input.pamphlet b/src/input/e01bgf.input.pamphlet new file mode 100644 index 00000000..df6868d9 --- /dev/null +++ b/src/input/e01bgf.input.pamphlet @@ -0,0 +1,40 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e01bgf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +n:=9 +x:Matrix SF:= + [[7.99 ,8.09 ,8.19 ,8.70 ,9.20 ,10.00 ,12.00 ,15.00 ,20.00 ]] +f:Matrix SF:= + [[0.00000e+0 ,0.27643e-4 ,0.43750e-1 ,0.16918 ,0.46943 ,_ + 0.94374 ,0.99864 ,0.99992 ,0.99999 ]] +d:Matrix SF:= + [[0.00000e+0 ,5.52510e-4 ,0.33587 ,0.34944 ,0.59696 ,_ + 6.03260e-2 ,8.98335e-4 ,2.93954e-5 ,0.00000 ]] +m:=11 +px:Matrix SF:= + [[7.9900000000000002 + (i-1) *1.2010000000000001 for i in 1..11]] +result:=e01bgf(n,x,f,d,m,px,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e01bhf.input.pamphlet b/src/input/e01bhf.input.pamphlet new file mode 100644 index 00000000..22fea4cf --- /dev/null +++ b/src/input/e01bhf.input.pamphlet @@ -0,0 +1,39 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e01bhf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +n:=9 +x:Matrix SF:= + [[7.99 ,8.09 ,8.19 ,8.70 ,9.20 ,10.00 ,12.00 ,15.00 ,20.00 ]] +f:Matrix SF:= + [[0.00000e+0 ,0.27643e-4 ,0.43750e-1 ,0.16918 ,_ + 0.46943 ,0.94374 ,0.99864 ,0.99992 ,0.99999 ]] +d:Matrix SF:= + [[0.00000e+0 ,5.52510e-4 ,0.33587 ,0.34944 ,_ + 0.59696 ,6.03260e-2 ,8.98335e-4 ,2.93954e-5 ,0.00000 ]] +a:=7.99 +b:=20.0 +result:=e01bhf(n,x,f,d,a,b,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e01daf.input.pamphlet b/src/input/e01daf.input.pamphlet new file mode 100644 index 00000000..5580686e --- /dev/null +++ b/src/input/e01daf.input.pamphlet @@ -0,0 +1,50 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e01daf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +mx:=7 +my:=6 +x:Matrix SF:= + [[1.00 ,1.10 ,1.30 ,1.50 ,1.60 ,1.80 ,2.00 ]] +y:Matrix SF:= + [[0.00 ,0.10 ,0.40 ,0.70 ,0.90 ,1.00 ]] +--f:Matrix SF:= +-- [[1.00 ,1.21 ,1.69 ,2.25 ,2.56 ,3.24 ,4.00 ,1.10 ,_ +-- 1.31 ,1.79 ,2.35 ,2.66 ,3.34 ,4.10 ,1.40 ,1.61 ,_ +-- 2.09 ,2.65 ,2.96 ,3.64 ,4.40 ,1.70 ,1.91 ,2.39 ,_ +-- 2.95 ,3.26 ,3.94 ,4.90 ,1.90 ,2.11 ,2.59 ,3.15 ,_ +-- 3.46 ,4.14 ,4.90 ,2.00 ,2.21 ,2.69 ,3.25 ,3.56 ,_ +-- 4.24 ,5.00 ]] + +f:Matrix SF:= + [[1.00, 1.10, 1.40, 1.70, 1.90, 2.00, _ + 1.21, 1.31, 1.61, 1.91, 2.11, 2.21, _ + 1.69, 1.79, 2.09, 2.39, 2.59, 2.69, _ + 2.25, 2.35, 2.65, 2.95, 3.15, 3.25, _ + 2.56, 2.66, 2.96, 3.26, 3.46, 3.56, _ + 3.24, 3.34, 3.64, 3.94, 4.14, 4.24, _ + 4.00, 4.10, 4.40, 4.70, 4.90, 5.00]] +result:=e01daf(mx,my,x,y,f, -1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e01saf.input.pamphlet b/src/input/e01saf.input.pamphlet new file mode 100644 index 00000000..d4d6fcad --- /dev/null +++ b/src/input/e01saf.input.pamphlet @@ -0,0 +1,48 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e01saf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +m:=30 +x:Matrix SF:= + [[11.16 ,12.85 ,19.85 ,19.72 ,15.91 , 0.00 ,20.87 ,_ + 3.45 ,14.26 ,17.43 ,22.80 ,7.58 ,25.00 , 0.00 ,_ + 9.66 , 5.22 ,17.25 ,25.00 ,12.13 ,22.23 ,11.52 ,_ + 15.20 , 7.54 ,17.32 , 2.14 , 0.51 ,22.69 , 5.47 ,21.67 ,3.31 ]] +y:Matrix SF:= + [[1.24 ,3.06 ,10.72 ,1.39 ,7.74 ,20.00 ,20.00 ,12.78 ,_ + 17.87 ,3.46 ,12.39 ,1.98 ,11.87 ,0.00 ,20.00 ,14.66 ,_ + 19.57 ,3.87 ,10.79 ,6.21 ,8.53 ,0.0 ,10.69 ,13.78 ,_ + 15.03 ,8.37 ,19.63 ,17.13 ,14.36 ,0.33 ]] +f:Matrix SF:= + [[22.15 ,22.11 ,7.97 ,16.83 ,15.30 ,34.60 ,5.74 ,41.24 ,_ + 10.74 ,18.60 ,5.47 ,29.87 ,4.40 ,58.20 ,4.73 ,40.36 ,_ + 6.43 ,8.74 ,13.71 ,10.25 ,15.74 ,21.60 ,19.31 ,12.11 ,_ + 53.10 ,49.43 ,3.25 ,28.63 ,5.52 ,44.08 ]] +result:=resa:=e01saf(m,x,y,f,-1) +px:=7.71 +py:=3.45 +resb:=e01sbf(m,x,y,f,resa."triang",resa."grads",px,py,-1) +resb."pf" +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e01sbf.input.pamphlet b/src/input/e01sbf.input.pamphlet new file mode 100644 index 00000000..c8e3b03e --- /dev/null +++ b/src/input/e01sbf.input.pamphlet @@ -0,0 +1,48 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e01sbf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +m:=30 +x:Matrix SF:= + [[11.16 ,12.85 ,19.85 ,19.72 ,15.91 , 0.00 ,20.87 ,_ + 3.45 ,14.26 ,17.43 ,22.80 ,7.58 ,25.00 , 0.00 ,_ + 9.66 , 5.22 ,17.25 ,25.00 ,12.13 ,22.23 ,11.52 ,_ + 15.20 , 7.54 ,17.32 , 2.14 , 0.51 ,22.69 , 5.47 ,21.67 ,3.31 ]] +y:Matrix SF:= + [[1.24 ,3.06 ,10.72 ,1.39 ,7.74 ,20.00 ,20.00 ,12.78 ,_ + 17.87 ,3.46 ,12.39 ,1.98 ,11.87 ,0.00 ,20.00 ,14.66 ,_ + 19.57 ,3.87 ,10.79 ,6.21 ,8.53 ,0.0 ,10.69 ,13.78 ,_ + 15.03 ,8.37 ,19.63 ,17.13 ,14.36 ,0.33 ]] +f:Matrix SF:= + [[22.15 ,22.11 ,7.97 ,16.83 ,15.30 ,34.60 ,5.74 ,41.24 ,_ + 10.74 ,18.60 ,5.47 ,29.87 ,4.40 ,58.20 ,4.73 ,40.36 ,_ + 6.43 ,8.74 ,13.71 ,10.25 ,15.74 ,21.60 ,19.31 ,12.11 ,_ + 53.10 ,49.43 ,3.25 ,28.63 ,5.52 ,44.08 ]] +resa:=e01saf(m,x,y,f,-1) +px:=7.71 +py:=3.45 +result:=resb:=e01sbf(m,x,y,f,resa."triang",resa."grads",px,py,-1) +resb."pf" +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e01sef.input.pamphlet b/src/input/e01sef.input.pamphlet new file mode 100644 index 00000000..2c175a62 --- /dev/null +++ b/src/input/e01sef.input.pamphlet @@ -0,0 +1,51 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e01sef.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +m:=30 +x:Matrix SF:= + [[11.16 ,12.85 ,19.85 ,19.72 ,15.91 ,0.00 ,20.87 ,_ + 3.45 ,14.26 ,17.43 ,22.80 ,7.58 ,25.00 ,0.00 ,_ + 9.66 ,5.22 ,17.25 ,25.00 ,12.13 ,22.23 ,11.52 ,_ + 15.20 ,7.54 ,17.32 ,2.14 ,0.51 ,22.69 ,5.47 ,_ + 21.67 ,3.31 ]] +y:Matrix SF:= + [[1.24 ,3.06 ,10.72 ,1.39 ,7.74 ,20.00 ,20.00 ,_ + 12.78 ,17.87 ,3.46 ,12.39 ,1.98 ,11.87 ,0.00 ,_ + 20.00 ,14.66 ,19.57 ,3.87 ,10.79 ,6.21 ,8.53 ,_ + 0.0 ,10.69 ,13.78 ,15.03 ,8.37 ,19.63 ,17.13 ,_ + 14.36 ,0.33 ]] +f:Matrix SF:= + [[22.15 ,22.11 ,7.97 ,16.83 ,15.30 ,34.60 ,5.74 ,_ + 41.24 ,10.74 ,18.60 ,5.47 ,29.87 ,4.40 ,58.20 ,_ + 4.73 ,40.36 ,6.43 ,8.74 ,13.71 ,10.25 ,15.74 ,_ + 21.60 ,19.31 ,12.11 ,53.10 ,49.43 ,3.25 ,28.63 ,_ + 5.52 ,44.08 ]] +nw:=0 +nq:=0 +rnw:=0.0 +rnq:=0.0 +result:=e01sef(m,x,y,f,nw,nq,rnw,rnq, -1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e01sff.input.pamphlet b/src/input/e01sff.input.pamphlet new file mode 100644 index 00000000..54faaf30 --- /dev/null +++ b/src/input/e01sff.input.pamphlet @@ -0,0 +1,54 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e01sff.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +m:=30 +x:Matrix SF:= + [[11.16 ,12.85 ,19.85 ,19.72 ,15.91 ,0.00 ,20.87 ,_ + 3.45 ,14.26 ,17.43 ,22.80 ,7.58 ,25.00 ,0.00 ,_ + 9.66 ,5.22 ,17.25 ,25.00 ,12.13 ,22.23 ,11.52 ,_ + 15.20 ,7.54 ,17.32 ,2.14 ,0.51 ,22.69 ,5.47 ,_ + 21.67 ,3.31 ]] +y:Matrix SF:= + [[1.24 ,3.06 ,10.72 ,1.39 ,7.74 ,20.00 ,20.00 ,_ + 12.78 ,17.87 ,3.46 ,12.39 ,1.98 ,11.87 ,0.00 ,_ + 20.00 ,14.66 ,19.57 ,3.87 ,10.79 ,6.21 ,8.53 ,_ + 0.0 ,10.69 ,13.78 ,15.03 ,8.37 ,19.63 ,17.13 ,_ + 14.36 ,0.33 ]] +f:Matrix SF:= + [[22.15 ,22.11 ,7.97 ,16.83 ,15.30 ,34.60 ,5.74 ,_ + 41.24 ,10.74 ,18.60 ,5.47 ,29.87 ,4.40 ,58.20 ,_ + 4.73 ,40.36 ,6.43 ,8.74 ,13.71 ,10.25 ,15.74 ,_ + 21.60 ,19.31 ,12.11 ,53.10 ,49.43 ,3.25 ,28.63 ,_ + 5.52 ,44.08 ]] +nw:=0 +nq:=0 +rnw:=0.0 +rnq:=0.0 +resa:=e01sef(m,x,y,f,nw,nq,rnw,rnq, -1) +px:=3.0 +py:=2.0 +result:=e01sff(m,x,y,f,resa."rnw",resa."fnodes",px ,py,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e02adf.input.pamphlet b/src/input/e02adf.input.pamphlet new file mode 100644 index 00000000..6a519ada --- /dev/null +++ b/src/input/e02adf.input.pamphlet @@ -0,0 +1,40 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e02adf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +m:=11 +kplus1:=4 +nrows:=50 +x:Matrix SF:= + [[1.00 ,2.10 ,3.10 ,3.90 ,4.90 ,5.80 ,_ + 6.50 ,7.10 ,7.80 ,8.40 ,9.00 ]] +y:Matrix SF:= + [[10.40 ,7.90 ,4.70 ,2.50 ,1.20 ,2.20 ,_ + 5.10 ,9.20 ,16.10 ,24.50 ,35.30 ]] +w:Matrix SF:= + [[1.00 ,1.00 ,1.00 ,1.00 ,1.00 ,0.80 ,_ + 0.80 ,0.70 ,0.50 ,0.30 ,0.20 ]] +result:=e02adf(m,kplus1,nrows,x,y,w,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e02aef.input.pamphlet b/src/input/e02aef.input.pamphlet new file mode 100644 index 00000000..05ee778b --- /dev/null +++ b/src/input/e02aef.input.pamphlet @@ -0,0 +1,32 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e02aef.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +nplus1:=5 +a:Matrix SF:= + [[2.0000 ,0.5000 ,0.2500 ,0.1250 ,0.0625 ]] +xcap:=-1.0 +result:=e02aef(nplus1,a,xcap, -1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e02agf.input.pamphlet b/src/input/e02agf.input.pamphlet new file mode 100644 index 00000000..b75d7bdd --- /dev/null +++ b/src/input/e02agf.input.pamphlet @@ -0,0 +1,51 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e02agf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +m:=5 +kplus1:=5 +nrows:=6 +xmin:=0.0 +xmax:=4.0 +x:Matrix SF:= + [[0.5 ,1.0 ,2.0 ,2.5 ,3.0 ]] +y:Matrix SF:= + [[0.03 ,-0.75 ,-1.0 ,-0.1 ,1.75 ]] +w:Matrix SF:= + [[1.0 ,1.0 ,1.0 ,1.0 ,1.0 ]] +mf:=2 +xf:Matrix SF:= + [[0.0 ,4.0 ]] +yf:Matrix SF:= + [[1.0 ,-2.0 ,9.0 ,0.0 ,0.0 ,0.0 ,_ + 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,_ + 0.0 ,0.0 ,0.0 ]] +lyf:=15 +ip:Matrix Integer:= + [[1 ,0 ]] +lwrk:=200 +liwrk:=12 +result:=e02agf(m,kplus1,nrows,xmin,xmax,x,y,w,mf,xf,yf,lyf,ip,lwrk,liwrk, -1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e02ahf.input.pamphlet b/src/input/e02ahf.input.pamphlet new file mode 100644 index 00000000..3b3936cd --- /dev/null +++ b/src/input/e02ahf.input.pamphlet @@ -0,0 +1,38 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e02ahf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +np1:=7 +xmin:=-0.5 +xmax:=2.5 +a:Matrix SF:= + [[2.53213 ,1.13032 ,0.27150 ,0.04434 ,_ + 0.00547 ,0.00054 ,0.00004 ]] +ia1:=1 +la:=7 +iadif1:=1 +ladif:=7 +result:=e02ahf(np1,xmin,xmax,a,ia1,la,iadif1,ladif, -1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e02ajf.input.pamphlet b/src/input/e02ajf.input.pamphlet new file mode 100644 index 00000000..6e029abd --- /dev/null +++ b/src/input/e02ajf.input.pamphlet @@ -0,0 +1,38 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e02ajf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +np1:=7 +xmin:=-0.5 +xmax:=2.5 +a:Matrix SF:= + [[2.53213 ,1.13032 ,0.27150 ,0.04434 ,0.00547 ,0.00054 ,0.00004 ]] +ia1:=1 +la:=7 +qatm1:=0.0 +iaint1:=1 +laint:=8 +result:=e02ajf(np1,xmin,xmax,a,ia1,la,qatm1,iaint1,laint, -1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e02akf.input.pamphlet b/src/input/e02akf.input.pamphlet new file mode 100644 index 00000000..e7f75d53 --- /dev/null +++ b/src/input/e02akf.input.pamphlet @@ -0,0 +1,36 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e02akf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +np1:=7 +xmin:=-0.5 +xmax:=2.5 +a:Matrix SF:= + [[2.53213 ,1.13032 ,0.27150 ,0.04434 ,0.00547 ,0.00054 ,0.00004 ]] +ia1:=1 +la:=7 +x:=-0.5 +result:=e02akf(np1,xmin,xmax,a,ia1,la,x, -1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e02baf.input.pamphlet b/src/input/e02baf.input.pamphlet new file mode 100644 index 00000000..b71682e0 --- /dev/null +++ b/src/input/e02baf.input.pamphlet @@ -0,0 +1,42 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e02baf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +m:=14 +ncap7:=12 +x:Matrix SF:= + [[0.20 ,0.47 ,0.74 ,1.09 ,1.60 ,1.90 ,2.60 ,3.10 ,4.00 ,5.15,_ + 6.17 ,8.00 ,10.00 ,12.00 ]] +y:Matrix SF:= + [[0.00 ,2.00 ,4.00 ,6.00 ,8.00 ,8.62 ,9.10 ,8.90,_ + 8.15 ,7.00 ,6.00 ,4.54 ,3.39 ,2.56 ]] +w:Matrix SF:= + [[0.20 ,0.20 ,0.30 ,0.70 ,0.90 ,1.00 ,_ + 1.00 ,1.00 ,0.80 ,0.50 ,0.70 ,1.00 ,1.00 ,1.00 ]] +lamda:Matrix SF:= + [[0.0 ,0.0 ,0.0 ,0.0 ,1.50 ,2.60 ,_ + 4.00 ,8.00 ,0.0 ,0.0 ,0.0 ,0.0 ]] +result:=e02baf(m,ncap7,x,y,w,lamda, -1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e02bbf.input.pamphlet b/src/input/e02bbf.input.pamphlet new file mode 100644 index 00000000..f36041ae --- /dev/null +++ b/src/input/e02bbf.input.pamphlet @@ -0,0 +1,36 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e02bbf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +ncap7:=11 +lamda:Matrix SF:= + [[1.00 ,1.00 ,1.00 ,1.00 ,3.00 ,6.00 ,_ + 8.00 ,9.00 ,9.00 ,9.00 ,9.00 ]] +c:Matrix SF:= + [[1.00 ,2.00 ,4.00 ,7.00 ,6.00 ,4.00 ,_ + 3.00 ,0.00 ,0.00 ,0.00 ,0.00 ]] +x:=2.0 +result:=e02bbf(ncap7,lamda,c,x,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e02bcf.input.pamphlet b/src/input/e02bcf.input.pamphlet new file mode 100644 index 00000000..2f00d063 --- /dev/null +++ b/src/input/e02bcf.input.pamphlet @@ -0,0 +1,37 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e02bcf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +ncap7:=14 +lamda:Matrix SF:= + [[0.0 ,0.00 ,0.00 ,0.00 ,1.00 ,3.00 ,3.00 ,_ + 3.00 ,4.00 ,4.00 ,6.00,6.00 ,6.00 ,6.00 ]] +c:Matrix SF:= + [[10.00 ,12.00 ,13.00 ,15.00 ,22.00 ,26.00 ,_ + 24.00 ,18.00 ,14.00 ,12.00 ,0.00 ,0.00 ,0.00 ,0.00 ]] +x:=2.0 +left:=1 +result:=e02bcf(ncap7,lamda,c,x,left, -1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e02bdf.input.pamphlet b/src/input/e02bdf.input.pamphlet new file mode 100644 index 00000000..b6b7da17 --- /dev/null +++ b/src/input/e02bdf.input.pamphlet @@ -0,0 +1,35 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e02bdf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +ncap7:=14 +lamda:Matrix SF:= + [[0.0 ,0.00 ,0.00 ,0.00 ,1.00 ,3.00 ,_ + 3.00 ,3.00 ,4.00 ,4.00 ,6.00 ,6.00 ,6.00 ,6.00 ]] +c:Matrix SF:= + [[10.00 ,12.00 ,13.00 ,15.00 ,22.00 ,26.00 ,_ + 24.00 ,18.00 ,14.00 ,12.00 ,0.00 ,0.00 ,0.00 ,0.00 ]] +result:=e02bdf(ncap7,lamda,c, -1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e02bef.input.pamphlet b/src/input/e02bef.input.pamphlet new file mode 100644 index 00000000..96fe8c05 --- /dev/null +++ b/src/input/e02bef.input.pamphlet @@ -0,0 +1,47 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e02bef.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +start:="c" +m:=15 +x:Matrix SF:= + [[0.00 ,0.50 ,1.00 ,1.50 ,2.00 ,2.50 ,3.00 ,_ + 4.00 ,4.50 ,5.00 ,5.50 ,6.00 ,7.00 ,7.50 ,8.00 ]] +y:Matrix SF:= + [[-1.1 ,-0.372 ,0.431 ,1.69 ,2.11 ,3.10 ,4.23 ,4.35 ,4.81 ,_ + 4.61 ,4.79 ,5.23 ,6.35 ,7.19 ,7.97 ]] +w:Matrix SF:= + [[1.00 ,2.00 ,1.50 ,1.00 ,3.00 ,1.00 ,0.50 ,_ + 1.00 ,2.00 ,2.50 ,1.00 ,3.00 ,1.00 ,2.00 ,1.00 ]] +s:=1.0 +nest:=54 +lwrk:=1105 +n:=0 +lamda:=new(1,54,0.0)$Matrix DoubleFloat +ifail:=-1 +wrk:=new(1,1105,0.0)$Matrix DoubleFloat +iwrk:=new(1,54,0)$Matrix Integer +result:=e02bef(start,m,x,y,w,s,nest,lwrk,n,lamda,ifail,wrk,iwrk) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e02daf.input.pamphlet b/src/input/e02daf.input.pamphlet new file mode 100644 index 00000000..10ecb6d7 --- /dev/null +++ b/src/input/e02daf.input.pamphlet @@ -0,0 +1,60 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e02daf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +m:=30 +px:=8 +py:=10 +x:Matrix SF:= + [[-0.52 ,-0.61 ,0.93 ,0.09 ,0.88 ,-0.70 ,1 ,1 ,0.3 ,-0.77 ,_ + -0.23 ,-1 ,-0.26 ,-0.83 ,0.22 ,0.89 ,-0.80 ,-0.88 ,0.68 ,_ + -0.14 ,0.67 ,-0.90 ,-0.84 ,0.84 ,0.15 ,-0.91 ,-0.35 ,-0.16 ,_ + -0.35 ,-1 ]] +y:Matrix SF:= + [[0.60 ,-0.95 ,0.87 ,0.84 ,0.17 ,-0.87 ,1 ,0.1 ,0.24 ,-0.77 ,_ + 0.32 ,1 ,-0.63 ,-0.66 ,0.93 ,0.15 ,0.99 ,-0.54 ,0.44 ,-0.72 ,_ + 0.63 ,-0.40 ,0.20 ,0.43 ,0.28 ,-0.24 ,0.86 ,-0.41 ,-0.05 ,-1 ]] +f:Matrix SF:= + [[0.93 ,-1.79 ,0.36 ,0.52 ,0.49 ,-1.76 ,0.33 ,0.48 ,0.65 ,_ + -1.82 ,0.92 ,1 ,8.88 ,-2.01 ,0.47 ,0.49 ,0.84 ,-2.42 ,_ + 0.47 ,7.15 ,0.44 ,-3.34 ,2.78 ,0.44 ,0.70 ,-6.52 ,0.66 ,_ + 2.32 ,1.66 ,-1 ]] +w:Matrix SF:= + [[10 ,10 ,10 ,10 ,10 ,10 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,_ + 1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ]] +mu:Matrix SF:= + [[0 ,0 ,0 ,0 ,-0.50, 0.00 ,0 ,0 ,0 ,0 ]] +point:Matrix Integer:= + [[3 ,6 ,4 ,5 ,7 ,10 ,8 ,9 ,11 ,13 ,12 ,15 ,14 ,18 ,_ + 16 ,17 ,19 ,20 ,21 ,30 ,23 ,26 ,24 ,25 ,27 ,28 ,_ + 0 ,29 ,0 ,0 ,2 ,22 ,1 ,0 ,0 ,0,0 ,0 ,0 ,0 ,0 ,0 ,0 ]] +npoint:=43 +nc:=24 +nws:=1750 +eps:=0.000001 +lamda:Matrix SF:= + [[0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ]] +result:=e02daf(m,px,py,x,y,f,w,mu,point,npoint,nc,nws,eps,lamda,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e02dcf.input.pamphlet b/src/input/e02dcf.input.pamphlet new file mode 100644 index 00000000..0d56dd1b --- /dev/null +++ b/src/input/e02dcf.input.pamphlet @@ -0,0 +1,62 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e02dcf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +start:="c" +mx:=11 +x:Matrix SF:= + [[0 ,0.5 ,1 ,1.5 ,2 ,2.5 ,3 ,3.5 ,4 ,4.5 ,5 ]] +my:=9 +y:Matrix SF:= + [[0 ,0.5 ,1 ,1.5 ,2 ,2.5 ,3 ,3.5 ,4 ]] +f:Matrix SF:= + [[1 ,0.88758 ,0.5403 ,0.070737 ,-0.41515 ,-0.80114 ,_ + -0.97999 ,-0.93446 ,-0.65664 ,1.5 ,1.3564 ,0.82045 ,_ + 0.10611 ,-0.62422 ,-1.2317 ,-1.485 ,-1.3047 ,-0.98547 ,_ + 2.06 ,1.7552 ,1.0806 ,0.15147 ,-0.83229 ,-1.6023 ,_ + -1.97 ,-1.8729 ,-1.4073 ,2.57 ,2.124 ,1.3508 ,0.17684 ,_ + -1.0404 ,-2.0029 ,-2.475 ,-2.3511 ,-1.6741 ,3 ,2.6427 ,_ + 1.6309 ,0.21221 ,-1.2484 ,-2.2034 ,-2.97 ,-2.8094 ,_ + -1.9809 ,3.5 ,3.1715 ,1.8611 ,0.24458 ,-1.4565 ,-2.864 ,_ + -3.265 ,-3.2776 ,-2.2878 ,4.04 ,3.5103 ,2.0612 ,0.28595 ,_ + -1.6946 ,-3.2046 ,-3.96 ,-3.7958 ,-2.6146 ,4.5 ,3.9391 ,_ + 2.4314 ,0.31632 ,-1.8627 ,-3.6351 ,-4.455 ,-4.2141 ,_ + -2.9314 ,5.04 ,4.3879 ,2.7515 ,0.35369 ,-2.0707 ,-4.0057 ,_ + -4.97 ,-4.6823 ,-3.2382 ,5.505 ,4.8367 ,2.9717 ,0.38505 ,_ + -2.2888 ,-4.4033 ,-5.445 ,-5.1405 ,-3.595 ,6 ,5.2755 ,_ + 3.2418 ,0.42442 ,-2.4769 ,-4.8169 ,-5.93 ,-5.6387 ,-3.9319 ]] +s:=0.1 +nxest:=15 +nyest:=13 +lwrk:=592 +liwrk:=51 +nx:=0 +lamda:Matrix SF:=new(1,15,0.0)$Matrix SF +ny:=0 +mu:Matrix SF:=new(1,13,0.0)$Matrix SF +wrk:Matrix SF:=new(1,592,0.0)$Matrix SF +iwrk:Matrix Integer:=new(1,51,0)$Matrix Integer +result:=e02dcf(start,mx,x,my,y,f,s,nxest,nyest,lwrk,liwrk,nx,lamda,ny,mu,wrk,iwrk,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e02ddf.input.pamphlet b/src/input/e02ddf.input.pamphlet new file mode 100644 index 00000000..4c95a93d --- /dev/null +++ b/src/input/e02ddf.input.pamphlet @@ -0,0 +1,55 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e02ddf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +start:="c" +m:=30 +x:Matrix SF:= + [[11.16 ,12.85 ,19.85 ,19.72 ,15.91 ,0 ,20.87 ,3.45 ,_ + 14.26 ,17.43 ,22.8 ,7.58 ,25 ,0 ,9.66 ,5.22 ,17.25 ,25 ,12.13 ,22.23 ,_ + 11.52 ,15.2 ,7.54 ,17.32 ,2.14 ,0.51 ,22.69 ,5.47 ,21.67 ,3.31 ]] +y:Matrix SF:= + [[1.24 ,3.06 ,10.72 ,1.39 ,7.74 ,20 ,20 ,12.78 ,17.87 ,3.46 ,12.39 ,_ + 1.98 ,11.87 ,0 ,20 ,14.66 ,19.57 ,3.87 ,10.79 ,6.21 ,8.53 ,0 ,10.69 ,_ + 13.78 ,15.03 ,8.37 ,19.63 ,17.13 ,14.36 ,0.33 ]] +f:Matrix SF:= + [[22.15 ,22.11 ,7.97 ,16.83 ,15.30 ,34.6 ,5.74 ,41.24 ,10.74 ,18.60 ,_ + 5.47 ,29.87 ,4.4 ,58.2 ,4.73 ,40.36 ,6.43 ,8.74 ,13.71 ,10.25 ,_ + 15.74 ,21.6 ,19.31 ,12.11 ,53.1 ,49.43 ,3.25 ,28.63 ,5.52 ,44.08 ]] +w:Matrix SF:= + [[1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,_ + 1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ]] +s:=10 +nxest:=14 +nyest:=14 +lwrk:=11016 +liwrk:=128 +nx:=0 +lamda:=new(1,14,0.0)$Matrix SF +ny:=0 +mu:=new(1,14,0.0)$Matrix SF +wrk:=new(1,11016,0.0)$Matrix SF; +result:=e02ddf(start,m,x,y,f,w,s,nxest,nyest,lwrk,liwrk,nx,lamda,ny,mu,wrk,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e02def.input.pamphlet b/src/input/e02def.input.pamphlet new file mode 100644 index 00000000..7c50de9f --- /dev/null +++ b/src/input/e02def.input.pamphlet @@ -0,0 +1,45 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e02def.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +m:=7 +px:=11 +py:=10 +x:Matrix SF:= + [[1 ,1.1 ,1.5 ,1.6 ,1.9 ,1.9 ,2 ]] +y:Matrix SF:= + [[0 ,0.1 ,0.7 ,0.4 ,0.3 ,0.8 ,1 ]] +lamda:Matrix SF:= + [[1.0 ,1.0 ,1.0 ,1.0 ,1.3 ,1.5 ,1.6 ,2 ,2 ,2 ,2 ]] +mu:Matrix SF:= + [[0 ,0 ,0 ,0 ,0.4 ,0.7 ,1 ,1 ,1 ,1 ]] +c:Matrix SF:= + [[1 ,1.1333 ,1.3667 ,1.7 ,1.9 ,2 ,1.2 ,1.3333 ,1.5667,1.9 ,_ + 2.1 ,2.2 ,1.5833 ,1.7167 ,1.95 ,2.2833 ,2.4833 ,2.5833 ,_ + 2.1433 ,2.2767 ,2.51 ,2.8433 ,3.0433 ,3.1433 ,2.8667 ,_ + 3 ,3.2333 ,3.5667 ,3.7667 ,3.8667 ,3.4667 ,3.6 ,3.8333 ,_ + 4.1667 ,4.3667 ,4.4667 ,4 ,4.1333 ,4.3667 ,4.7 ,4.9 ,5 ]] +result:=e02def(m,px,py,x,y,lamda,mu,c,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e02dff.input.pamphlet b/src/input/e02dff.input.pamphlet new file mode 100644 index 00000000..acd0bdf3 --- /dev/null +++ b/src/input/e02dff.input.pamphlet @@ -0,0 +1,48 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e02dff.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +mx:=7 +my:=6 +px:=11 +py:=10 +x:Matrix SF:= + [[1 ,1.1 ,1.3 ,1.4 ,1.5 ,1.7 ,2 ]] +y:Matrix SF:= + [[0 ,0.2 ,0.4 ,0.6 ,0.8 ,1 ]] +lamda:Matrix SF:= + [[1 ,1 ,1 ,1 ,1.3 ,1.5 ,1.6 ,2 ,2 ,2 ,2 ]] +mu:Matrix SF:= + [[0 ,0 ,0 ,0 ,0.4 ,0.7 ,1 ,1 ,1 ,1 ]] +c:Matrix SF:= + [[1 ,1.1333 ,1.3667 ,1.7 ,1.9 ,2 ,1.2 ,1.3333 ,1.5667 ,1.9 ,_ + 2.1 ,2.2 ,1.5833 ,1.7167 ,1.95 ,2.2833 ,2.4833 ,2.5833 ,2.1433 ,2.2767 ,_ + 2.51 ,2.8433 ,3.0433 ,3.1433 ,2.8667 ,3 ,3.2333 ,3.5667 ,3.7667 ,3.8667 ,_ + 3.4667 ,3.6 ,3.8333 ,4.1667 ,4.3667 ,4.4667 ,4 ,4.1333 ,4.3667,_ + 4.7 ,4.9 ,5 ]] +lwrk:=36 +liwrk:=108 +result:=e02dff(mx,my,px,py,x,y,lamda,mu,c,lwrk,liwrk,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e02gaf.input.pamphlet b/src/input/e02gaf.input.pamphlet new file mode 100644 index 00000000..c932b533 --- /dev/null +++ b/src/input/e02gaf.input.pamphlet @@ -0,0 +1,42 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e02gaf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +m:=5 +la:=7 +nplus2:=5 +toler:=0.0 +a:Matrix SF:= + [[1.0,1.0,1.0,0.0,0.0],_ + [exp(0.2),exp(-0.2),1.0,0.0,0.0],_ + [exp(0.4),exp(-0.4),1.0,0.0,0.0],_ + [exp(0.6),exp(-0.6),1.0,0.0,0.0],_ + [exp(0.8),exp(-0.8),1.0,0.0,0.0],_ + [0.0,0.0,0.0,0.0,0.0],_ + [0.0,0.0,0.0,0.0,0.0]] +b:Matrix SF:= + [[4.501 ,4.36 ,4.333 ,4.418 ,4.625 ]] +result:=e02gaf(m,la,nplus2,toler,a,b, -1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e02zaf.input.pamphlet b/src/input/e02zaf.input.pamphlet new file mode 100644 index 00000000..ebde02a2 --- /dev/null +++ b/src/input/e02zaf.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e02zaf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +px:=9 +py:=10 +lamda:Matrix SF:= + [[0 ,0 ,0 ,0 ,1.00 ,0 ,0 ,0 ,0 ]] +mu:Matrix SF:= + [[0 ,0 ,0 ,0 ,0.80 ,1.20 ,0 ,0 ,0 ,0 ]] +m:=10 +x:Matrix SF:= + [[0.00 ,0.70 ,1.44 ,0.21 ,1.01 ,1.84 ,0.71 ,1.00 ,0.54 ,1.531 ]] +y:Matrix SF:= + [[0.77 ,1.06 ,0.33 ,0.44 ,0.50 ,0.02 ,1.95 ,1.20 ,0.04 ,0.18 ]] +npoint:=45 +nadres:=6 +result:=e02zaf(px,py,lamda,mu,m,x,y,npoint,nadres, -1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e04dgf.input.pamphlet b/src/input/e04dgf.input.pamphlet new file mode 100644 index 00000000..8cbbb27b --- /dev/null +++ b/src/input/e04dgf.input.pamphlet @@ -0,0 +1,44 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e04dgf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +n:=2 +es:=1.0 +fu:=0.4373903597E-14 +it:=50 +lin:=0.9 +list:=true +ma:=1.0E+20 +op:=3.26E-12 +pr:=10 +sta:=1 +sto:=2 +ve:=0 +x:Matrix SF:= + [[-1.0 ,1.0 ]] +ef:Expression Float:=(exp(X[1])*(4*X[1]**2+2*X[2]**2+4*X[1]*X[2]+2*X[2]+1))::EXPR FLOAT +objfun:ASP49(OBJFUN):= retract ef +result:=e04dgf(n,es,fu,it,lin,list,ma,op,pr,sta,sto,ve,x,-1,objfun) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e04fdf.input.pamphlet b/src/input/e04fdf.input.pamphlet new file mode 100644 index 00000000..838b188c --- /dev/null +++ b/src/input/e04fdf.input.pamphlet @@ -0,0 +1,51 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e04fdf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +m:=15 +n:=3 +liw:=1 +lw:=171 +x:Matrix SF:= + [[0.5 ,1.0 ,1.5 ]] +vef:Vector Expression Float:= vector + [(XC[3]+15*XC[2])**(-1)+XC[1]-0.14 ,_ + 2*(2*XC[3]+14*XC[2])**(-1)+XC[1]-0.18 ,_ + 3*(3*XC[3]+13*XC[2])**(-1)+XC[1]-0.22 ,_ + 4*(4*XC[3]+12*XC[2])**(-1)+XC[1]-0.25 ,_ + 5*(5*XC[3]+11*XC[2])**(-1)+XC[1]-0.29 ,_ + 6*(6*XC[3]+10*XC[2])**(-1)+XC[1]-0.32 ,_ + 7*(7*XC[3]+9*XC[2])**(-1)+XC[1]-0.35 ,_ + 8*(8*XC[3]+8*XC[2])**(-1)+XC[1]-0.39 ,_ + 9*(7*XC[3]+7*XC[2])**(-1)+XC[1]-0.37 ,_ + 10*(6*XC[3]+6*XC[2])**(-1)+XC[1]-0.58 ,_ + 11*(5*XC[3]+5*XC[2])**(-1)+XC[1]-0.73 ,_ + 12*(4*XC[3]+4*XC[2])**(-1)+XC[1]-0.96 ,_ + 13*(3*XC[3]+3*XC[2])**(-1)+XC[1]-1.34 ,_ + 14*(2*XC[3]+2*XC[2])**(-1)+XC[1]-2.1 ,_ + 15*(XC[3]+XC[2])**(-1)+XC[1]-4.39 ] +lsfun1:ASP50(LSFUN1):= retract vef +result:=e04fdf(m,n,liw,lw,x,-1,lsfun1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e04gcf.input.pamphlet b/src/input/e04gcf.input.pamphlet new file mode 100644 index 00000000..2bfb59fd --- /dev/null +++ b/src/input/e04gcf.input.pamphlet @@ -0,0 +1,51 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e04gcf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +m:=15 +n:=3 +liw:=1 +lw:=177 +x:Matrix SF:= + [[0.5 ,1.0 ,1.5 ]] +vef:Vector Expression Float:=vector + [(XC[3]+15*XC[2])**(-1)+XC[1]-0.14 ,_ + 2*(2*XC[3]+14*XC[2])**(-1)+XC[1]-0.18 ,_ + 3*(3*XC[3]+13*XC[2])**(-1)+XC[1]-0.22 ,_ + 4*(4*XC[3]+12*XC[2])**(-1)+XC[1]-0.25 ,_ + 5*(5*XC[3]+11*XC[2])**(-1)+XC[1]-0.29 ,_ + 6*(6*XC[3]+10*XC[2])**(-1)+XC[1]-0.32 ,_ + 7*(7*XC[3]+9*XC[2])**(-1)+XC[1]-0.35 ,_ + 8*(8*XC[3]+8*XC[2])**(-1)+XC[1]-0.39 ,_ + 9*(7*XC[3]+7*XC[2])**(-1)+XC[1]-0.37 ,_ + 10*(6*XC[3]+6*XC[2])**(-1)+XC[1]-0.58 ,_ + 11*(5*XC[3]+5*XC[2])**(-1)+XC[1]-0.73 ,_ + 12*(4*XC[3]+4*XC[2])**(-1)+XC[1]-0.96 ,_ + 13*(3*XC[3]+3*XC[2])**(-1)+XC[1]-1.34 ,_ + 14*(2*XC[3]+2*XC[2])**(-1)+XC[1]-2.1 ,_ + 15*(XC[3]+XC[2])**(-1)+XC[1]-4.39 ] +lsfun2:Asp19(LSFUN2):= retract vef +result:=e04gcf(m,n,liw,lw,x,-1,lsfun2) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e04jaf.input.pamphlet b/src/input/e04jaf.input.pamphlet new file mode 100644 index 00000000..41f77ac4 --- /dev/null +++ b/src/input/e04jaf.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e04jaf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +n:=4 +ibound:=0 +liw:=6 +lw:=54 +bl:Matrix SF:= + [[1 ,-2 ,-1.0e-6 ,1 ]] +bu:Matrix SF:= + [[3 ,0 ,1.0e6 ,3 ]] +x:Matrix SF:= + [[3 ,-1 ,0 ,1 ]] +ef:Expression Float:= + ((XC[1]+10*XC[2])**2+5*(XC[3]-XC[4])**2+(XC[2]-2*XC[3])**4+10*(XC[1]-XC[4])**4)::EXPR FLOAT +funct1:Asp24(FUNCT1):=retract ef +result:=e04jaf(n,ibound,liw,lw,bl,bu,x,-1,funct1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e04mbf.input.pamphlet b/src/input/e04mbf.input.pamphlet new file mode 100644 index 00000000..ce578e0a --- /dev/null +++ b/src/input/e04mbf.input.pamphlet @@ -0,0 +1,56 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e04mbf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +itmax:=20 +msglvl:=1 +n:=7 +nclin:=7 +nctotl:=14 +nrowa:=7 +a:Matrix SF:= + [[1 ,1 ,1 ,1 ,1 ,1 ,1 ],_ + [0.15 ,0.04 ,0.02 ,0.04 ,0.02 ,0.01 ,0.03 ],_ + [0.03 ,0.05 ,0.08 ,0.02 ,0.06 ,0.01 ,0 ],_ + [0.02 ,0.04 ,0.01 ,0.02 ,0.02 ,0 ,0 ],_ + [0.02 ,0.03 ,0 ,0 ,0.01 ,0 ,0 ],_ + [0.7 ,0.75 ,0.8 ,0.75 ,0.8 ,0.97 ,0 ],_ + [0.02 ,0.06 ,0.08 ,0.12 ,0.02 ,0.01 ,0.97 ]] +bl:Matrix SF:= + [[-0.01 ,-0.1 ,-0.01 ,-0.04 ,-0.1 ,-0.01 ,-0.01 ,_ + -0.13 ,-1.0e+21 ,-1.0e+21 ,-1.0e+21 ,-1.0e+21 ,_ + -0.0992 ,-0.003 ]] +bu:Matrix SF:= + [[0.01 ,0.15 ,0.03 ,0.02 ,0.05 ,1.0e+21 ,1.0e+21 ,_ + -0.13 ,-0.0049 ,-0.0064 ,-0.0037 ,-0.0012 ,1.0e+21 ,0.002 ]] +cvec:Matrix SF:= + [[-0.02 ,-0.2 ,-0.2 ,-0.2 ,-0.2 ,0.04 ,0.04 ]] +linobj:=true +liwork:=14 +lwork:=182 +x:Matrix SF:= + [[-0.01 ,-0.03 ,0.0 ,-0.01 ,-0.1 ,0.02 ,0.01 ]] +result:=e04mbf(itmax,msglvl,n,nclin,nctotl,nrowa,a,bl,bu,cvec,linobj,liwork,lwork,x,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e04naf.input.pamphlet b/src/input/e04naf.input.pamphlet new file mode 100644 index 00000000..f47a7c3d --- /dev/null +++ b/src/input/e04naf.input.pamphlet @@ -0,0 +1,84 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e04naf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +itmax:=20 +msglvl:=-1 +n:=7 +nclin:=7 +nctotl:=14 +nrowa:=7 +nrowh:=7 +ncolh:=7 +bigbnd:=1.0e10 +a:Matrix SF:= + [[1 ,1 ,1 ,1 ,1 ,1 ,1 ],_ + [0.15 ,0.04 ,0.02 ,0.04 ,0.02 ,0.01 ,0.03 ],_ + [0.03 ,0.05 ,0.08 ,0.02 ,0.06 ,0.01 ,0 ],_ + [0.02 ,0.04 ,0.01 ,0.02 ,0.02 ,0 ,0 ],_ + [0.02 ,0.03 ,0 ,0 ,0.01 ,0 ,0 ],_ + [0.7 ,0.75 ,0.8 ,0.75 ,0.8 ,0.97 ,0 ],_ + [0.02 ,0.06 ,0.08 ,0.12 ,0.02 ,0.01 ,0.97 ]] +bl:Matrix SF:= + [[-0.01 ,-0.1 ,-0.01 ,-0.04 ,-0.1 ,-0.01 ,-0.01 ,-0.13 ,_ + -1.0e+21 ,-1.0e+21 ,-1.0e+21 ,-1.0e+21 ,-0.0992 ,-0.003 ]] +bu:Matrix SF:= + [[0.01 ,0.15 ,0.03 ,0.02 ,0.05 ,1.0e+21 ,1.0e+21 ,-0.13 ,_ + -0.0049 ,-0.0064 ,-0.0037 ,-0.0012 ,1.0e+21 ,0.002 ]] +cvec:Matrix SF:= + [[-0.02 ,-0.2 ,-0.2 ,-0.2 ,-0.2 ,0.04 ,0.04 ]] +featol:Matrix SF:= + [[0.1053e-7 ,0.1053e-7 ,0.1053e-7 ,0.1053e-7 ,0.1053e-7 ,_ + 0.1053e-7 ,0.1053e-7 ,0.1053e-7 ,0.1053e-7 ,0.1053e-7 ,_ + 0.1053e-7 ,0.1053e-7 ,0.1053e-7 ,0.1053e-7 ]] +hess:Matrix SF := + [[2 ,0 ,0 ,0 ,0 ,0 ,0 ],_ + [0 ,2 ,0 ,0 ,0 ,0 ,0 ],_ + [0 ,0 ,2 ,2 ,0 ,0 ,0 ],_ + [0 ,0 ,2 ,2 ,0 ,0 ,0 ],_ + [0 ,0 ,0 ,0 ,2 ,0 ,0 ],_ + [0 ,0 ,0 ,0 ,0 ,-2 ,-2 ],_ + [0 ,0 ,0 ,0 ,0 ,-2 ,-2 ]] +cold:=true +lpp:=false +orthog:=true +liwork:=14 +lwork:=238 +x:Matrix SF:= + [[-0.01 ,-0.03 ,0.0 ,-0.01 ,-0.1 ,0.02 ,0.01 ]] +istate:Matrix Integer:= + [[0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ]] +mei:Matrix Expression Integer:= + [[2 ,0 ,0 ,0 ,0 ,0 ,0 ],_ + [0 ,2 ,0 ,0 ,0 ,0 ,0 ],_ + [0 ,0 ,2 ,2 ,0 ,0 ,0 ],_ + [0 ,0 ,2 ,2 ,0 ,0 ,0 ],_ + [0 ,0 ,0 ,0 ,2 ,0 ,0 ],_ + [0 ,0 ,0 ,0 ,0 ,-2 ,-2 ],_ + [0 ,0 ,0 ,0 ,0 ,-2 ,-2 ]] +qphess:Asp20(QPHESS):= retract mei +result:=e04naf(itmax,msglvl,n,nclin,nctotl,nrowa,nrowh,ncolh,bigbnd,a,bl,bu,cvec,featol,_ +hess,cold,lpp,orthog,liwork,lwork,x,istate,-1,qphess) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e04ucf.input.pamphlet b/src/input/e04ucf.input.pamphlet new file mode 100644 index 00000000..087b365b --- /dev/null +++ b/src/input/e04ucf.input.pamphlet @@ -0,0 +1,101 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e04ucf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +n:=9 +nclin:=4 +ncnln:=14 +nrowa:=4 +nrowj:=14 +nrowr:=9 +a:Matrix SF:= + [[-1.0 ,1.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ],_ + [0.0 ,-1.0 ,1.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ],_ + [0.0 ,0.0 ,1.0 ,-1.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ],_ + [0.0 ,0.0 ,0.0 ,1.0 ,-1.0 ,0.0 ,0.0 ,0.0 ,0.0 ]] +bl:Matrix SF:= + [[0.0 ,-1.0e15 ,-1.0 ,-1.0e15 ,0.0 ,0.0 ,0.0 ,-1.0e15 ,_ + -1.0e15 ,0.0 ,0.0 ,0.0 ,0.0 ,-1.0e15 ,-1.0e15 ,-1.0e15 ,_ + -1.0e15 ,-1.0e15 ,-1.0e15 ,-1.0e15 ,-1.0e15 ,-1.0e15 ,_ + -1.0e15 ,-1.0e15 ,-1.0e15 ,-1.0e15 ,-1.0e15 ]] +bu:Matrix SF:= + [[1.0e15 ,1.0e15 ,1.0 ,1.0e15 ,1.0e15 ,1.0e15 ,1.0e15 ,_ + 0.0 ,0.0 ,1.0e15 ,1.0e15 ,1.0e15 ,1.0e15 ,0.0 ,0.0 ,_ + 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ]] +liwork:=59 +lwork:=968 +sta:=false +cra:= 0.01 +der:=3 +fea:=0.1053671201E-7 +fun:=0.4373903510E-14 +hes:= true +infb:= 1.00E+15 +infs:= 1.00E+15 +linf:= 0.1053671201E-7 +lint:= 0.9 +list:= true +maji:= 30 +majp:= 1 +mini:= 81 +minp:= 0 +mon:= -1 +nonf:= 1.05E-08 +opt:= 3.26E-08 +ste:= 2.0 +stao:= 1 +stac:= 1 +stoo:= 9 +stoc:= 9 +ve:= 3 +istate:Matrix Integer:=new(1,27,0) +cjac:Matrix SF:=new(14,9,0.0) +clamda:Matrix SF:=new(1,27,0.0) +r:Matrix SF:=new(9,9,0.0) +x:Matrix SF:= + [[0.1 ,0.125 ,0.666666 ,0.142857 ,0.111111 ,0.2 ,0.25 ,-0.2 ,-0.25 ]] +vef:Vector Expression Float:=vector + [X[1]**2 + X[6]**2 ,_ + (X[2] - X[1])**2 + (X[7] - X[6])**2 ,_ + (X[3] - X[1])**2 + X[6]*2 ,_ + (X[1] - X[4])**2 + (X[6] - X[8])**2 ,_ + (X[1] - X[5])**2 + (X[6] - X[9])**2 ,_ + X[2]**2 + X[7]**2 ,_ + (X[3] - X[2])**2 + X[7]**2 ,_ + (X[4] - X[2])**2 + (X[8] - X[7])**2 ,_ + (X[2] - X[5])**2 + (X[7] - X[9])**2 ,_ + (X[4] - X[3])**2 + X[8]**2 ,_ + (X[5] - X[3])**2 + X[9]**2 ,_ + X[4]**2 + X[8]**2 ,_ + (X[4] - X[5])**2 + (X[9] - X[8])**2 ,_ + X[5]**2 + X[9]**2 ] +confun:Asp55(CONFUN):= retract vef +ef:Expression Float:=(-X[2]*X[6] + X[1]*X[7] - X[3]*X[7] - X[5]*X[8] + X[4]*X[9] + X[3]*X[8])::EXPR FLOAT +objfun:Asp49(OBJFUN):=retract ef +result:=e04ucf(n,nclin,ncnln,nrowa,nrowj,nrowr,a,bl,bu,liwork,lwork,_ +sta,cra,der,fea,fun,hes,infb,infs,linf,lint,list,maji,majp,_ +mini,minp,mon,nonf,opt,ste,stao,stac,stoo,stoc,ve,istate,_ +cjac,clamda,r,x,-1,confun,objfun) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/e04ycf.input.pamphlet b/src/input/e04ycf.input.pamphlet new file mode 100644 index 00000000..e28bb8d9 --- /dev/null +++ b/src/input/e04ycf.input.pamphlet @@ -0,0 +1,39 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input e04ycf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +job:=0 +m:=15 +n:=3 +fsumsq:=0.0082148773065789729 +s:Matrix SF:= + [[4.0965034571419325 ,1.5949579400198182 ,0.061258491120317927 ]] +lv:=3 +v:Matrix SF:= + [[0.9353959087369782,- 0.25922842715810668, - 0.24048932714625143,_ + 0.35295122094583287, 0.64323460044494585, 0.67946647041872243,_ + - 0.021445968175122822, - 0.72045115819433947, 0.69317400348358882]] +result:=e04ycf(job,m,n,fsumsq,s,lv,v,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/easter.input.pamphlet b/src/input/easter.input.pamphlet new file mode 100644 index 00000000..7de1aee3 --- /dev/null +++ b/src/input/easter.input.pamphlet @@ -0,0 +1,383 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input easter.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +-- ----------[ A x i o m ]---------- +-- ---------- Initialization ---------- +)set bre resume +)set messages autoload off +)set messages time off +)set quit unprotected +)set streams calculate 7 +-- ---------- Numbers ---------- +-- Let's begin by playing with numbers: infinite precision integers +factorial(50) +factor(%) +-- Infinite precision rational numbers +1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + 1/10 +-- Arbitrary precision floating point numbers +digits(50); +-- This number is nearly an integer +exp(sqrt(163.)*%pi) +digits(20); +-- Special functions +besselJ(2, 1 + %i) +-- Complete decimal expansion of a rational number +decimal(1/7) +-- Continued fractions +continuedFraction(3.1415926535) +-- Simplify an expression with nested square roots +sqrt(2*sqrt(3) + 4) +simplify(%) +-- Try a more complicated example (from the Putnam exam) +sqrt(14 + 3*sqrt(3 + 2*sqrt(5 - 12*sqrt(3 - 2*sqrt(2))))) +simplify(%) +-- Cardinal numbers +2*Aleph(0) - 3 +-- ---------- Statistics ---------- +-- ---------- Algebra ---------- +-- Numbers are nice, but symbols allow for variability---try some high school +-- algebra: rational simplification +(x**2 - 4)/(x**2 + 4*x + 4) +-- This example requires more sophistication +(%e**x - 1)/(%e**(x/2) + 1) +normalize(%) +-- Expand and factor polynomials +(x + 1)**20 +D(%, x) +factor(%) +x**100 - 1 +factor(%) +-- Factor polynomials over finite fields and field extensions +p:= x**4 - 3*x**2 + 1 +factor(p) +phi:= rootOf(phi**2 - phi - 1); +factor(p, [phi]) +factor(p :: Polynomial(PrimeField(5))) +expand(%) +-- Partial fraction decomposition +(x**2 + 2*x + 3)/(x**3 + 4*x**2 + 5*x + 2) +padicFraction( + partialFraction(numerator(%) :: UnivariatePolynomial(x, Fraction Integer), + factor(denominator(%) :: Polynomial Integer) :: + Factored UnivariatePolynomial(x, Fraction Integer))) +-- ---------- Inequalities ---------- +-- ---------- Trigonometry ---------- +-- Trigonometric manipulations---these are typically difficult for students +r:= cos(3*x)/cos(x) +real(complexNormalize(%)) +real(normalize(simplify(complexNormalize(r)))) +-- Use rewrite rules +sincosAngles:= rule _ + (cos((n | integer?(n)) * x) == _ + cos((n - 1)*x) * cos(x) - sin((n - 1)*x) * sin(x); _ + sin((n | integer?(n)) * x) == _ + sin((n - 1)*x) * cos(x) + cos((n - 1)*x) * sin(x) ) +sincosAngles r +r:= 'r; +-- ---------- Determining Zero Equivalence ---------- +-- The following expressions are all equal to zero +sqrt(997) - (997**3)**(1/6) +sqrt(999983) - (999983**3)**(1/6) +(2**(1/3) + 4**(1/3))**3 - 6*(2**(1/3) + 4**(1/3)) - 6 +simplify(%) +-- This expression is zero for x, y > 0 and n not equal to zero +x**(1/n)*y**(1/n) - (x*y)**(1/n) +normalize(%) +-- See Joel Moses, ``Algebraic Simplification: A Guide for the Perplexed'', +-- CACM, Volume 14, Number 8, August 1971 +expr:= log(tan(1/2*x + %pi/4)) - asinh(tan(x)) +complexNormalize(%) +-- Use a roundabout method---show that expr is a constant equal to zero +D(expr, x) +simplify(real(complexNormalize(expand(simplify(%))))) +normalize(eval(expr, x = 0)) +log((2*sqrt(r) + 1)/sqrt(4*r + 4*sqrt(r) + 1)) +simplify(%) +(4*r + 4*sqrt(r) + 1)**(sqrt(r)/(2*sqrt(r) + 1)) _ + * (2*sqrt(r) + 1)**(1/(2*sqrt(r) + 1)) - 2*sqrt(r) - 1 +normalize(%) +-- ---------- The Complex Domain ---------- +-- Complex functions---separate into their real and imaginary parts +rectform(z) == real(z) + %i*imag(z) +rectform(log(3 + 4*%i)) +simplify(rectform(tan(x + %i*y))) +-- Check for branch abuse. See David R. Stoutemyer, ``Crimes and Misdemeanors +-- in the Computer Algebra Trade'', Notices of the AMS, Volume 38, Number 7, +-- September 1991. This first expression can simplify to sqrt(x y)/sqrt(x), +-- but no further in general (consider what happens when x, y = -1). +sqrt(x*y*abs(z)**2) / (sqrt(x)*abs(z)) +-- If z = -1, sqrt(1/z) is not equal to 1/sqrt(z) +sqrt(1/z) - 1/sqrt(z) +-- If z = 3 pi i, log(exp(z)) is not equal to z +log(%e**z) +normalize(%) +-- The principal value of this expression is (10 - 4 pi) i +log(%e**(10*%i)) +normalize(%) +-- If z = pi, arctan(tan(z)) is not equal to z +atan(tan(z)) +-- If z = 2 pi i, sqrt(exp(z)) is not equal to exp(z/2) +sqrt(%e**z) - %e**(z/2) +-- ---------- Equations ---------- +-- Manipulate an equation using a natural syntax +(x = 0)/2 + 1 +-- Solve various nonlinear equations---this cubic polynomial has all real roots +radicalSolve(3*x**3 - 18*x**2 + 33*x - 19 = 0, x) +map(e +-> lhs(e) = rectform(rhs(e)), %) +-- Some simple seeming problems can have messy answers +eqn:= x**4 + x**3 + x**2 + x + 1 = 0 +radicalSolve(eqn, x) +-- Check one of the answers +eval(eqn, %.1) +%e**(2*x) + 2*%e**x + 1 = z +solve(%, x) +-- This equation is already factored and so *should* be easy to solve +(x + 1) * (sin(x)**2 + 1)**2 * cos(3*x)**3 = 0 +solve(%, x) +-- The following equations have an infinite number of solutions (let n be an +-- arbitrary integer): z = 0 [+ n 2 pi i] +solve(%e**z = 1, z) +-- x = pi/4 [+ n pi] +solve(sin(x) = cos(x), x) +solve(tan(x) = 1, x) +-- x = 0, 0 [+ n pi, + n 2 pi] +solve(sin(x) = tan(x), x) +-- This equation has no solutions +solve(sqrt(x**2 + 1) = x - 2, x) +-- Solve a system of linear equations +eq1:= x + y + z = 6 +eq2:= 2*x + y + 2*z = 10 +eq3:= x + 3*y + z = 10 +-- Note that the solution is parametric +solve([eq1, eq2, eq3], [x, y, z]) +-- Solve a system of nonlinear equations +eq1:= x**2*y + 3*y*z - 4 = 0 +eq2:= -3*x**2*z + 2*y**2 + 1 = 0 +eq3:= 2*y*z**2 - z**2 - 1 = 0 +-- Solving this by hand would be a nightmare +solve([eq1, eq2, eq3], [x, y, z]) +-- ---------- Matrix Algebra ---------- +m:= matrix([[a, b], [1, a*b]]) +-- Invert the matrix +minv:= inverse(m) +m * minv +-- Define a Vandermonde matrix (useful for doing polynomial interpolations) +matrix([[1, 1, 1, 1 ], _ + [w, x, y, z ], _ + [w**2, x**2, y**2, z**2], _ + [w**3, x**3, y**3, z**3]]) +determinant(%) +-- The following formula implies a general result +factor(%) +-- Compute the eigenvalues of a matrix from its characteristic polynomial +m:= matrix([[ 5, -3, -7], _ + [-2, 1, 2], _ + [ 2, -3, -4]]) +characteristicPolynomial(m, lambda) +solve(% = 0, lambda) +m:= 'm; +-- ---------- Tensors ---------- +-- ---------- Sums and Products ---------- +-- Sums: finite and infinite +summation(k**3, k = 1..n) +sum(k**3, k = 1..n) +limit(sum(1/k**2 + 1/k**3, k = 1..n), n = %plusInfinity) +-- Products +product(k, k = 1..n) +-- ---------- Calculus ---------- +-- Limits---start with a famous example +limit((1 + 1/n)**n, n = %plusInfinity) +limit((1 - cos(x))/x**2, x = 0) +-- Apply the chain rule---this is important for PDEs and many other +-- applications +y:= operator('y); +x:= operator('x); +D(y(x(t)), t, 2) +)clear properties x y +-- ---------- Indefinite Integrals ---------- +1/(x**3 + 2) +-- This would be very difficult to do by hand +integrate(%, x) +D(%, x) +-- This example involves several symbolic parameters +integrate(1/(a + b*cos(x)), x) +map(simplify, map(f +-> D(f, x), %)) +-- Calculus on a non-smooth (but well defined) function +D(abs(x), x) +integrate(abs(x), x) +-- Calculus on a piecewise defined function +a(x) == if x < 0 then -x else x +D(a(x), x) +integrate(a(x), x) +)clear properties a +-- The following two integrals should be equivalent. The correct solution is +-- [(1 + x)^(3/2) + (1 - x)^(3/2)] / 3 +integrate(x/(sqrt(1 + x) + sqrt(1 - x)), x) +integrate((sqrt(1 + x) - sqrt(1 - x))/2, x) +-- ---------- Definite Integrals ---------- +-- The following two functions have a pole at zero +integrate(1/x, x = -1..1) +integrate(1/x**2, x = -1..1) +-- Different branches of the square root need to be chosen in the intervals +-- [0, 1] and [1, 2]. The correct results are 4/3, [4 - sqrt(8)]/3, +-- [8 - sqrt(8)]/3, respectively. +integrate(sqrt(x + 1/x - 2), x = 0..1) +integrate(sqrt(x + 1/x - 2), x = 0..1, "noPole") +integrate(sqrt(x + 1/x - 2), x = 1..2) +integrate(sqrt(x + 1/x - 2), x = 1..2, "noPole") +integrate(sqrt(x + 1/x - 2), x = 0..2) +integrate(sqrt(x + 1/x - 2), x = 0..2, "noPole") +-- Contour integrals +integrate(cos(x)/(x**2 + a**2), x = %minusInfinity..%plusInfinity) +integrate(cos(x)/(x**2 + a**2), x = %minusInfinity..%plusInfinity, "noPole") +-- Integrand with a branch point +integrate(t**(a - 1)/(1 + t), t = 0..%plusInfinity) +integrate(t**(a - 1)/(1 + t), t = 0..%plusInfinity, "noPole") +-- Multiple integrals: volume of a tetrahedron +integrate(integrate(integrate(1, z = 0..c*(1 - x/a - y/b)), _ + y = 0..b*(1 - x/a)), _ + x = 0..a) +-- ---------- Series ---------- +-- Taylor series---this first example comes from special relativity +1/sqrt(1 - (v/c)**2) +series(%, v = 0) +1/%**2 +tsin:= series(sin(x), x = 0) +tcos:= series(cos(x), x = 0) +-- Note that additional terms will be computed as needed +tsin/tcos +series(tan(x), x = 0) +-- Look at the Taylor series around x = 1 +)set streams calculate 1 +log(x)**a*exp(-b*x) +series(%, x = 1) +)set streams calculate 7 +-- Compare the Taylor series of two different formulations of a function +taylor(log(sinh(z)) + log(cosh(z + w)), z = 0) +% - taylor(log(sinh(z) * cosh(z + w)), z = 0) +-- Power series (compute the general formula) +log(sin(x)/x) +series(%, x = 0) +exp(-x)*sin(x) +series(%, x = 0) +-- Derive an explicit Taylor series solution of y as a function of x from the +-- following implicit relation +y:= operator('y); +x = sin(y(x)) + cos(y(x)) +seriesSolve(%, y, x = 1, 0) +)clear properties y +-- Pade (rational function) approximation +pade(1, 1, taylor(exp(-x), x = 0)) +-- ---------- Transforms ---------- +-- Laplace and inverse Laplace transforms +laplace(cos((w - 1)*t), t, s) +inverseLaplace(%, s, t) +-- ---------- Difference and Differential Equations ---------- +-- Second order linear recurrence equation +r:= operator('r); +r(n + 2) - 2 * r(n + 1) + r(n) = 2 +[%, r(0) = 1, r(1) = m] +)clear properties r +-- Second order ODE with initial conditions---solve first using Laplace +-- transforms +f:= operator('f); +ode:= D(f(t), t, 2) + 4*f(t) = sin(2*t) +map(e +-> laplace(e, t, s), %) +-- Now, solve the ODE directly +solve(ode, f, t = 0, [0, 0]) +-- First order linear ODE +y:= operator('y); +x**2 * D(y(x), x) + 3*x*y(x) = sin(x)/x +solve(%, y, x) +-- Nonlinear ODE +D(y(x), x, 2) + y(x)*D(y(x), x)**3 = 0 +solve(%, y, x) +-- A simple parametric ODE +D(y(x, a), x) = a*y(x, a) +solve(%, y, x); +-- ODE with boundary conditions. This problem has nontrivial solutions +-- y(x) = A sin([pi/2 + n pi] x) for n an arbitrary integer. +solve(D(y(x), x, 2) + k**2*y(x) = 0, y, x) +-- bc(%, x = 0, y = 0, x = 1, D(y(x), x) = 0) +-- System of two linear, constant coefficient ODEs +x:= operator('x); +system:= [D(x(t), t) = x(t) - y(t), D(y(t), t) = x(t) + y(t)] +-- Check the answer +-- Triangular system of two ODEs +system:= [D(x(t), t) = x(t) * (1 + cos(t)/(2 + sin(t))), _ + D(y(t), t) = x(t) - y(t)] +-- Try solving this system one equation at a time +solve(system.1, x, t) +isTimes(subst(%.basis.1, cos(t) = sqrt(1 - sin(t)**2))) +reduce(*, cons(subst( + factors(factor(subst(%.1**2, sin(t) = u) :: Polynomial Integer)).1.factor, + u = sin(t)), + rest(%))) +x(t) = C1 * % +solve(map(e +-> subst(e, %), system.2), y, t) +y(t) = simplify(%.particular) + C2 * %.basis.1 +)clear properties x y +-- ---------- Operators ---------- +-- Linear differential operator +DD:= operator("D") :: Operator(Expression Integer) +evaluate(DD, e +-> D(e, x))$Operator(Expression Integer) +L:= (DD - 1) * (DD + 2) +g:= operator('g) +L(f(x)) +subst(L(subst(g(y), y = x)), x = y) +subst(L(subst(A * sin(z**2), z = x)), x = z) +-- Truncated Taylor series operator +T:= (f, xx, a) +-> subst((DD**0)(f(x)), x = a)/factorial(0) * (xx - a)**0 + _ + subst((DD**1)(f(x)), x = a)/factorial(1) * (xx - a)**1 + _ + subst((DD**2)(f(x)), x = a)/factorial(2) * (xx - a)**2 +T(f, x, a) +T(g, y, b) +Sin:= operator("sin") :: Operator(Expression Integer) +evaluate(Sin, x +-> sin(x))$Operator(Expression Integer) +T(Sin, z, c) +-- ---------- Programming ---------- +-- Write a simple program to compute Legendre polynomials +p(n, x) == 1/(2**n*factorial(n)) * D((x**2 - 1)**n, x, n) +for i in 0..4 repeat { output(""); output(concat(["p(", string(i), ", x) = "])); output(p(i, x))} +eval(p(4, x), x = 1) +-- Now, perform the same computation using a recursive definition +pp(0, x) == 1 +pp(1, x) == x +pp(n, x) == ((2*n - 1)*x*pp(n - 1, x) - (n - 1)*pp(n - 2, x))/n +for i in 0..4 repeat { output(""); output(concat(["pp(", string(i), ", x) = "])); output(pp(i, x))} +)clear properties p pp +-- ---------- Translation ---------- +-- Horner's rule---this is important for numerical algorithms +a:= operator('a) +sum(a(i)*x**i, i = 1..5) +p:= factor(%) +-- Convert the result into FORTRAN syntax +)set fortran ints2floats off +outputAsFortran('p = p) +-- ---------- Boolean Logic ---------- +-- Simplify logical expressions +true and false +x or (not x) +x or y or (x and y) +)set bre nobr +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/ecfact.as.pamphlet b/src/input/ecfact.as.pamphlet new file mode 100644 index 00000000..bf330973 --- /dev/null +++ b/src/input/ecfact.as.pamphlet @@ -0,0 +1,282 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ecfact.as} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +-- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. +-- All rights reserved. +-- +-- Redistribution and use in source and binary forms, with or without +-- modification, are permitted provided that the following conditions are +-- met: +-- +-- - Redistributions of source code must retain the above copyright +-- notice, this list of conditions and the following disclaimer. +-- +-- - Redistributions in binary form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in +-- the documentation and/or other materials provided with the +-- distribution. +-- +-- - Neither the name of The Numerical ALgorithms Group Ltd. nor the +-- names of its contributors may be used to endorse or promote products +-- derived from this software without specific prior written permission. +-- +-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +-- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +-- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +-- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +-- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +-- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +-- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +-- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +-- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +-- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +@ +<<*>>= +<<license>> +#include "axiom.as" +#pile + +--% Elliptic curve method for integer factorization +-- This file implements Lenstra's algorithm for integer factorization. +-- A divisor of N is found by computing a large multiple of a rational +-- point on a randomly generated elliptic curve in P2 Z/NZ. +-- The Hessian model is used for the curve (1) to simplify the selection +-- of the initial point on the random curve and (2) to minimize the +-- cost of adding points. +-- Ref: IBM RC 11262, DV Chudnovsky & GV Chudnovsky +-- SMW Sept 86. + +--% EllipticCurveRationalPoints +--)abbrev domain ECPTS EllipticCurveRationalPoints + +EllipticCurveRationalPoints(x0:Integer, y0:Integer, z0:Integer, n:Integer): ECcat == ECdef where + Point ==> Record(x: Integer, y: Integer, z: Integer) + + ECcat ==> AbelianGroup with + double: % -> % + p0: % + HessianCoordinates: % -> Point + + ECdef ==> add + Rep == Point + import from Rep + import from List Integer + + Ex == OutputForm + + default u, v: % + + apply(u:%,x:'x'):Integer == rep(u).x + apply(u:%,y:'y'):Integer == rep(u).y + apply(u:%,z:'z'):Integer == rep(u).z + import from 'x' + import from 'y' + import from 'z' + + coerce(u:%): Ex == [u.x, u.y, u.z]$List(Integer) :: Ex + p0:% == per [x0 rem n, y0 rem n, z0 rem n] + HessianCoordinates(u:%):Point == rep u + + 0:% == + per [1, (-1) rem n, 0] + -(u:%):% == + per [u.y, u.x, u.z] + (u:%) = (v:%):Boolean == + XuZv := u.x * v.z + XvZu := v.x * u.z + YuZv := u.y * v.z + YvZu := v.y * u.z + (XuZv-XvZu) rem n = 0 and (YuZv-YvZu) rem n = 0 + (u:%) + (v:%): % == + XuZv := u.x * v.z + XvZu := v.x * u.z + YuZv := u.y * v.z + YvZu := v.y * u.z + (XuZv-XvZu) rem n = 0 and (YuZv-YvZu) rem n = 0 => double u + XuYv := u.x * v.y + XvYu := v.x * u.y + Xw := XuZv*XuYv - XvZu*XvYu + Yw := YuZv*XvYu - YvZu*XuYv + Zw := XvZu*YvZu - XuZv*YuZv + per [Yw rem n, Xw rem n, Zw rem n] + double(u:%): % == + import from PositiveInteger + X3 := u.x**(3@PositiveInteger) + Y3 := u.y**(3@PositiveInteger) + Z3 := u.z**(3@PositiveInteger) + Xw := u.x*(Y3 - Z3) + Yw := u.y*(Z3 - X3) + Zw := u.z*(X3 - Y3) + per [Yw rem n, Xw rem n, Zw rem n] + (n:Integer)*(u:%): % == + n < 0 => (-n)*(-u) + v := 0 + import from UniversalSegment Integer + for i in 0..length n - 1 repeat + if bit?(n,i) then v := u + v + u := double u + v + + +--% EllipticCurveFactorization +--)abbrev package ECFACT EllipticCurveFactorization + +EllipticCurveFactorization: with + LenstraEllipticMethod: (Integer) -> Integer + LenstraEllipticMethod: (Integer, Float) -> Integer + LenstraEllipticMethod: (Integer, Integer, Integer) -> Integer + LenstraEllipticMethod: (Integer, Integer) -> Integer + + lcmLimit: Integer -> Integer + lcmLimit: Float-> Integer + + solveBound: Float -> Float + bfloor: Float -> Integer + primesTo: Integer -> List Integer + lcmTo: Integer -> Integer + == add + import from List Integer + Ex == OutputForm + import from Ex + import from String + import from Float + + NNI==> NonNegativeInteger + import from OutputPackage + import from Integer, NonNegativeInteger + import from UniversalSegment Integer + + blather:Boolean := true + + --% Finding the multiplier + flabs (f: Float): Float == abs f + flsqrt(f: Float): Float == sqrt f + nthroot(f:Float,n:Integer):Float == exp(log f/n::Float) + + bfloor(f: Float): Integer == wholePart floor f + + lcmLimit(n: Integer):Integer == + lcmLimit nthroot(n::Float, 3) + lcmLimit(divisorBound: Float):Integer == + y := solveBound divisorBound + lcmLim := bfloor exp(log divisorBound/y) + if blather then + output("The divisor bound is", divisorBound::Ex) + output("The lcm Limit is", lcmLim::Ex) + lcmLim + + -- Solve the bound equation using a Newton iteration. + -- + -- f = y**2 - log(B)/log(y+1) + -- + -- f/f' = fdf = + -- 2 2 + -- y (y + 1)log(y + 1) - (y + 1)log(y + 1) logB + -- --------------------------------------------- + -- 2 + -- 2y(y + 1)log(y + 1) + logB + -- + fdf(y: Float, logB: Float): Float == + logy := log(y + 1) + ylogy := (y + 1)*logy + ylogy2:= y*logy*ylogy + (y*ylogy2 - logB*ylogy)/((2@Integer)*ylogy2 + logB) + solveBound(divisorBound:Float):Float == + -- solve y**2 = log(B)/log(y + 1) + -- although it may be y**2 = log(B)/(log(y)+1) + relerr := (10::Float)**(-5) + logB := log divisorBound + y0 := flsqrt log10 divisorBound + y1 := y0 - fdf(y0, logB) + while flabs((y1 - y0)/y0) > relerr repeat + y0 := y1 + y1 := y0 - fdf(y0, logB) + y1 + + -- maxpin(p, n, logn) is max d s.t. p**d <= n + maxpin(p:Integer,n:Integer,logn:Float): NonNegativeInteger == + d: Integer := bfloor(logn/log(p::Float)) + if d < 0 then d := 0 + d::NonNegativeInteger + + multiple?(i: Integer, plist: List Integer): Boolean == + for p in plist repeat if i rem p = 0 then return true + false + + primesTo(n:Integer):List Integer == + n < 2 => [] + n = 2 => [2] + plist := [3, 2] + i:Integer := 5 + while i <= n repeat + if not multiple?(i, plist) then plist := cons(i, plist) + i := i + 2 + if not multiple?(i, plist) then plist := cons(i, plist) + i := i + 4 + plist + lcmTo(n:Integer):Integer == + plist := primesTo n + m: Integer := 1 + logn := log(n::Float) + for p in plist repeat m := m * p**maxpin(p,n,logn) + if blather then + output("The lcm of 1..", n::Ex) + output(" is", m::Ex) + m + LenstraEllipticMethod(n: Integer):Integer == + LenstraEllipticMethod(n, flsqrt(n::Float)) + LenstraEllipticMethod(n: Integer, divisorBound: Float):Integer == + lcmLim0 := lcmLimit divisorBound + multer0 := lcmTo lcmLim0 + LenstraEllipticMethod(n, lcmLim0, multer0) + InnerLenstraEllipticMethod(n:Integer, multer:Integer, + X0:Integer, Y0:Integer, Z0:Integer):Integer == + import from EllipticCurveRationalPoints(X0,Y0,Z0,n) + import from Record(x: Integer, y: Integer, z: Integer) + p := p0 + pn := multer * p + Zn := HessianCoordinates.pn.z + gcd(n, Zn) + + LenstraEllipticMethod(n: Integer, multer: Integer):Integer == + X0:Integer := random() + Y0:Integer := random() + Z0:Integer := random() + InnerLenstraEllipticMethod(n, multer, X0, Y0, Z0) + + LenstraEllipticMethod(n:Integer, lcmLim0:Integer, multer0:Integer):Integer == + nfact: Integer := 1 + for i:Integer in 1.. while nfact = 1 repeat + output("Trying elliptic curve number", i::Ex) + X0:Integer := random() + Y0:Integer := random() + Z0:Integer := random() + nfact := InnerLenstraEllipticMethod(n, multer0, X0, Y0, Z0) + if nfact = n then + lcmLim := lcmLim0 + while nfact = n repeat + output("Too many iterations... backing off") + lcmLim := bfloor(lcmLim * 0.6) + multer := lcmTo lcmLim + nfact := InnerLenstraEllipticMethod(n, multer0, X0, Y0, Z0) + nfact + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/efi.input.pamphlet b/src/input/efi.input.pamphlet new file mode 100644 index 00000000..5df35de1 --- /dev/null +++ b/src/input/efi.input.pamphlet @@ -0,0 +1,55 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input efi.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- +)clear all +EFI:=Expression Integer + +ber:=operator 'ber +s:=operator 's +--s:OP EFI:=operator 's + +br:LIST EFI->EFI +-- br(x|(x.1)~=0)==(x.1)/(exp((x.1))-1) +-- br has a removable singularity at the origin +-- br(x|(x.1)=0)== limit(br([y]),y=0) +br(x) == + (x.1) = 0 => limit(br([y]),y=0) + (x.1)/(exp((x.1))-1) + +br([1]) +br([0]) + +fJ:List FRAC INT -> EFI +J(i:PI,j:PI):EFI==ber(s(i)-s(j)) + +function(J(1,2),'fJ,['s]) +evaluate(ber,br)$BOP1(EFI); + +ss:=[1,2] +fJ(ss) + +ss:=[1,1] +-- fJ doesn't know about the special definition at the origin +fJ(ss) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/egg.input.pamphlet b/src/input/egg.input.pamphlet new file mode 100644 index 00000000..85c96894 --- /dev/null +++ b/src/input/egg.input.pamphlet @@ -0,0 +1,19 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input egg.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +draw(surface(5*sin(u)*cos(v),4*sin(u)*sin(v),3*cos(u)),u=0..%pi,v=0..2*%pi) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/eigen.input.pamphlet b/src/input/eigen.input.pamphlet new file mode 100644 index 00000000..9447c5ec --- /dev/null +++ b/src/input/eigen.input.pamphlet @@ -0,0 +1,122 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input eigen.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- Computation of eigenvalues and eigenvectors +)cl all + +-- computation of characteristic polynomial + +-- for matrix of integers +m:=matrix([[1,2,1],[2,1,-2],[1,-2,4]]) + +characteristicPolynomial m +characteristicPolynomial(m,x) + +-- for matrix of polynomials +p:=matrix([[x+1,2-x*y,x**2+1],[2-x,y+2*x,x**2-2],[y**2,x-2,4-x*y]]) +characteristicPolynomial p +characteristicPolynomial(p,t) + +-- for general matrix of FRAC POLY INT +n:=matrix([[a,b,c],[d,e,f],[g,h,k]]) +characteristicPolynomial n + +-- there are many functions for the computation of eigenvalues and +-- eigenvectors: +-- the function eigenvalues returns the eigenvalues : +leig := eigenvalues m + +alpha:=leig.1 +-- alpha is a rational eigenvalue; the corresponding eigenvector can be +-- computed with the function eigenvector: +eigenvector(alpha,m) + +beta:=leig.2 +-- beta is a "symbolic" eigenvalue, i.e. it is a root (symbolically expressed) +-- of an irreducible factor of the characteristic polynomial. In this case +-- too we can compute the associate eigenvectors. +eigenvector(beta,m)$EP(INT) +-- eigenvector(beta,m) not accepted by the interpreter + +-- eigenvalues and eigenvectors can be computed simultaneously +-- with the function eigenvectors +eigenvectors m + +q:=matrix [[x**2-y**2,(x-y)*(2*x+3*y)],[x+y,2*x+3*y]] + +eigenvectors(q) + +p:=matrix([[76,-18,58,-10],[-4,78,2,-2],[-6,15,45,3],[22,-75,7,41]]) +ll := eigenvectors p + +-- In this case the algebraic multiplicity (the field eigmult) is different +-- from the geometric multiplicity (the length of the field eigvec). + +generalizedEigenvectors p +generalizedEigenvector(ll.1,p)$EP(INT) +-- generalizedEigenvector(ll.1,p) the interpreter can not handle this + +-- these functions return respectively the complete set of +-- generalized eigenvectors +-- or the generalized eigenvectors associated to a particular eigenvalue alpha, +-- i.e. a basis of the nullSpace((p-alpha*I)**k) where k is the algebraic +-- multiplicity of alpha. + +-- In the case of symbolic eigenvalues it is possible to convert the symbolic +-- eigenvalue and the corresponding eigenvectors in a more explicit form. +m +mm:=matrix([[30,4,24],[-17,8,-7],[-31,-54,-5]]) +-- the function radicalEigenvalues expresses, when possible, the eigenvalues +-- in terms of radicals. +le1:=radicalEigenvalues m +le2:=radicalEigenvalues mm + +-- the function radicalEigenvector computes the eigenvectors assocoted to +-- a given eigenvalue, expressed in terms of radicals +radicalEigenvector(le1.2, m) +radicalEigenvector(le2.2,mm) + +-- the function radicalEigenvectors computes simoultaneously all the +-- eigenvalues and the associated eigenvectors and expresses the , when +-- it is possible, in terms of radical. +radicalEigenvectors m +radicalEigenvectors mm + +-- there exist analogous functions for the computation of real and complex +-- eigenvalues and eigenvectors. + +-- in order to compute respectively the eigenvalues or the +-- eigenvalues and the associared eigevectors of a matrix m and express them +-- as rational numbers (Gaussian rational) up to precision 1/1000000 use +realEigenvalues(m,1/1000000) +complexEigenvalues(mm,1/1000000) + +realEigenvectors(m,1/1000000) +complexEigenvectors(mm,1/1000000) +-- to have the eigenvalues expressed as real float (complex float) use +realEigenvalues(m,.000001) +realEigenvectors(m,.000001) + +complexEigenvalues(mm,.000001) +complexEigenvectors(mm,.000001) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/elemfun.input.pamphlet b/src/input/elemfun.input.pamphlet new file mode 100644 index 00000000..aed43ac5 --- /dev/null +++ b/src/input/elemfun.input.pamphlet @@ -0,0 +1,76 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input elemfun.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- Manipulations of ElementaryFunction Integer + +)clear all + +-- some values of trig functions will simplify on application +cos 0 +sin 0 +exp 0 +log 1 +sin(%pi/2) +simplify % + +-- same goes with the usual relations +sin(3)**2 + cos(3)**2 +simplify % + +a := atan 1 +t := cos(a)*sin(a)*tan(a)*sec(a)*csc(a)*cot(a) +simplify t + +-- we can remove selected operations +cot2tan t +cot2trig t +tan2cot t +tan2trig t +cos2sec t + +-- given such a trig expression not involving any variables, +-- we can get a numeric approximation + +t := sin(7)**2 - sec(7)/(1 - cot(7) + csc(7)**3) +simplify t +numeric % + +-- we really didn't need to have simplified +numeric t + +-- we can get more digits by giving a precision +numeric(t, 100) + +-- if we do have an expression involving variables, we can use eval +-- to give them values + +u := exp(sin(x-1)**2 - cos(x-1)/sec(x-1)) +eval(u,x=1) + +-- here is another technique using rewrite rules +v(x) == exp(sin(x-1)**2 - cos(x-1)/sec(x-1)) +v x +v 1 +v(%pi/3) +numeric % +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/elemnum.input.pamphlet b/src/input/elemnum.input.pamphlet new file mode 100644 index 00000000..4763ebe9 --- /dev/null +++ b/src/input/elemnum.input.pamphlet @@ -0,0 +1,122 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input elemnum.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- +-- Test numeric evaluation of elementary functions. SMW June 26, 1991. +)clear all +)set break resume +x := 0.7::Float +[exp log x] +[log exp x] +[sin asin x, cos acos x, tan atan x, cot acot x] +[asin sin x, acos cos x, atan tan x, acot cot x, acsc csc x, asec sec x ] +[sinh asinh x, tanh atanh x, csch acsch x,sech asech x] +[asinh sinh x,acosh cosh x,atanh tanh x,acoth coth x,acsch csch x,asech sech x] +--Should give errors: +--acsc x +--asec x +--acosh x +--acoth x + +x := 1.1::Float +[exp log x] +[log exp x] +[ tan atan x, cot acot x, csc acsc x, sec asec x ] +[asin sin x, acos cos x, atan tan x, acot cot x, acsc csc x, asec sec x ] +[sinh asinh x,cosh acosh x, coth acoth x,csch acsch x ] +[asinh sinh x,acosh cosh x,atanh tanh x,acoth coth x,acsch csch x,asech sech x] +--Should give errors: +--asin x +--acos x +--atanh x +--asech x + +x := 0.7::DoubleFloat +[exp log x] +[log exp x] +[sin asin x, cos acos x, tan atan x, cot acot x] +[asin sin x, acos cos x, atan tan x, acot cot x, acsc csc x, asec sec x ] +[sinh asinh x, tanh atanh x, csch acsch x,sech asech x] +[asinh sinh x,acosh cosh x,atanh tanh x,acoth coth x,acsch csch x,asech sech x] +--Should give errors: +--acsc x +--asec x +--acosh x +--acoth x + +x := 1.1::DoubleFloat +[exp log x] +[log exp x] +[ tan atan x, cot acot x, csc acsc x, sec asec x ] +[asin sin x, acos cos x, atan tan x, acot cot x, acsc csc x, asec sec x ] +[sinh asinh x,cosh acosh x, coth acoth x,csch acsch x ] +[asinh sinh x,acosh cosh x,atanh tanh x,acoth coth x,acsch csch x,asech sech x] +--Should give errors: +--asin x +--acos x +--atanh x +--asech x + +qtest(a,b,n) == + m1 := if n = 1 or n = 4 then 0 else 1 + s1 := if n = 1 or n = 4 then 1 else -1 + s2 := if n = 1 or n = 2 then 1 else -1 + x := complex(s1*a, s2*b) + [x- exp log x, _ + x- sin asin x, x- cos acos x, x- tan atan x , _ + x- csc acsc x, x- sec asec x, x- cot acot x , _ + x- sinh asinh x, x- cosh acosh x, x- tanh atanh x , _ + x- csch acsch x, x- sech asech x, x- coth acoth x , _ + x- log exp x, _ + x- asin sin x, x- s1*acos cos x, x- atan tan x , _ + x- acsc csc x, x- s1*asec sec x, x- acot cot x + m1*%pi, _ + x- asinh sinh x, x- s1*acosh cosh x, x- atanh tanh x , _ + x- acsch csch x, x- s1*asech sech x, x- acoth coth x ] + +qerr(l) == + reduce(+, [norm v for v in l])/#l +sa := 0.7::DoubleFloat +sb := 1.1::DoubleFloat +ba := 0.7::Float +bb := 1.1::Float + +qtest(sa, sb, 1) +qerr % +qtest(ba, bb, 1) +qerr % + +qtest(sa, sb, 2) +qerr % +qtest(ba, bb, 2) +qerr % + +qtest(sa, sb, 3) +qerr % +qtest(ba, bb, 3) +qerr % + +qtest(sa, sb, 4) +qerr % +qtest(ba, bb, 4) +qerr % +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/elfuts.input.pamphlet b/src/input/elfuts.input.pamphlet new file mode 100644 index 00000000..462795e8 --- /dev/null +++ b/src/input/elfuts.input.pamphlet @@ -0,0 +1,80 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input elfuts.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +)cl all +--demo of Jacobian elliptic functions expanded as power series +)set streams calculate 10 +)expose ELFUTS +macro RN == FRAC INT +macro QF == FRAC +xx:UTS(RN,'x,0):=x +sn(xx,1::RN) +cn(xx,1::RN) +dn(xx,1::RN) +yy:UTS(FRAC UP(k,RN),'y,0):=y +snn:=sn(yy,k::QF UP(k,RN)) +cnn:=cn(yy,k::QF UP(k,RN)) +dnn:=dn(yy,k::QF UP(k,RN)) +snn**2+cnn**2 +ksquared:=(k::UP(k,RN))**2 +dnn**2+ksquared*snn**2 +(differentiate snn)**2 +(1-snn**2)*(1-ksquared*snn**2) +(differentiate cnn)**2 +(1-cnn**2)*(1-ksquared+ksquared*cnn**2) +(differentiate dnn)**2 +(1-dnn**2)*(dnn**2-1+ksquared) + +kkk:=integrate(1/((1-yy**2)*(1-ksquared*yy**2))**(1/2)) +revert kkk +snn + +-- Theta-functions expanded as power series + +--q0=*/[1-q**2*n for n in 1..] +--q1=*/[1+q**2*n for n in 1..] +--q2=*/[1+q**(2*n-1) for n in 1..] +--q3=*/[1-q**(2*n-1) for n in 1..] +eprod x==exp evenlambert log x +qq:UTS(RN,'q,0):=q +q0:=eprod(1-qq) +q1:=eprod(1+qq) +oprod x == exp oddlambert log x +q2:=oprod(1+qq) +q3:=oprod(1-qq) +q1*q2*q3 +q2**8-q3**8 +16*qq*q1**8 +--(q1**2/q2**2)**2 +--(q3**2/q2**2)**2 +q0**3 +q1**2*q0 +q2**2*q0 +q3**2*q0 +qqq:UTS(FRAC UP(a,RN),'q,0):=q +a:=a::FRAC UP(a,RN) + +--Jacobi's triple product +eprod(1-qqq)*oprod(1-a*qqq)*oprod(1-qqq/a) +sq:=ksquared*snn**2 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/elt.input.pamphlet b/src/input/elt.input.pamphlet new file mode 100644 index 00000000..ab70ff32 --- /dev/null +++ b/src/input/elt.input.pamphlet @@ -0,0 +1,32 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input elt.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> +-- This file tests elts and setelts + +)clear all +u : Bits := new(10,true) +u(3..5) := false; u +)clear all +u:Any := [1, 7.2, 3/2, x**2, "wally"] +u.1 +)clear all +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/eq.input.pamphlet b/src/input/eq.input.pamphlet new file mode 100644 index 00000000..e315e7c2 --- /dev/null +++ b/src/input/eq.input.pamphlet @@ -0,0 +1,34 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input EQ.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from EquationXmpPage +)clear all + +eq1 := 3*x + 4*y = 5 +eq2 := 2*x + 2*y = 3 +lhs eq1 +rhs eq1 +eq1 + eq2 +eq1 * eq2 +2*eq2 - eq1 +eq1**2 +if x+1 = y then "equal" else "unequal" +eqpol := x+1 = y +if eqpol then "equal" else "unequal" +eqpol::Boolean +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/eqtbl.input.pamphlet b/src/input/eqtbl.input.pamphlet new file mode 100644 index 00000000..19aef945 --- /dev/null +++ b/src/input/eqtbl.input.pamphlet @@ -0,0 +1,28 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input EQTBL.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from EqTableXmpPage +)clear all + +e: EqTable(List Integer, Integer) := table() +l1 := [1,2,3] +l2 := [1,2,3] +e.l1 := 111 +e.l2 := 222 +e.l1 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/equation.input.pamphlet b/src/input/equation.input.pamphlet new file mode 100644 index 00000000..30b5cbb4 --- /dev/null +++ b/src/input/equation.input.pamphlet @@ -0,0 +1,148 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input equation.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> +-- +--To ease the use of equation (more user friendly applications) +--I have enhanced the datatype Equation to have more +--mathematical richness. +-- +--First of all now you can embed s from S to Equation S +--as s = s. +--This allows to easily manipulate equations bring terms +--from one side to the other by simply adding or multiplying +--or ... provided, that the equation domain inherits the +--structure of the underlying S. +-- +--So I went through the code saying +-- +--If S has BlaBla then BlaBla +-- +--for the most important structures, please suggest others +--if necessary, Steve, do we have a more general method in +--the new compiler rather than repeating all these +--definitions as +-- +--inv(eq) == inv lhs eq = inv rhs eq +-- +--?? +-- +-- +--Furthermore, we have function to put 0 or 1 on one side +--and factor the left hand side, after the right hand side +--is 0 and we have an IntegralDomain. +-- +--Please comment and test. +-- +--Johannes + + +eq1 := (-6*x**3+13*x**2+4)=(-x**4+12*x) +-- +-- +-- 3 2 4 +-- (1) - 6x + 13x + 4= - x + 12x +-- Type: Equation Polynomial Integer +-- Time: 1.61 (IN) + 1.47 (OT) = 3.08 sec +eq2 := x**4+13*x**2-12*x = 6*x**3-4 +-- +-- +-- 4 2 3 +-- (2) x + 13x - 12x= 6x - 4 +-- Type: Equation Polynomial Integer +-- Time: 0.16 (IN) + 0.11 (OT) = 0.27 sec +eq := eq1*y**2+eq2 +-- +-- +-- 3 2 2 4 2 4 2 3 +-- (3) (- 6x + 13x + 4)y + x + 13x - 12x= (- x + 12x)y + 6x - 4 +-- Type: Equation Polynomial Integer +-- Time: 0.26 (IN) + 0.01 (EV) + 0.01 (OT) + 1.54 (GC) = 1.82 sec +swap % +-- +-- +-- 4 2 3 3 2 2 4 2 +-- (4) (- x + 12x)y + 6x - 4= (- 6x + 13x + 4)y + x + 13x - 12x +-- Type: Equation Polynomial Integer +-- Time: 0.07 (OT) = 0.07 sec +% + 4 +-- +-- +-- 4 2 3 3 2 2 4 2 +-- (5) (- x + 12x)y + 6x = (- 6x + 13x + 4)y + x + 13x - 12x + 4 +-- Type: Equation Polynomial Integer +-- Time: 0.69 (IN) + 0.01 (OT) = 0.70 sec +%-6*x**3 +-- +-- +-- 4 2 3 2 2 4 3 2 +-- (6) (- x + 12x)y = (- 6x + 13x + 4)y + x - 6x + 13x - 12x + 4 +-- Type: Equation Polynomial Integer +-- Time: 0.19 (IN) + 0.01 (OT) = 0.20 sec +leftZero % +-- +-- +-- 4 3 2 2 4 3 2 +-- (7) 0= (x - 6x + 13x - 12x + 4)y + x - 6x + 13x - 12x + 4 +-- Type: Equation Polynomial Integer +-- Time: 0.01 (IN) + 0.05 (OT) = 0.06 sec +swap % +-- +-- +-- 4 3 2 2 4 3 2 +-- (8) (x - 6x + 13x - 12x + 4)y + x - 6x + 13x - 12x + 4= 0 +-- Type: Equation Polynomial Integer +-- Time: 0.01 (IN) = 0.01 sec +factor lhs % +-- +-- +-- 2 2 2 +-- (9) (x - 2) (x - 1) (y + 1) +-- Type: Factored Polynomial Integer +-- Time: 0.50 (IN) + 0.09 (EV) + 0.30 (OT) = 0.89 sec +factorAndSplit eq +-- +-- +-- 2 +-- (10) [x - 2= 0,x - 1= 0,y + 1= 0] +-- Type: List Equation Polynomial Integer +-- Time: 0.09 (EV) + 0.21 (OT) = 0.30 sec +inv (eq :: EQ FRAC POLY INT) +-- +-- +-- 1 1 +-- (11) - ------------------------------------= - ---------------------- +-- 3 2 2 4 2 4 2 3 +-- (6x - 13x - 4)y - x - 13x + 12x (x - 12x)y - 6x + 4 +-- Type: Equation Fraction Polynomial Integer +-- Time: 0.03 (IN) = 0.03 sec +- % +-- +-- +-- 1 1 +-- (12) ------------------------------------= ---------------------- +-- 3 2 2 4 2 4 2 3 +-- (6x - 13x - 4)y - x - 13x + 12x (x - 12x)y - 6x + 4 +-- Type: Equation Fraction Polynomial Integer +-- Time: 0.01 (IN) + 0.01 (OT) = 0.02 sec +-- +-- +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/equation2.input.pamphlet b/src/input/equation2.input.pamphlet new file mode 100644 index 00000000..2055a65a --- /dev/null +++ b/src/input/equation2.input.pamphlet @@ -0,0 +1,61 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input equation2.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page SystemOfPolynomialEquationPage +)clear all + +solve([3*x**3 + y + 1,y - 1],[x,y]) +solve([x**3 + x - y**2 + 4,x*y + 2],[x,y],"sym") +solve([x = y**2-19,y = z**2+x+3,z = 3*x],[x,y,z]) +solve([3*x + 2*y - z,x - 1/2*y + 1/3*z,4/5*x - 2/3*y - z]) +solve([x**2*y - 1,x*y**2 - 2],[x,y],.01) +solve([x**2/a = 1,a**2 - a*x = 0],[x,a],.001) +solve([x**2/a + a + y**3 - 1,a*y + a + 1],[x,y]) + +-- Input for page OnePolynomialEquationPage +)clear all + +solve(x**3 + 1 = 0,x) +solve(x**3*y + x*y + 1,x,"sym") +solve(3*x + 1/4*y = 1,x) +solve(x**4 - 10*x**3 + 35*x**2 - 50*x + 25,x,1/1000) +solve(x**4 - 10*x**3 + 35*x**2 - 50*x + 25,x,"sym") +solve(x**3 - sqrt(2)) +solve(x**3/a + x/a + 1,x) +solve(1/x**3 + 1/x**2 + 1/x = 0,x,"sym") + +-- Input for page OnePolynomialEquationPage +)clear all + +solve(x**3 + 1 = 0,x) +solve(x**3*y + x*y + 1,x,"sym") +solve(3*x + 1/4*y = 1,x) +solve(x**4 - 10*x**3 + 35*x**2 - 50*x + 25,x,1/1000) +solve(x**4 - 10*x**3 + 35*x**2 - 50*x + 25,x,"sym") +solve(x**3 - sqrt(2)) +solve(x**3/a + x/a + 1,x) +solve(1/x**3 + 1/x**2 + 1/x = 0,x,"sym") + +-- Input for page LinearEquationPage +)clear all + +solve([[1,1,1],[3,-2,1],[1,2,2]],[8,0,17]) +solve([[1,2,3],[2,3,4],[3,4,5]],[2,2,2]) +solve([[1,2,3],[2,3,4],[3,4,5]],[2,3,2]) +solve([[1,2,3],[2,3,4],[3,4,5]]) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/errortrap.input.pamphlet b/src/input/errortrap.input.pamphlet new file mode 100644 index 00000000..0a5416c9 --- /dev/null +++ b/src/input/errortrap.input.pamphlet @@ -0,0 +1,46 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input errortrap.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> +)clear all +-- examples that test the error traps when graphing functions + +draw(1/x, x = 0.0..2.0, adaptive == false) + +draw(asec x, x = -2..2, clip == [-2..2, -4..4]) + +draw(asin x, x = -2..2) + +draw(curve(cos(1/x), sin(1/x)), x = -2..2, adaptive == false) + +draw(curve(5*cos(x), 5*sin(x), asec(x)), x = -12..12) + +draw(curve(cos(x), sin(x), 1/x), x = 0.0..1.0) + +draw(asec(x*y), x = -2..2, y = -2..2) + +f(x,y) == asec(x)*asec(y) +draw(f, -2..2, -2..2) + +draw(surface(u*acsc(v), u*asec(v), v*acsc(u)), u=-2..2, v=-2..2) + +draw(curve(acsc(x), asec(x), x), x = -2..2, tubeRadius == .3) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/eval.input.pamphlet b/src/input/eval.input.pamphlet new file mode 100644 index 00000000..4cb9d679 --- /dev/null +++ b/src/input/eval.input.pamphlet @@ -0,0 +1,77 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input eval.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- This file demonstrate the various eval's available on EXPR, and the +-- handling of formal derivatives. +-- Lines starting with --** are comments indicating that the final syntax +-- will be different. + +)cl all +--** This line will be optional interactively, since the a := f(x**2) +--** will prompt you if you don't declare f this way. +f := operator 'f +a := f(x**2) +b := differentiate(a,x,2) + f 5 +-- This is the 'variable' evaluation, similar to what's available on +-- polynomials: +eval(b, x = x + y) +-- This is the 'kernel' evaluation, allowing you to specify special +-- values. Only the specified value f 5 is affected, not the others: +eval(b, f 5 = 1) +-- This is the 'operator' evaluation, allowing you to specify an actual +-- function for a formal one. ALL the values of f are affected. +--** will eventually use the +-> notation in the eval statement +foo(u:EXPR INT):EXPR INT == exp u +-- So what is b if f were the exponential function? +-- Notice that the formal derivatives will be computed properly now: +c := eval(b, 'f, foo) +-- We can also use that evaluation on 'system' operators, which allows +-- us to replace an actual function by a formal one: +oof(u:EXPR INT):EXPR INT == f u +eval(c, 'exp, oof) +-- It is also possible to give f a derivative without replacing it by +-- a 'concrete' function: +f'(u:EXPR INT):EXPR INT == f u +-- this will make f differentiate like an exponential: +derivative(f,f') +b +--** The coercion is needed to avoid an interpreter bug. +--** This will just be eval(b) eventually: +eval(b, x = x::(EXPR INT)) +differentiate(%, x) +-- This is the 'operator/power' evaluation: suppose that we know that +-- f squared is the exponential, but we do not want to replace f(u) by +-- sqrt(exp u). It is still possible to eliminate higher powers of f +-- in the following way: +a3 := a * a * a +foo +eval(a3,'f,2,foo) +-- Several 'operator' evaluations can be carried out simultaneously: +g := operator 'g +bar(u:EXPR INT):EXPR INT == sin(u) + cos(2*u) +a + g a +eval(%,['f,'g],[foo,bar]) +a3 + g a +-- The grand finale: by now the effect of the following should be clear: +eval(%,['f,'g],[2,1],[foo,bar]) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/evalex.input.pamphlet b/src/input/evalex.input.pamphlet new file mode 100644 index 00000000..a2d3bc7f --- /dev/null +++ b/src/input/evalex.input.pamphlet @@ -0,0 +1,33 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input evalex.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page PrefixEval +)clear all + +cos(2) + +-- Input for page PrefixEval +)clear all + +cos(2) + +-- Input for page InfixEval +)clear all + +2 + 3.4 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/exdiff.input.pamphlet b/src/input/exdiff.input.pamphlet new file mode 100644 index 00000000..4cb4c7fe --- /dev/null +++ b/src/input/exdiff.input.pamphlet @@ -0,0 +1,52 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input exdiff.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page ExDiffBasic +)clear all + +differentiate(sin(x) * exp(x**2),x) + +-- Input for page ExDiffSeveralVariables +)clear all + +differentiate(sin(x) * tan(y)/(x**2 + y**2),x) +differentiate(sin(x) * tan(y)/(x**2 + y**2),y) + +-- Input for page ExDiffMultipleI +)clear all + +differentiate(sin(x)/(x**2 + y**2),[x,y]) +differentiate(sin(x)/(x**2 + y**2),[x,y,y]) + +-- Input for page ExDiffMultipleII +)clear all + +differentiate(cos(z)/(x**2 + y**3),[x,y,z],[1,2,3]) + +-- Input for page ExDiffHigherOrder +)clear all + +differentiate(exp(x**2),x,4) + +-- Input for page ExDiffFormalIntegral +)clear all + +f := integrate(sqrt(1 + t**3),t) +differentiate(f,t) +differentiate(f * t**2,t) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/exint.input.pamphlet b/src/input/exint.input.pamphlet new file mode 100644 index 00000000..8701da89 --- /dev/null +++ b/src/input/exint.input.pamphlet @@ -0,0 +1,64 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input exint.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page ExIntRationalWithRealParameter +)clear all + +integrate(1/(x**2 + a),x) + +-- Input for page ExIntRationalFunction +)clear all + +integrate((x**2+2*x+1)/((x+1)**6+1),x) + +-- Input for page ExIntAlgebraicRelation +)clear all + +integrate(tan(atan(x)/3),x) + +-- Input for page ExIntRationalWithComplexParameter +)clear all + +complexIntegrate(1/(x**2 + a),x) + +-- Input for page ExIntNoSolution +)clear all + +integrate(log(1 + sqrt(a*x + b)) / x,x) + +-- Input for page ExIntTwoSimilarIntegrands +)clear all + +integrate(x**3 / (a+b*x)**(1/3),x) +integrate(1 / (x**3 * (a+b*x)**(1/3)),x) + +-- Input for page ExIntRadicalOfTranscendental +)clear all + +integrate((x + 1) / (x * (x + log x)**(3/2)),x) + +-- Input for page ExIntNonElementary +)clear all + +integrate(exp(-x**2) * erf(x) / (erf(x)**3 - erf(x)**2 - erf(x) + 1),x) + +-- Input for page ExIntTrig +)clear all + +integrate((sinh(1+sqrt(x+b))+2*sqrt(x+b))/(sqrt(x+b)*(x+cosh(1+sqrt(x+b)))),x) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/exit.input.pamphlet b/src/input/exit.input.pamphlet new file mode 100644 index 00000000..483802ee --- /dev/null +++ b/src/input/exit.input.pamphlet @@ -0,0 +1,33 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input EXIT.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from ExitXmpPage +)clear all + +n := 0 +gasp(): Exit == + free n + n := n + 1 + error "Oh no!" +half(k) == + if odd? k then gasp() + else k quo 2 +half 4 +half 3 +n +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/exlap.input.pamphlet b/src/input/exlap.input.pamphlet new file mode 100644 index 00000000..02c34f2b --- /dev/null +++ b/src/input/exlap.input.pamphlet @@ -0,0 +1,48 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input exlap.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page ExLapDefInt +)clear all + +laplace(2/t * (1 - cos(a*t)), t, s) + +-- Input for page ExLapExpExp +)clear all + +laplace((exp(a*t) - exp(b*t))/t, t, s) + +-- Input for page ExLapSpecial1 +)clear all + +laplace(exp(a*t+b)*ei(c*t), t, s) + +-- Input for page ExLapSpecial2 +)clear all + +laplace(a*ci(b*t) + c*si(d*t), t, s) + +-- Input for page ExLapTrigTrigh +)clear all + +laplace(sin(a*t) * cosh(a*t) - cos(a*t) * sinh(a*t), t, s) + +-- Input for page ExLapSimplePole +)clear all + +laplace(t**4 * exp(-a*t) / factorial(4), t, s) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/exlimit.input.pamphlet b/src/input/exlimit.input.pamphlet new file mode 100644 index 00000000..ff213435 --- /dev/null +++ b/src/input/exlimit.input.pamphlet @@ -0,0 +1,59 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input exlimit.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page ExLimitBasic +)clear all + +limit((x**2 - 3*x + 2)/(x**2 - 1),x = 1) + +-- Input for page ExLimitComplexInfinite +)clear all + +complexLimit((2 + z)/(1 - z),z = %infinity) +limit(sin(x)/x,x = %plusInfinity) +complexLimit(sin(x)/x,x = %infinity) + +-- Input for page ExLimitOneSided +)clear all + +limit(x * log(x),x = 0,"right") +limit(x * log(x),x = 0) + +-- Input for page ExLimitTwoSided +)clear all + +limit(sqrt(y**2)/y,y = 0) +limit(sqrt(1 - cos(t))/t,t = 0) + +-- Input for page ExLimitInfinite +)clear all + +limit(sqrt(3*x**2 + 1)/(5*x),x = %plusInfinity) +limit(sqrt(3*x**2 + 1)/(5*x),x = %minusInfinity) + +-- Input for page ExLimitParameter +)clear all + +limit(sinh(a*x)/tan(b*x),x = 0) + +-- Input for page ExLimitRealComplex +)clear all + +limit(z * sin(1/z),z = 0) +complexLimit(z * sin(1/z),z = 0) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/expexpan.input.pamphlet b/src/input/expexpan.input.pamphlet new file mode 100644 index 00000000..1cbd30bd --- /dev/null +++ b/src/input/expexpan.input.pamphlet @@ -0,0 +1,55 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input expexpan.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited MCMXCII. +@ +<<*>>= +<<license>> + +--% ExponentialExpansion +-- We compute exponential expansions and right hand limits. +-- Author: Clifton J. Williamson +-- Date Created: 27 August 1992 +-- Date Last Updated: 27 August 1992 +-- Keywords: Exponential expansion, limit, right-hand limit +-- References: + +xxp f == exprToXXP(f,true)$FS2EXPXP(INT,EXPR INT,x,0) + +f1 := (a**2 + 1) * exp(1/x**3 + 2/x**2) - exp(b) * exp(1/x**3 + 3/x**2) +x1 := xxp f1 +limitPlus x1 -- %minusInfinity + +f2 := (a**2 + 1) * exp(1/x**3 + 2/x**2) - exp(b) * exp(-1/x**3 + 3/x**2) +x2 := xxp f2 +limitPlus x2 -- %plusInfinity + +f3 := (a**2 + 1) * exp(1/x**3) - exp(b) * exp(c/x**2) +x3 := xxp f3 +limitPlus x3 -- %plusInfinity + +f4 := (a**2 + 1) * exp(-1/x**3) - exp(b) * exp(c/x**2) +x4 := xxp f4 +limitPlus x4 -- "failed" + +p5 := tan(x) * exp(1/x**2) - tan(x) * exp(1/x**2 - 1/x) + sin(x) * exp(1/x) +q5 := -4 * exp(-1/x**2 - 1/x) + sin(x) * exp(-1/x**2 + 1/x) +f5 := p5 / q5 +x5 := xxp f5 +limitPlus x5 -- %plusInfinity +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/explim.input.pamphlet b/src/input/explim.input.pamphlet new file mode 100644 index 00000000..cf3d73d6 --- /dev/null +++ b/src/input/explim.input.pamphlet @@ -0,0 +1,58 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input explim.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited MCMXCII. +@ +<<*>>= +<<license>> + +--% Limits involving essential singularities of the exponential function +-- Some of these limits were taken from bug reports submitted before additions +-- and changes were made to limit and related series packages. +-- Author: Clifton J. Williamson +-- Date Created: 27 August 1992 +-- Date Last Updated: 27 August 1992 +-- Keywords: limit, trigonometric function, inverse trigonometric function +-- References: + +)clear all + +limit(x/exp(x),x = %plusInfinity) -- 0 + +limit(x**10000/exp(x),x = %plusInfinity) -- 0 + +limit(x**(10**20)/exp(x),x = %plusInfinity) -- 0 + +limit(x**h/exp(x),x = %plusInfinity) -- 0 + +limit(x/exp(x),x = %minusInfinity) -- %minusInfinity + +limit(x**10000/exp(x),x = %minusInfinity) -- %plusInfinity + +limit(x**(10**20)/exp(x),x = %minusInfinity) -- %plusInfinity + +limit(x**h/exp(x),x = %minusInfinity) -- "failed" + +limit(exp(-x) * sinh(x),x = %plusInfinity) -- 1/2 + +limit(exp(-x) * cosh(x),x = %plusInfinity) -- 1/2 + +limit(exp(-x) * exp(x),x = %plusInfinity) -- 1 + +limit((x + 1)**(x + 1)/x**x - x**x/(x - 1)**(x - 1),x = %plusInfinity) -- %e +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/explot2d.input.pamphlet b/src/input/explot2d.input.pamphlet new file mode 100644 index 00000000..5681e6dd --- /dev/null +++ b/src/input/explot2d.input.pamphlet @@ -0,0 +1,38 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input explot2d.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page ExPlot2DPolar +)clear all + +draw(sin(4*t/7),t = 0..14*%pi,coordinates == polar) + +-- Input for page ExPlot2DAlgebraic +)clear all + +draw(solution(y**2 + y - (x**3 - x) = 0),x,y,clip == (-2..2,-2..1)) + +-- Input for page ExPlot2DFunctions +)clear all + +draw(sin(tan(x)) - tan(sin(x)),x = 0..6) + +-- Input for page ExPlot2DParametric +)clear all + +draw(curve(9 * sin(3*t/4),8 * sin(t)),t = -4*%pi..4*%pi) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/explot3d.input.pamphlet b/src/input/explot3d.input.pamphlet new file mode 100644 index 00000000..7f27d824 --- /dev/null +++ b/src/input/explot3d.input.pamphlet @@ -0,0 +1,35 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input explot3d.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page ExPlot3DParametricCurve +)clear all + +draw(curve(cos(t),sin(t),t),t=0..6) +draw(curve(t,t**2,t**3),t=-3..3) + +-- Input for page ExPlot3DParametricSurface +)clear all + +draw(surface(5*sin(u)*cos(v),4*sin(u)*sin(v),3*cos(u)),u=0..%pi,v=0..2*%pi) +draw(surface(u*cos(v),u*sin(v),u),u=0..4,v=0..2*%pi) + +-- Input for page ExPlot3DFunctions +)clear all + +draw(cos(x*y),x = -3..3,y = -3..3) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/expr.input.pamphlet b/src/input/expr.input.pamphlet new file mode 100644 index 00000000..297ee273 --- /dev/null +++ b/src/input/expr.input.pamphlet @@ -0,0 +1,58 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input expr.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +)clear all +foo := operator 'foo +bar := operator 'bar +g := foo x +eval(g, x = x**2 + 1) +-- chain rule can be applied formally +differentiate(%, x) +-- multivariate +f := bar(x, y) +-- parallel substitution is possible +eval(f, [x = y, y = x]) +[differentiate(f, x), differentiate(f, y)] +-- multivariate chain rule +ff := eval(f, [x = x**2 * foo y, y = x + y]) +differentiate(ff, x) +differentiate(ff, y) +-- let's create one with commuting partial derivatives +-- let's change the way bar is printed on the screen, make it #1 @ #2 +pbar(l:List OUTFORM):OUTFORM == infix(" @ "::SYMBOL::OUTFORM, l) +display(bar, pbar) +-- let's see the result +f +ff +-- back to normal +deleteProperty(bar, "%display") +f +-- let's give bar some partial derivatives, say bar(u, v) = u * v +bar1 l == last l +bar2 l == first l +derivative(bar, [bar1, bar2]$(LIST(LIST(EXPR INT) -> EXPR INT))) +[differentiate(f, x), differentiate(f, y)] +[differentiate(ff, x), differentiate(ff, y)] +-- some structural testing +h := inv(x + f + g**2) +isPower h +y * g**2 * h +isTimes % +isPlus(denom(h)::EXPR(INT)) +isExpt(inv(g**2), "foo") +isExpt(inv(g**2), "bar") +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/expr1.input.pamphlet b/src/input/expr1.input.pamphlet new file mode 100644 index 00000000..a0e43c34 --- /dev/null +++ b/src/input/expr1.input.pamphlet @@ -0,0 +1,45 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input EXPR.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from ExpressionXmpPage +)clear all + +sin(x) + 3*cos(x)**2 +tan(x) - 3.45*x +(tan sqrt 7 - sin sqrt 11)**2 / (4 - cos(x - y)) +log(exp x)@Expression(Integer) +log(exp x)@Expression(Complex Integer) +sqrt 3 + sqrt(2 + sqrt(-5)) +% :: Expression Integer +height mainKernel sin(x + 4) +e := (sin(x) - 4)**2 / ( 1 - 2*y*sqrt(- y) ) +numer e +denom e +D(e, x) +D(e, [x, y], [1, 2]) +complexNumeric(cos(2 - 3*%i)) +numeric(tan 3.8) +e2 := cos(x**2 - y + 3) +e3 := asin(e2) - %pi/2 +e3 :: Polynomial Integer +e3 :: DMP([x, y], Integer) +sin %pi +cos(%pi / 4) +tan(x)**6 + 3*tan(x)**4 + 3*tan(x)**2 + 1 +simplify % +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/exprode.input.pamphlet b/src/input/exprode.input.pamphlet new file mode 100644 index 00000000..0b9ce0c6 --- /dev/null +++ b/src/input/exprode.input.pamphlet @@ -0,0 +1,49 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input exprode.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +)clear all +)set streams calculate 7 + +-- We will solve y''' = sin(y'') * exp(y) + cos(x) +-- subject to y(0) = 1, y'(0) = 0, y''(0) = 0 + +y := operator 'y + +eq := differentiate(y x, x, 3) - sin differentiate(y x, x, 2) * exp y x + = cos x + +seriesSolve(eq, y, x = 0, [1, 0, 0]) + +-- Airy, isn't it? +airy := differentiate(y x, x, 2) - x * y x + +seriesSolve(airy, y, x = 0, [a0, a1]) + +-- We can solve around other points than x = 0 +seriesSolve(airy, y, x = 1, [a0, a1]) + +-- System of equations for tan(t) and sec(t) +x := operator 'x +eq1 := differentiate(x t, t) = 1 + x(t)**2 +eq2 := differentiate(y t, t) = x(t) * y(t) +seriesSolve([eq2, eq1], [x, y], t = 0, [y 0 = 1, x 0 = 0]) + +-- System of equations for a damped pendulum of mass and length 1: +eq1 := differentiate(x t, t) = y t +eq2 := differentiate(y t, t) = - g * sin(x t) - c * y t +seriesSolve([eq1, eq2], [x, y], t = 0, [y 0 = a, x 0 = b]) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/exprpoly.input.pamphlet b/src/input/exprpoly.input.pamphlet new file mode 100644 index 00000000..08016c71 --- /dev/null +++ b/src/input/exprpoly.input.pamphlet @@ -0,0 +1,69 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input exprpoly.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- This file test coercing objects of type Expression to various +-- polynomial types and back. + +)clear all + +-- Start with a simple expression involving variables + +a := sin(i)*x**2 - y*x*sin(j) + +-- Coerce it to various multivariate polynomial types + +a :: DMP([x,y], EXPR INT) +leadingCoefficient % + +a :: HDMP([x,y], EXPR INT) +a :: MPOLY([x,y], EXPR INT) +a :: MPOLY([y,x], EXPR INT) + +-- Coerce it back to type Expression + +% :: EXPR INT +a - % + +-- Coerce the expression to various univariate polynomial types + +a :: UP(x, EXPR INT) +a :: UP(y, EXPR INT) +a :: UP(y, UP(x, EXPR INT)) + +-- Coerce it back to type Expression + +% :: EXPR INT +a - % + +-- We needn't have had such a complicated expression. The following is +-- really just a multivariate polynomial. + +b : EXPR INT := (x - 2*y + 3*z)**3 + +b :: DMP([x,y,z], Integer) +b :: HDMP([y,x,z], Integer) +b - (% :: EXPR INT) +b :: MPOLY([z,y,x], Integer) + +b :: UP(y, HDMP([x,z], Integer)) +b - (% :: EXPR INT) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/exseries.input.pamphlet b/src/input/exseries.input.pamphlet new file mode 100644 index 00000000..cc027325 --- /dev/null +++ b/src/input/exseries.input.pamphlet @@ -0,0 +1,43 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input exseries.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page ExSeriesSubstitution +)clear all + +f := taylor(exp(x)) +eval(f,1.0) + +-- Input for page ExSeriesConvert +)clear all + +series(sin(a*x),x = 0) +series(sin(a*x),a = %pi/4) + +-- Input for page ExSeriesFunctions +)clear all + +f := series(1/(1-x),x = 0) +g := log(f) +exp(g) + +-- Input for page ExSeriesManipulate +)clear all + +f := series(1/(1-x),x = 0) +f ** 2 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/exsum.input.pamphlet b/src/input/exsum.input.pamphlet new file mode 100644 index 00000000..a1ce9798 --- /dev/null +++ b/src/input/exsum.input.pamphlet @@ -0,0 +1,63 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input exsum.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page ExSumGeneralFunction +)clear all + +sum(k * x**k,k = 1..n) + +-- Input for page ExSumInfinite +)clear all + +limit( sum(1/(k * (k + 2)),k = 1..n) ,n = %plusInfinity) + +-- Input for page ExSumClosedForm +)clear all + +s := sum(k**2,k = a..b) +eval(s,[a,b],[1,25]) +reduce(+,[i**2 for i in 1..25]) + +-- Input for page ExSumPolynomial +)clear all + +sum(3*k**2/(c**2 + 1) + 12*k/d,k = (3*a)..(4*b)) + +-- Input for page ExSumListEntriesI +)clear all + +[1..15] +reduce(+,[1..15]) + +-- Input for page ExSumApproximateE +)clear all + +reduce(+,[1.0/factorial(n) for n in 0..20]) + +-- Input for page ExSumListEntriesII +)clear all + +[n**2 for n in 5..20] +reduce(+,[n**2 for n in 5..20]) + +-- Input for page ExSumCubes +)clear all + +sum(k**3,k = 1..n) +sum(k,k = 1..n) ** 2 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f01brf.input.pamphlet b/src/input/f01brf.input.pamphlet new file mode 100644 index 00000000..99ee204e --- /dev/null +++ b/src/input/f01brf.input.pamphlet @@ -0,0 +1,64 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f01brf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +n:=6 +nz:=15 +licn:=150 +lirn:=75 +pivot:=0.1 +lblock:=true +grow:=true +abort:=[true ,true ,false ,true ] +a:Matrix SF:= + [[5 ,2 ,-1 ,2 ,3 ,-2 ,1 ,1 ,-1 ,-1 ,2 ,-3 ,-1 ,-1 ,6_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ]] +irn:Matrix Integer:= + [[1 ,2 ,2 ,2 ,3 ,4 ,4 ,4 ,5 ,5 ,5 ,5 ,6 ,6 ,6_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ]] +icn:Matrix Integer:= + [[1 ,2 ,3 ,4 ,3 ,1 ,4 ,5 ,1 ,4 ,5 ,6 ,1 ,2 ,6_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ]] +ifail:= 110 +result:=f01brf(n,nz,licn,lirn,pivot,lblock,grow,abort,a,irn,icn,ifail) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f01bsf.input.pamphlet b/src/input/f01bsf.input.pamphlet new file mode 100644 index 00000000..a4401b49 --- /dev/null +++ b/src/input/f01bsf.input.pamphlet @@ -0,0 +1,59 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f01bsf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +n := 6 +nz := 15 +nzmax := 50 +licn := 3*nzmax +ta1:List SF := new(licn-nz,0.0); +ta2:List SF := [5.,2.,-1.,2.,3.,-2.,1.,1.,-1.,-1.,2.,-3.,-1.,-1.,6.] ; +ta3 := concat(ta2,ta1); +a :Matrix SF := matrix [ta3] +lirn := (3*nzmax/2)::Integer +tr1:List Integer := new(lirn-nz,0); +tr2 := [1,2,2,2,3,4,4,4,5,5,5,5,6,6,6]; +tr3 := concat(tr2,tr1); +irn := matrix[tr3] +tc1:List Integer := new(licn-nz,0); +tc2 := [1,2,3,4,3,1,4,5,1,4,5,6,1,2,6]; +tc3 := concat(tc2,tc1); +icn := matrix [tc3] +pivot :SF:= 0.1 +lblock := true +grow := true +abort := [true,true,false,true] +ifail := 110 +f01brfResult:=f01brf(n,nz,licn,lirn,pivot,lblock,grow,abort,a,irn,icn,ifail); +eta :SF:= .1 -- now run f01bsf +abort := true +keep := f01brfResult.'ikeep; +disp := f01brfResult.'idisp; +cn := f01brfResult.'icn; +ta2:=[10.,12.,-3.,-1.,15.,-2.,10.,-1.,-1.,-5.,1.,-1.,-1.,-2.,6.]; +a:= matrix [concat (ta2,ta1)] +result:=f01bsf(n,nz,licn,matrix [tr2],matrix [tc2],cn,keep,grow,eta,abort,_ +matrix [[disp(1,1),disp(1,2)]],a,ifail) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f01maf.input.pamphlet b/src/input/f01maf.input.pamphlet new file mode 100644 index 00000000..7dcc4656 --- /dev/null +++ b/src/input/f01maf.input.pamphlet @@ -0,0 +1,56 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f01maf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +n:=16 +nz:=40 +licn:=90 +lirn:=50 +abort:=[true ,true ,true ] +avals:Matrix SF:= + [[1.0 ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 ,1.0_ + ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 ,-0.25 ,-0.25 ,-0.25 ,-0.25 ,-0.25_ + ,-0.25 ,-0.25 ,-0.25 ,-0.25 ,-0.25 ,-0.25 ,-0.25 ,-0.25_ + ,-0.25 ,-0.25 ,-0.25 ,-0.25 ,-0.25 ,-0.25 ,-0.25 ,-0.25 ,-0.25_ + ,-0.25 ,-0.25 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ]] +irn:Matrix Integer:= + [[1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14_ + ,15 ,16 ,1 ,2 ,3 ,5 ,6 ,7 ,9 ,10 ,11 ,13 ,14_ + ,15 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ]] +icn:Matrix Integer:= + [[1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14_ + ,15 ,16 ,2 ,3 ,4 ,6 ,7 ,8 ,10 ,11 ,12 ,14 ,15 ,16_ + ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0_ + ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ]] +droptl:= 0.1 +densw:= 0.8 +ifail:=111 +result:=f01maf(n,nz,licn,lirn,abort,avals,irn,icn,droptl,densw,ifail) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f01mcf.input.pamphlet b/src/input/f01mcf.input.pamphlet new file mode 100644 index 00000000..46b65cf4 --- /dev/null +++ b/src/input/f01mcf.input.pamphlet @@ -0,0 +1,34 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f01mcf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +n:=6 +avals:Matrix SF:= + [[1.0 ,2.0 ,5.0 ,3.0 ,13.0 ,16.0 ,5.0 ,14.0_ + ,18.0 ,8.0 ,55.0 ,24.0 ,17.0 ,77.0 ]] +lal:= 14 +nrow:Matrix Integer:= [[1 ,2 ,2 ,1 ,5 ,3 ]] +result:=f01mcf(n,avals,lal,nrow,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f01qcf.input.pamphlet b/src/input/f01qcf.input.pamphlet new file mode 100644 index 00000000..2550384d --- /dev/null +++ b/src/input/f01qcf.input.pamphlet @@ -0,0 +1,37 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f01qcf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +m:=5 +n:=3 +lda:=5 +a:Matrix SF:= + [[2.0 ,2.5 ,2.5 ],_ + [2.0 ,2.5 ,2.5 ],_ + [1.6 ,-0.4 ,2.8 ],_ + [2.0 ,-0.5 ,0.5 ],_ + [1.2 ,-0.3 ,-2.9 ]] +result:=f01qcf(m,n,lda,a,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f01qdf.input.pamphlet b/src/input/f01qdf.input.pamphlet new file mode 100644 index 00000000..f85cc77e --- /dev/null +++ b/src/input/f01qdf.input.pamphlet @@ -0,0 +1,49 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f01qdf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +trans:="n" +wheret:="i" +m:=5 +n:=3 +a:Matrix SF:= + [[2.0 ,2.5 ,2.5 ],_ + [2.0 ,2.5 ,2.5 ],_ + [1.6 ,-0.4 ,2.8 ],_ + [2.0 ,-0.5 ,0.5 ],_ + [1.2 ,-0.3 ,-2.9 ]] +lda:=5 +zeta:Matrix SF:= + [[0.0 ,0.0 ,0.0 ]] +ncolb:=2 +ldb:=5 +b:Matrix SF:= + [[1.1 ,0.0 ],_ + [0.9 ,0.0 ],_ + [0.6 ,1.32 ],_ + [0.0 ,1.1 ],_ + [-0.8 ,-0.26 ]] +result:=f01qdf(trans,wheret,m,n,a,lda,zeta,ncolb,ldb,b,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f01qef.input.pamphlet b/src/input/f01qef.input.pamphlet new file mode 100644 index 00000000..79798c44 --- /dev/null +++ b/src/input/f01qef.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f01qef.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +wheret:="s" +m:=5 +n:=3 +ncolq:=5 +lda:=5 +zeta:Matrix SF:= + [[1.2247 ,1.1547 ,1.2649 ]] +a:Matrix SF:= + [[-4.0 ,-2.0 ,-3.0 ,0.0 ,0.0 ],_ + [0.4085 ,-3.0 ,-2.0 ,0.0 ,0.0 ],_ + [0.3266 ,-0.4619 ,-4.0 ,0.0 ,0.0 ],_ + [0.4082 ,-0.5774 ,0.0 ,0.0 ,0.0 ],_ + [0.2449 ,-0.3464 ,-0.6326 ,0.0 ,0.0 ]] +result:=f01qef(wheret,m,n,ncolq,lda,zeta,a,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f01rcf.input.pamphlet b/src/input/f01rcf.input.pamphlet new file mode 100644 index 00000000..01144b37 --- /dev/null +++ b/src/input/f01rcf.input.pamphlet @@ -0,0 +1,37 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f01rcf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +m:=5 +n:=3 +lda:=5 +a:Matrix Complex SF:= + [[complex(0,0.5) ,complex(-0.5,1.5),complex(-1.0,1.0)],_ + [complex(0.4,0.3),complex(0.9,1.3),complex(0.2,1.4) ],_ + [complex(0.4,0), complex(-0.4,0.4),complex(1.8,0)],_ + [complex(0.3,-0.4),complex(0.1,0.7),complex(0,0)],_ + [complex(0,-0.3),complex(0.3,0.3),complex(0,2.4) ]] +result:=f01rcf(m,n,lda,a,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f01rdf.input.pamphlet b/src/input/f01rdf.input.pamphlet new file mode 100644 index 00000000..d4187715 --- /dev/null +++ b/src/input/f01rdf.input.pamphlet @@ -0,0 +1,49 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f001rdf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +trans:="n" +wheret:="i" +m:=5 +n:=3 +a:Matrix Complex SF:= + [[ 0.5*%i ,-0.5 + 1.5*%i ,-1.0 + 1.0*%i ],_ + [0.4 + 0.3*%i , 0.9 + 1.3*%i , 0.2 + 1.4*%i ],_ + [0.4 ,-0.4 + 0.4*%i , 1.8 ],_ + [0.3 - 0.4*%i , 0.1 + 0.7*%i , 0.0 ],_ + [ -0.3*%i , 0.3 + 0.3*%i , 2.4 ]] +lda:=5 +theta:Matrix Complex SF:= + [[0.0 ,0.0 ,0.0 ]] +ncolb:=2 +ldb:=5 +b:Matrix Complex SF := + [[-0.55 + 1.05*%i , 0.45 + 1.05*%i ],_ + [ 0.49 + 0.93*%i , 1.09 + 0.13*%i ],_ + [ 0.56 - 0.16*%i , 0.64 + 0.16*%i ],_ + [ 0.39 + 0.23*%i ,-0.39 - 0.23*%i ],_ + [ 1.13 + 0.83*%i ,-1.13 + 0.77*%i ]] +result:=f01rdf(trans,wheret,m,n,a,lda,theta,ncolb,ldb,b,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f01ref.input.pamphlet b/src/input/f01ref.input.pamphlet new file mode 100644 index 00000000..5a66fd53 --- /dev/null +++ b/src/input/f01ref.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f01ref.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +wheret:="s" +m:=5 +n:=3 +ncolq:=2 +lda:=5 +theta:Matrix Complex SF:= + [[1 + 0.5*%i ,1.0954-0.3333*%i ,1.2649-1.1565*%i ]] +a:Matrix Complex SF := + [[ 1 , 1 +1 *%i , 1 + %i ],_ + [-0.2 - 0.4*%i ,-2 ,-1 - %i ],_ + [-0.32 - 0.16*%i,-0.3505 +0.2629*%i ,-3 ],_ + [-0.4 + 0.2*%i , 0.5477*%i , 0.0 ],_ + [-0.12 + 0.24*%i, 0.1972 +0.2629*%i , 0.6325 ]] +result:=f01ref(wheret,m,n,ncolq,lda,theta,a,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f02aaf.input.pamphlet b/src/input/f02aaf.input.pamphlet new file mode 100644 index 00000000..3f7d1e5d --- /dev/null +++ b/src/input/f02aaf.input.pamphlet @@ -0,0 +1,35 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f02aaf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +ia:=4 +n:=4 +a:Matrix SF:= + [[ 0.5 , 0.0 , 2.3 ,-2.6 ],_ + [ 0.0 , 0.5 ,-1.4 ,-0.7 ],_ + [ 2.3 ,-1.4 , 0.5 , 0.0 ],_ + [-2.6 ,-0.7 , 0.0 , 0.5 ]] +result:=f02aaf(ia,n,a,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f02abf.input.pamphlet b/src/input/f02abf.input.pamphlet new file mode 100644 index 00000000..e71bec6e --- /dev/null +++ b/src/input/f02abf.input.pamphlet @@ -0,0 +1,36 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f02abf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +a:Matrix SF:= + [[ 0.5 , 0.0 , 2.3 ,-2.6 ],_ + [ 0.0 , 0.5 ,-1.4 ,-0.7 ],_ + [ 2.3 ,-1.4 , 0.5 , 0.0 ],_ + [-2.6 ,-0.7 , 0.0 , 0.5 ]] +ia:=4 +n:=4 +iv:=4 +result:=f02abf(a,ia,n,iv,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f02adf.input.pamphlet b/src/input/f02adf.input.pamphlet new file mode 100644 index 00000000..ce8c7891 --- /dev/null +++ b/src/input/f02adf.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f02adf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +ia:=4 +ib:=4 +n:=4 +a:Matrix SF:= + [[0.5 , 1.5 , 6.6 , 4.8 ],_ + [1.5 , 6.5 ,16.2 , 8.6 ],_ + [6.6 ,16.2 ,37.6 , 9.8 ],_ + [4.8 , 8.6 , 9.8 ,-17.1 ]] +b:Matrix SF:= + [[1 , 3 , 4 , 1 ],_ + [3 ,13 ,16 ,11 ],_ + [4 ,16 ,24 ,18 ],_ + [1 ,11 ,18 ,27 ]] +result:=f02adf(ia,ib,n,a,b,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f02aef.input.pamphlet b/src/input/f02aef.input.pamphlet new file mode 100644 index 00000000..f7abb236 --- /dev/null +++ b/src/input/f02aef.input.pamphlet @@ -0,0 +1,42 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f02aef.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +ia:=4 +ib:=4 +n:=4 +iv:=4 +a:Matrix SF:= + [[0.5 , 1.5 , 6.6 , 4.8 ],_ + [1.5 , 6.5 ,16.2 , 8.6 ],_ + [6.6 ,16.2 ,37.6 , 9.8 ],_ + [4.8 , 8.6 , 9.8 ,-17.1 ]] +b:Matrix SF:= + [[1 , 3 , 4 , 1 ],_ + [3 ,13 ,16 ,11 ],_ + [4 ,16 ,24 ,18 ],_ + [1 ,11 ,18 ,27 ]] +result:=f02aef(ia,ib,n,iv,a,b,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f02aff.input.pamphlet b/src/input/f02aff.input.pamphlet new file mode 100644 index 00000000..ca9407aa --- /dev/null +++ b/src/input/f02aff.input.pamphlet @@ -0,0 +1,35 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f02aff.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +ia:=4 +n:=4 +a:Matrix SF:= + [[ 1.5 ,0.1 , 4.5 ,-1.5 ],_ + [-22.5 ,3.5 ,12.5 ,-2.5 ],_ + [ -2.5 ,0.3 , 4.5 ,-2.5 ],_ + [ -2.5 ,0.1 , 4.5 , 2.5 ]] +result:=f02aff(ia,n,a,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f02agf.input.pamphlet b/src/input/f02agf.input.pamphlet new file mode 100644 index 00000000..e8b40b40 --- /dev/null +++ b/src/input/f02agf.input.pamphlet @@ -0,0 +1,37 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f02agf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +ia:=4 +n:=4 +ivr:=4 +ivi:=4 +a:Matrix SF:= + [[ 1.5 ,0.1 , 4.5 ,-1.5 ],_ + [-22.5 ,3.5 ,12.5 ,-2.5 ],_ + [ -2.5 ,0.3 , 4.5 ,-2.5 ],_ + [ -2.5 ,0.1 , 4.5 , 2.5 ]] +result:=f02agf(ia,n,ivr,ivi,a,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f02ajf.input.pamphlet b/src/input/f02ajf.input.pamphlet new file mode 100644 index 00000000..899edd24 --- /dev/null +++ b/src/input/f02ajf.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f02ajf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +iar:=4 +iai:=4 +n:=4 +ar:Matrix SF:= + [[-21.0 , 0.0 ,13.6 ,0.0 ],_ + [ 0.0 ,26.0 , 7.5 ,2.5 ],_ + [ -2.0 , 1.68, 4.5 ,1.5 ],_ + [ 0.0 ,-2.6 ,-2.7 ,2.5 ]] +ai:Matrix SF:= + [[-5.0 ,24.6 , 10.2 ,4.0 ],_ + [22.5 ,-5.0 , -10.0 ,0.0 ],_ + [ 1.5 , 2.24 ,-5.0 , 2.0 ],_ + [-2.5 , 0.0 , 3.6 ,-5.0 ]] +result:=f02ajf(iar,iai,n,ar,ai,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f02akf.input.pamphlet b/src/input/f02akf.input.pamphlet new file mode 100644 index 00000000..9fa3e03e --- /dev/null +++ b/src/input/f02akf.input.pamphlet @@ -0,0 +1,43 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f02akf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +iar:=4 +iai:=4 +n:=4 +ivr:=4 +ivi:=4 +ar:Matrix SF:= + [[-21.0 , 0.0 ,13.6 ,0.0 ],_ + [ 0.0 ,26.0 , 7.5 ,2.5 ],_ + [ -2.0 , 1.68 ,4.5 ,1.5 ],_ + [ 0.0 ,-2.6 ,-2.7 ,2.5 ]] +ai:Matrix SF:= + [[-5.0 ,24.6 ,10.2 , 4.0 ],_ + [22.5 ,-5.0 ,-10.0 , 0.0 ],_ + [ 1.5 , 2.24 ,-5.0 , 2.0 ],_ + [-2.5 , 0.0 , 3.6 ,-5.0 ]] +result:=f02akf(iar,iai,n,ivr,ivi,ar,ai,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f02awf.input.pamphlet b/src/input/f02awf.input.pamphlet new file mode 100644 index 00000000..d5dc21fd --- /dev/null +++ b/src/input/f02awf.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f02awf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +iar:=4 +iai:=4 +n:=4 +ar:Matrix SF:= + [[0.5 , 0.0 , 1.84 , 2.08 ],_ + [0.0 , 0.5 , 1.12 ,-0.56 ],_ + [1.84 , 1.12 ,0.5 , 0.0 ],_ + [2.08 ,-0.56 ,0.0 , 0.5 ]] +ai:Matrix SF:= + [[ 0.0 , 0.0 , 1.38 ,-1.56 ],_ + [ 0.0 , 0.0 , 0.84 , 0.42 ],_ + [-1.38 ,-0.84 ,0.0 , 0.0 ],_ + [ 1.56 ,-0.42 ,0.0 , 0.0 ]] +result:=f02awf(iar,iai,n,ar,ai,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f02axf.input.pamphlet b/src/input/f02axf.input.pamphlet new file mode 100644 index 00000000..7945d742 --- /dev/null +++ b/src/input/f02axf.input.pamphlet @@ -0,0 +1,43 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f02axf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +ar:Matrix SF:= + [[0.5 ,0.0 ,1.84 ,2.08 ],_ + [0.0 ,0.5 ,1.12 ,-0.56 ],_ + [1.84 ,1.12 ,0.5 ,0.0 ],_ + [2.08 ,-0.56 ,0.0 ,0.5 ]] +iar:=4 +ai:Matrix SF:= + [[0.0 ,0.0 ,1.38 ,-1.56 ],_ + [0.0 ,0.0 ,0.84 ,0.42 ],_ + [-1.38 ,-0.84 ,0.0 ,0.0 ],_ + [1.56 ,-0.42 ,0.0 ,0.0 ]] +iai:=4 +n:=4 +ivr:=4 +ivi:=4 +result:=f02axf(ar,iar,ai,iai,n,ivr,ivi,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f02bbf.input.pamphlet b/src/input/f02bbf.input.pamphlet new file mode 100644 index 00000000..4324255c --- /dev/null +++ b/src/input/f02bbf.input.pamphlet @@ -0,0 +1,39 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f02bbf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +ia:=4 +n:=4 +alb:=-2.0 +ub:=3.0 +m:=3 +iv:=4 +a:Matrix SF:= + [[0.5 ,0.0 ,2.3 ,-2.6 ],_ + [0.0 ,0.5 ,-1.4 ,-0.7 ],_ + [2.3 ,-1.4 ,0.5 ,0.0 ],_ + [-2.6 ,-0.7 ,0.0 ,0.5 ]] +result:=f02bbf(ia,n,alb,ub,m,iv,a,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f02bjf.input.pamphlet b/src/input/f02bjf.input.pamphlet new file mode 100644 index 00000000..a2b26722 --- /dev/null +++ b/src/input/f02bjf.input.pamphlet @@ -0,0 +1,44 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f02bjf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +n:=4 +ia:=4 +ib:=4 +eps1:SF:=1.0e-4 +matv:=true +iv:=4 +a:Matrix SF:= + [[3.9 ,12.5 ,-34.5 ,-0.5 ],_ + [4.3 ,21.5 ,-47.5 ,7.5 ],_ + [4.3 ,21.5 ,-43.5 ,3.5 ],_ + [4.4 ,26.0 ,-46.0 ,6.0 ]] +b:Matrix SF:= + [[1 ,2 ,-3 ,1 ],_ + [1 ,3 ,-5 ,4 ],_ + [1 ,3 ,-4 ,3 ],_ + [1 ,3 ,-4 ,4 ]] +result:=f02bjf(n,ia,ib,eps1,matv,iv,a,b,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f02fjf.input.pamphlet b/src/input/f02fjf.input.pamphlet new file mode 100644 index 00000000..39adade5 --- /dev/null +++ b/src/input/f02fjf.input.pamphlet @@ -0,0 +1,74 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f02fjf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +n : Integer := 16; +k : Integer := 6 +tol : DoubleFloat := 0.0001 +novecs : Integer := 0 +nrx : Integer := n +lwork : Integer := 86 +lrwork : Integer := 1; +liwork : Integer := 1; +noits : Integer := 1000 +m : Integer := 4; +x :Matrix SF:=new(nrx,k,0.0); +ifail : Integer := -1 +a :Matrix FRAC INT:= new(n,n,0); +a(1,1) := 1; +a(1,2) := -1/4; +a(1,5) := -1/4; +for i in 2..4 repeat + a(i,i-1) := -1/4 + a(i,i) := 1 + a(i,i+1) := -1/4 + a(i,i+4) := -1/4 +for i in 5..n-4 repeat + a(i,i-4) := -1/4 + a(i,i-1) := -1/4 + a(i,i) := 1 + a(i,i+1) := -1/4 + a(i,i+4) := -1/4 +for i in n-3..n-1 repeat + a(i,i-4) := -1/4 + a(i,i-1) := -1/4 + a(i,i) := 1 + a(i,i+1) := -1/4 +a(16,16) := 1; +a(16,15) := -1/4; +a(16,12) := -1/4; +b:Matrix FRAC INT:= new(n,n,0); +b(1,1) := 1 +b(1,2) := -1/2 +for i in 2..n-1 repeat + b(i,i-1) := -1/2 + b(i,i) := 1 + b(i,i+1) := -1/2 +b(16,15) := -1/2 +b(16,16) := 1 +c : Matrix MachineFloat := (inverse (a))*b; +bb := b :: Matrix MachineFloat +result:=f02fjf(n,k,tol,novecs,nrx,lwork,lrwork,liwork,m,noits,x,ifail,bb :: ASP27('DOT),c :: ASP28('IMAGE)) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f02wef.input.pamphlet b/src/input/f02wef.input.pamphlet new file mode 100644 index 00000000..766de155 --- /dev/null +++ b/src/input/f02wef.input.pamphlet @@ -0,0 +1,46 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f02wef.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +m := 5 +n := 3 +a : Matrix SF:= + [[ 2.0, 2.5, 2.5],_ + [ 2.0, 2.5, 2.5],_ + [ 1.6,-0.4, 2.8],_ + [ 2.0,-0.5, 0.5],_ + [ 1.2,-0.3,-2.9] ] +lda := m +ncolb := 1 +b : Matrix SF:= + [[ 1.1, 0.9, 0.6, 0.0, -0.8 ]] +ldb := 5 +wantq := true +wantp := true +ldq := 1 +ldpt := n +ifail := -1 +result:=f02wef(m,n,lda,ncolb,ldb,wantq,ldq,wantp,ldpt,a,b,ifail) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f02xef.input.pamphlet b/src/input/f02xef.input.pamphlet new file mode 100644 index 00000000..da92652f --- /dev/null +++ b/src/input/f02xef.input.pamphlet @@ -0,0 +1,49 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f02xef.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +m:=5 +n:=3 +lda:=5 +ncolb:=1 +ldb:=5 +wantq:=true +ldq:=5 +wantp:=true +ldph:=3 +a:Matrix Complex SF:= + [[0.5*%i ,-0.5 + 1.5*%i ,-1 + 1*%i ],_ + [0.4 + 0.3*%i ,0.9 + 1.3*%i ,0.2 + 1.4*%i ],_ + [0.4 ,-0.4 + 0.4*%i ,1.8 ],_ + [0.3 - 0.4*%i ,0.1 + 0.7*%i ,0.0 ],_ + [-0.3*%i ,0.3 + 0.3*%i ,2.4*%i ]] +b:Matrix Complex SF:= + [[-0.55+1.05*%i ],_ + [0.49+0.93*%i ],_ + [0.56-0.16*%i ],_ + [0.39+0.23*%i ],_ + [1.13+0.83*%i ]] +result:=f02xef(m,n,lda,ncolb,ldb,wantq,ldq,wantp,ldph,a,b,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f04adf.input.pamphlet b/src/input/f04adf.input.pamphlet new file mode 100644 index 00000000..13a702ce --- /dev/null +++ b/src/input/f04adf.input.pamphlet @@ -0,0 +1,39 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f04adf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +ia:=3 +b:Matrix Complex SF:= + [[1 ,0 ,0 ]] +ib:=3 +n:=3 +m:=1 +ic:=3 +a:Matrix Complex SF:= + [[1,1 + 2*%i,2 + 10*%i],_ + [1 + %i,3*%i,-5 + 14*%i],_ + [1 + %i,5*%i,-8 + 20*%i]] +result:=f04adf(ia,b,ib,n,m,ic,a,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f04arf.input.pamphlet b/src/input/f04arf.input.pamphlet new file mode 100644 index 00000000..527fa4f2 --- /dev/null +++ b/src/input/f04arf.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f04arf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cle all +showArrayValues true +showScalarValues true + +ia:=8 +b:Matrix SF:= + [[-359 ,281 ,85 ]] +n:=3 +a:Matrix SF:= + [[33,16,72],_ + [-24,-10,-57],_ + [-8,-4,-17],_ + [0,0,0], + [0,0,0],_ + [0,0,0],_ + [0,0,0],_ + [0,0,0]] +result:=f04arf(ia,b,n,a,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f04asf.input.pamphlet b/src/input/f04asf.input.pamphlet new file mode 100644 index 00000000..4057966f --- /dev/null +++ b/src/input/f04asf.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f02asf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +ia:=8 +b:Matrix SF:= + [[23 ,32 ,33 ,31 ]] +n:=4 +a:Matrix SF:= + [[5,7,6,5],_ + [7,10,8,7],_ + [6,8,10,9],_ + [5,7,9,10],_ + [0,0,0,0],_ + [0,0,0,0],_ + [0,0,0,0],_ + [0,0,0,0]] +result:=f04asf(ia,b,n,a,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f04atf.input.pamphlet b/src/input/f04atf.input.pamphlet new file mode 100644 index 00000000..226eb2f3 --- /dev/null +++ b/src/input/f04atf.input.pamphlet @@ -0,0 +1,42 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f04atf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +a:Matrix SF:= + [[33,16,72],_ + [-24,-10,-57],_ + [-8,-4,-17],_ + [0,0,0],_ + [0,0,0],_ + [0,0,0],_ + [0,0,0],_ + [0,0,0]] +ia:=8 +b:Matrix SF:= + [[-359 ,281 ,85 ]] +n:=3 +iaa:=8 +result:=f04atf(a,ia,b,n,iaa,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f04axf.input.pamphlet b/src/input/f04axf.input.pamphlet new file mode 100644 index 00000000..71c97815 --- /dev/null +++ b/src/input/f04axf.input.pamphlet @@ -0,0 +1,57 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f04axf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +n := 6 +nz := 15 +nzmax := 50 +licn := 3*nzmax +t1 := [0.0 for i in 1..(licn-nz)] +t2 := [5.0,2.0,-1.0,2.0,3.0,-2.0,1.0,1.0,-1.0,-1.0,2.0,-3.0,-1.0,-1.0,6.0] +t3 := concat(t2,t1) +a := [t3] :: Matrix SF +lirn := (3*nzmax/2)::Integer +t1 := [0.0 for i in 1..(lirn-nz)] +t2 := [1,2,2,2,3,4,4,4,5,5,5,5,6,6,6] +t3 := concat(t2,t1) +irn := [t3] :: Matrix Integer +t1 := [0.0 for i in 1..(licn-nz)] +t2 := [1,2,3,4,3,1,4,5,1,4,5,6,1,2,6] +t3 := concat(t2,t1) +icn := [t3] :: Matrix Integer +pivot := 0.1 +lblock := true +grow := true +abort := [true,true,false,true] +ifail := 1 +res1:=f01brf(n,nz,licn,lirn,pivot,lblock,grow,abort,a,irn,icn,ifail) +a := (res1)."a" +icn := (res1)."icn" +ikeep := (res1)."ikeep" +rhs := [[15,12,18,3,-6,0]] +idisp := (res1)."idisp" +mtype := 1 +result:=f04axf(n,a,licn,icn,ikeep,mtype,[[idisp(1,1),idisp(1,2)]],rhs) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f04faf.input.pamphlet b/src/input/f04faf.input.pamphlet new file mode 100644 index 00000000..fff47f24 --- /dev/null +++ b/src/input/f04faf.input.pamphlet @@ -0,0 +1,36 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f04faf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cle all +showArrayValues true +showScalarValues true + +job:=0 +n:=5 +d:Matrix SF:= + [[4 ,10 ,29 ,25 ,5 ]] +e:Matrix SF:= + [[0,-2 ,-6 ,15 ,8 ]] +b:Matrix SF:= + [[6 ,9 ,2 ,14 ,7 ]] +result:=f04faf(job,n,d,e,b,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f04jgf.input.pamphlet b/src/input/f04jgf.input.pamphlet new file mode 100644 index 00000000..9b10c52e --- /dev/null +++ b/src/input/f04jgf.input.pamphlet @@ -0,0 +1,44 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f04jgf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +m:=6 +n:=4 +nra:=8 +tol:= 5.0e-4 +lwork:=32 +a:Matrix SF:= + [[0.05 ,0.05 ,0.25 ,-0.25 ],_ + [0.25 ,0.25 ,0.05 ,-0.05 ],_ + [0.35 ,0.35 ,1.75 ,-1.75 ],_ + [1.75 ,1.75 ,0.35 ,-0.35 ],_ + [0.30 ,-0.30 ,0.30 ,0.30 ],_ + [0.40 ,-0.40 ,0.40 ,0.40 ],_ + [0.0 ,0.0 ,0.0 ,0.0 ],_ + [0.0 ,0.0 ,0.0 ,0.0 ]] +b:Matrix SF:= + [[1 ,2 ,3 ,4 ,5 ,6 ]] +result:=f04jgf(m,n,nra,tol,lwork,a,b,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f04maf.input.pamphlet b/src/input/f04maf.input.pamphlet new file mode 100644 index 00000000..b5e02a31 --- /dev/null +++ b/src/input/f04maf.input.pamphlet @@ -0,0 +1,69 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f04maf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all -- first run f01maf +showArrayValues true +showScalarValues true + +n := 4; +m := 4; +nn := n*m; +licn := 90; +lirn := 50; +a := new(1,licn,0.0)$Matrix DoubleFloat; +irn := new(1,lirn,0)$Matrix Integer; +icn := new(1,licn,0)$Matrix Integer; +k := 0; +for i in 1..nn repeat + k := k + 1 + a(1,k) := 1 + irn(1,k) := i + icn(1,k) := i +for i in 1..n repeat + for j in 1..(m-1) repeat + k := k + 1 + jj := (i-1)*n + j + a(1,k) := -0.25 + irn(1,k) := jj + icn(1,k) := jj + 1 +for i in (n+1)..nn repeat + k := k + 1 + a(1,k) := -0.25 + irn(1,k) := i-n + icn(1,k) := i +nz := k; +abort := [true,true,true]; +droptl := 0.1; +densw := 0.8; +ifail := 111; +res1:=f01maf(nn,nz,licn,lirn,abort,a,irn,icn,droptl,densw,ifail) +a := res1."avals" +irn := res1."irn" +icn := res1."icn" +b := [[0.5,0.25,0.25,0.5,0.25,0,0,0.25,0.25,0,0,0.25,0.5,0.25,0.25,0.5]] +acc := [[0.0001,0]] +noits := [[50,0]] +wkeep := res1."wkeep" +ikeep := res1."ikeep" +inform := res1."inform" +result:=f04maf(nn,nz,a,licn,irn,lirn,icn,wkeep,ikeep,inform,b,acc,noits,ifail) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f04mbf.input.pamphlet b/src/input/f04mbf.input.pamphlet new file mode 100644 index 00000000..59c2ab14 --- /dev/null +++ b/src/input/f04mbf.input.pamphlet @@ -0,0 +1,57 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f04mbf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +n := 10 +b := new(1,n,0.0)$Matrix DoubleFloat; +b(1,1) := 6 +for i in 2..n-1 repeat + b(1,i) := 4 +b(1,n) := 6 +precon := true +shft := 0 +-- The following two parameters are not used +-- by the ASPs. They may be useful if a user +-- supplies FORTRAN code directly. +lrwork:=1 +liwork:=1 +rtol := 0.00001 +itnlim := 100 +msglvl := 1 +ifail := 1 +z:=new(10,10,0.0)$Matrix MFLOAT; +z(1,1):=2;z(1,2):=1;z(1,10):=3 +z(10,1):=3;z(10,9):=1;z(10,10):=2 +for i in 2..(n-1) repeat + z(i,i-1):=1 + z(i,i):=2 + z(i,i+1):=1 +z +m :Matrix MFLOAT:= [[2,1,0,0,0,0,0,0,0,0],[1,2,1,0,0,0,0,0,0,0],_ +[0,1,2,1,0,0,0,0,0,0],[0,0,1,2,1,0,0,0,0,0],[0,0,0,1,2,1,0,0,0,0],_ +[0,0,0,0,1,2,1,0,0,0],[0,0,0,0,0,1,2,1,0,0],[0,0,0,0,0,0,1,2,1,0],_ +[0,0,0,0,0,0,0,1,2,1],[0,0,0,0,0,0,0,0,1,2]] +result:=f04mbf(n,b,precon,shft,itnlim,msglvl,lrwork,liwork,rtol,ifail,z::ASP28(APROD),(m::ASP34(MSOLVE))) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f04mcf.input.pamphlet b/src/input/f04mcf.input.pamphlet new file mode 100644 index 00000000..f11ee1c4 --- /dev/null +++ b/src/input/f04mcf.input.pamphlet @@ -0,0 +1,47 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f04mcf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +n:=6 +al:Matrix SF:= + [[1.0 ,2.0 ,1.0 ,3.0 ,1.0 ,1.0 ,5.0 ,4.0 ,1.5 ,0.5 ,1.0 ,1.5 ,5.0,1.0 ]] +lal:=14 +d:Matrix SF:= + [[1.0 ,1.0 ,4.0 ,16.0 ,1.0 ,16.0 ]] +nrow:Matrix Integer:= + [[1 ,2 ,2 ,1 ,5 ,3 ]] +ir:=2 +b:Matrix SF:= + [[6 ,-10 ],_ + [15 ,-21 ],_ + [11 ,-3 ],_ + [0 ,24 ],_ + [51 ,-39 ],_ + [46 ,67 ]] +nrb:=6 +iselct:=1 +nrx:=6 +result:=f04mcf(n,al,lal,d,nrow,ir,b,nrb,iselct,nrx,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f04qaf.input.pamphlet b/src/input/f04qaf.input.pamphlet new file mode 100644 index 00000000..ab4013fa --- /dev/null +++ b/src/input/f04qaf.input.pamphlet @@ -0,0 +1,55 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f04qaf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +showArrayValues true +showScalarValues true + +n := 12 +m := 13 +h:SF := 0.1 +b :Matrix SF:= -h**2 * [[0],[0],[0],[1],[1],[0],[0],[1],[1],[0],[0],[0],[-h**-3]] +a : Matrix MachineFloat:= + [[1,0,0,-1,0,0,0,0,0,0,0,0],_ + [0,1,0,0,-1,0,0,0,0,0,0,0],_ + [0,0,1,-1,0,0,0,0,0,0,0,0],_ + [-1,0,-1,4,-1,0,0,-1,0,0,0,0],_ + [0,-1,0,-1,4,-1,0,0,-1,0,0,0],_ + [0,0,0,0,-1,1,0,0,0,0,0,0],_ + [0,0,0,0,0,0,1,-1,0,0,0,0],_ + [0,0,0,-1,0,0,-1,4,-1,0,-1,0],_ + [0,0,0,0,-1,0,0,-1,4,-1,0,-1],_ + [0,0,0,0,0,0,0,0,-1,1,0,0],_ + [0,0,0,0,0,0,0,-1,0,0,1,0],_ + [0,0,0,0,0,0,0,0,-1,0,0,1],_ + [1,1,1,0,0,1,1,0,0,1,1,1]] +damp := 0.0 +atol := 1.0e-5 +btol := 1.0e-4 +conlim := 1/atol +itnlim := 100 +msglvl := 1 +liwork := 1 +lrwork := 1 +ifail :=1 +result:=f04qaf(m,n,damp,atol,btol,conlim,itnlim,msglvl,lrwork,liwork,b,ifail,a::ASP30(APROD)) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f07adf.input.pamphlet b/src/input/f07adf.input.pamphlet new file mode 100644 index 00000000..1961c7f2 --- /dev/null +++ b/src/input/f07adf.input.pamphlet @@ -0,0 +1,36 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f07adf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +m:=4 +n:=4 +lda:=4 +a:Matrix SF:= + [[1.8 ,2.88 ,2.05 ,-0.89 ],_ + [5.25 ,-2.95 ,-0.95 ,-3.8 ],_ + [1.58 ,-2.69 ,-2.9 ,-1.04 ],_ + [-1.11 ,-0.66 ,-0.59 ,0.8 ]] +result:=f07adf(m,n,lda,a) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f07aef.input.pamphlet b/src/input/f07aef.input.pamphlet new file mode 100644 index 00000000..e662e003 --- /dev/null +++ b/src/input/f07aef.input.pamphlet @@ -0,0 +1,45 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f07aef.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +trans:="N" +n:=4 +nrhs:=2 +a:Matrix SF:= + [[5.25 ,-2.95 ,-0.95 ,-3.8 ],_ + [0.34 ,3.89 ,2.38 ,0.41 ],_ + [0.3 ,-0.46 ,-1.51 ,0.29 ],_ + [-0.21 ,-0.33 ,0.01 ,1.13 ]] +lda:=4 +ipiv:Matrix Integer:= + [[2 ,2 ,3 ,4 ]] +ldb:=4 +b:Matrix SF:= + [[9.52 ,18.47 ],_ + [24.35 ,2.25 ],_ + [0.77 ,-13.3 ],_ + [-6.22 ,-6.21 ]] +result:=f07aef(trans,n,nrhs,a,lda,ipiv,ldb,b) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f07fdf.input.pamphlet b/src/input/f07fdf.input.pamphlet new file mode 100644 index 00000000..a3861238 --- /dev/null +++ b/src/input/f07fdf.input.pamphlet @@ -0,0 +1,36 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f07fdf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +uplo:="L" +n:=4 +lda:=4 +a:Matrix SF:= + [[4.16 ,0.0 ,0.0 ,0.0 ],_ + [-3.12 ,5.03 ,0.0 ,0.0 ],_ + [0.56 ,-0.83 ,0.76 ,0.0 ],_ + [-0.1 ,1.18 ,0.34 ,1.18 ]] +result:=f07fdf(uplo,n,lda,a) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/f07fef.input.pamphlet b/src/input/f07fef.input.pamphlet new file mode 100644 index 00000000..0636014c --- /dev/null +++ b/src/input/f07fef.input.pamphlet @@ -0,0 +1,43 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input f07fef.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +showArrayValues true +showScalarValues true + +uplo:="L" +n:=4 +nrhs:=2 +a:Matrix SF:= + [[2.04 ,0.0 ,0.0 ,0.0 ],_ + [-1.53 ,1.64 ,0.0 ,0.0 ],_ + [0.28 ,-0.25 ,0.79 ,0.0 ],_ + [-0.05 ,0.67 ,0.66 ,0.54 ]] +lda:=4 +ldb:=4 +b:Matrix SF:= + [[8.7 ,8.3 ],_ + [-13.35 ,2.13 ],_ + [1.89 ,1.61 ],_ + [-4.14 ,5 ]] +result:=f07fef(uplo,n,nrhs,a,lda,ldb,b) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/farray.input.pamphlet b/src/input/farray.input.pamphlet new file mode 100644 index 00000000..94ff2706 --- /dev/null +++ b/src/input/farray.input.pamphlet @@ -0,0 +1,38 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input FARRAY.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from FlexibleArrayXmpPage +)clear all + +flexibleArray [i for i in 1..6] +f : FARRAY INT := new(6,0) +for i in 1..6 repeat f.i := i; f +physicalLength f +concat!(f,11) +physicalLength f +physicalLength!(f,15) +concat!(f,f) +insert!(22,f,1) +g := f(10..) +insert!(g,f,1) +merge!(sort! f, sort! g) +removeDuplicates! f +select!(i +-> even? i,f) +physicalLength f +shrinkable(false)$FlexibleArray(Integer) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/ffdemo.input.pamphlet b/src/input/ffdemo.input.pamphlet new file mode 100644 index 00000000..7ea16b8b --- /dev/null +++ b/src/input/ffdemo.input.pamphlet @@ -0,0 +1,579 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ffdemo.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- finite field demonstrations +-- prime field +-- get a prime +p:=4817 +-- construct field +F:=PrimeField p +-- demonstration of common finite field functions +-- the finite field domain is in variable F +-- take some random elements +size()$F +a:=index(size()$F quo 3)$F +b:=index(size()$F quo 7)$F +-- simple arithmetic +a+b +a-b +a*b +a/b +a**1234 +a**(-1) +g := generator()$F +(definingPolynomial()$F::SUP(F)).g +-- functions concerning the multiplicative cyclic group +order(a) +g:=primitiveElement()$F +discreteLog(a) +-- the next one should equal 0 +g**% - a +-- the next may fail +discreteLog(b,a) +-- special finite field functions +extensionDegree()$F +degree(a) +normalElement()$F +definingPolynomial()$F +minimalPolynomial(a) +Frobenius(a) +linearAssociatedOrder(a) +linearAssociatedLog(a) +for d in divisors extensionDegree()$F repeat + print(norm(a,d::PI)::OUTFORM) + print(trace(a,d::PI)::OUTFORM) + +-- end of common finite field demonstration +-- finite field with polynomail basis +-- get a small prime +p:=7 +P:=PrimeField p +-- get a small extension degree +d:=6 +-- get a irreducible polynomial +f:=createIrreduciblePoly(d)$FFPOLY(P) +-- construct field +F:=FFP(P,f) +-- this field is the same as constructed by F:=FFX(P,d) or F:=FF(p,d +-- demonstration of common finite field functions +-- the finite field domain is in variable F +-- take some random elements +size()$F +a:=index(size()$F quo 3)$F +b:=index(size()$F quo 7)$F +-- simple arithmetic +a+b +a-b +a*b +a/b +a**1234 +a**(-1) +g := generator()$F +(definingPolynomial()$F::SUP(F)).g +-- functions concerning the multiplicative cyclic group +order(a) +g:=primitiveElement()$F +discreteLog(a) +-- the next one should equal 0 +g**% - a +-- the next may fail +discreteLog(b,a) +-- special finite field functions +extensionDegree()$F +degree(a) +normalElement()$F +definingPolynomial()$F +minimalPolynomial(a) +Frobenius(a) +linearAssociatedOrder(a) +linearAssociatedLog(a) +for d in divisors extensionDegree()$F repeat + print(norm(a,d::PI)::OUTFORM) + print(trace(a,d::PI)::OUTFORM) + + +-- end of common finite field demonstration +-- finite field with normal basis +-- get a normal Polynomial +f:=createNormalPoly(d)$FFPOLY(P) +-- build field +F:=FFNBP(P,f) +-- this field is the same as constructed by F:=FFNBX(P,d) or F:=FFNB(p,d +-- demonstration of common finite field functions +-- the finite field domain is in variable F +-- take some random elements +size()$F +a:=index(size()$F quo 3)$F +b:=index(size()$F quo 7)$F +-- simple arithmetic +a+b +a-b +a*b +a/b +a**1234 +a**(-1) +g := generator()$F +(definingPolynomial()$F::SUP(F)).g +-- functions concerning the multiplicative cyclic group +order(a) +g:=primitiveElement()$F +discreteLog(a) +-- the next one should equal 0 +g**% - a +-- the next may fail +discreteLog(b,a) +-- special finite field functions +extensionDegree()$F +degree(a) +normalElement()$F +definingPolynomial()$F +minimalPolynomial(a) +Frobenius(a) +linearAssociatedOrder(a) +linearAssociatedLog(a) +for d in divisors extensionDegree()$F repeat + print(norm(a,d::PI)::OUTFORM) + print(trace(a,d::PI)::OUTFORM) + + +-- end of common finite field demonstration +-- finite field represented as cyclic group +-- because a Zech logarithm table of half the field size is kept in +-- memory during the computations, the size of the field should not be +-- to big. +-- get a small prime +p:=5 +P:=PrimeField p +-- get a small extension degree +d:=4 +-- get a primitive polynomial +f:=createPrimitivePoly(d)$FFPOLY(P) +-- construct field +F:=FFCGP(P,f) +-- this field is the same as constructed by F:=FFCGX(P,d) or F:=FFCG(p,d +-- demonstration of common finite field functions +-- the finite field domain is in variable F +-- take some random elements +size()$F +a:=index(size()$F quo 3)$F +b:=index(size()$F quo 7)$F +-- simple arithmetic +a+b +a-b +a*b +a/b +a**1234 +a**(-1) +g := generator()$F +(definingPolynomial()$F::SUP(F)).g +-- functions concerning the multiplicative cyclic group +order(a) +g:=primitiveElement()$F +discreteLog(a) +-- the next one should equal 0 +g**% - a +-- the next may fail +discreteLog(b,a) +-- special finite field functions +extensionDegree()$F +degree(a) +normalElement()$F +definingPolynomial()$F +minimalPolynomial(a) +Frobenius(a) +linearAssociatedOrder(a) +linearAssociatedLog(a) +for d in divisors extensionDegree()$F repeat + print(norm(a,d::PI)::OUTFORM) + print(trace(a,d::PI)::OUTFORM) + + +-- end of common finite field demonstration +-- polynomial extension of a polynomial extension +-- get a small prime, choose 2 or 3 +p:=3 +P:=PrimeField p +-- get two small extension degrees +d1:=2 +d2:=3 +-- get irreducible polynomial of degree d1 over P +f1:=createIrreduciblePoly(d1)$FFPOLY(P) +F1:=FFP(P,f1) +-- get irreducible polynomial of degree d2 over F1 +f2:=createIrreduciblePoly(d2)$FFPOLY(F1) +-- construct field +F:=FFP(F1,f2) +-- this field is the same as constructed by F:=FFX(F1,d2) +-- demonstration of common finite field functions +-- the finite field domain is in variable F +-- take some random elements +size()$F +a:=index(size()$F quo 3)$F +b:=index(size()$F quo 7)$F +-- simple arithmetic +a+b +a-b +a*b +a/b +a**1234 +a**(-1) +g := generator()$F +(definingPolynomial()$F::SUP(F)).g +-- functions concerning the multiplicative cyclic group +order(a) +g:=primitiveElement()$F +discreteLog(a) +-- the next one should equal 0 +g**% - a +-- the next may fail +discreteLog(b,a) +-- special finite field functions +extensionDegree()$F +degree(a) +normalElement()$F +definingPolynomial()$F +minimalPolynomial(a) +Frobenius(a) +linearAssociatedOrder(a) +linearAssociatedLog(a) +for d in divisors extensionDegree()$F repeat + print(norm(a,d::PI)::OUTFORM) + print(trace(a,d::PI)::OUTFORM) +-- end of common finite field demonstration + + + + +-- polynomial extension of a normal extension +-- get normal polynomial of degree d1 over P +f1:=createNormalPoly(d1)$FFPOLY(P) +F1:=FFNBP(P,f1) +-- get irreducible polynomial of degree d2 over F1 +f2:=createIrreduciblePoly(d2)$FFPOLY(F1) +-- construct field +F:=FFP(F1,f2) +-- this field is the same as constructed by F:=FFX(F1,d2) +-- demonstration of common finite field functions +-- the finite field domain is in variable F +-- take some random elements +size()$F +a:=index(size()$F quo 3)$F +b:=index(size()$F quo 7)$F +-- simple arithmetic +a+b +a-b +a*b +a/b +a**1234 +a**(-1) +g := generator()$F +(definingPolynomial()$F::SUP(F)).g +-- functions concerning the multiplicative cyclic group +order(a) +g:=primitiveElement()$F +discreteLog(a) +-- the next one should equal 0 +g**% - a +-- the next may fail +discreteLog(b,a) +-- special finite field functions +extensionDegree()$F +degree(a) +normalElement()$F +definingPolynomial()$F +minimalPolynomial(a) +Frobenius(a) +linearAssociatedOrder(a) +linearAssociatedLog(a) +for d in divisors extensionDegree()$F repeat + print(norm(a,d::PI)::OUTFORM) + print(trace(a,d::PI)::OUTFORM) +-- end of common finite field demonstration + + + + +-- polynomial extension of a cyclic extension +-- get primitive polynomial of degree d1 over P +f1:=createPrimitivePoly(d1)$FFPOLY(P) +F1:=FFCGP(P,f1) +-- get irreducible polynomial of degree d2 over F1 +f2:=createIrreduciblePoly(d2)$FFPOLY(F1) +-- construct field +F:=FFP(F1,f2) +-- this field is the same as constructed by F:=FFX(F1,d2) +-- demonstration of common finite field functions +-- the finite field domain is in variable F +-- take some random elements +size()$F +a:=index(size()$F quo 3)$F +b:=index(size()$F quo 7)$F +-- simple arithmetic +a+b +a-b +a*b +a/b +a**1234 +a**(-1) +g := generator()$F +(definingPolynomial()$F::SUP(F)).g +-- functions concerning the multiplicative cyclic group +order(a) +g:=primitiveElement()$F +discreteLog(a) +-- the next one should equal 0 +g**% - a +-- the next may fail +discreteLog(b,a) +-- special finite field functions +extensionDegree()$F +degree(a) +normalElement()$F +definingPolynomial()$F +minimalPolynomial(a) +Frobenius(a) +linearAssociatedOrder(a) +linearAssociatedLog(a) +for d in divisors extensionDegree()$F repeat + print(norm(a,d::PI)::OUTFORM) + print(trace(a,d::PI)::OUTFORM) + + +-- end of common finite field demonstration +-- normal extension of a polynomial extension +-- get a small prime +-- get a irreducible polynomial of degree d1 over P +f1:=createIrreduciblePoly(d1)$FFPOLY(P) +F1:=FFP(P,f1) +-- get a normal polynomial of degree d2 over F1 +f2:=createNormalPoly(d2)$FFPOLY(F1) +-- construct field +F:=FFNBP(F1,f2) +-- this field is the same as constructed by F:=FFX(F1,d2) +-- demonstration of common finite field functions +-- the finite field domain is in variable F +-- take some random elements +size()$F +a:=index(size()$F quo 3)$F +b:=index(size()$F quo 7)$F +-- simple arithmetic +a+b +a-b +a*b +a/b +a**1234 +a**(-1) +g := generator()$F +(definingPolynomial()$F::SUP(F)).g +-- functions concerning the multiplicative cyclic group +order(a) +g:=primitiveElement()$F +discreteLog(a) +-- the next one should equal 0 +g**% - a +-- the next may fail +discreteLog(b,a) +-- special finite field functions +extensionDegree()$F +degree(a) +normalElement()$F +definingPolynomial()$F +minimalPolynomial(a) +Frobenius(a) +linearAssociatedOrder(a) +linearAssociatedLog(a) +for d in divisors extensionDegree()$F repeat + print(norm(a,d::PI)::OUTFORM) + print(trace(a,d::PI)::OUTFORM) + + +-- end of common finite field demonstration +-- normal extension of a normal extension +-- get a normal polynomial of degree d1 over P +f1:=createNormalPoly(d1)$FFPOLY(P) +F1:=FFNBP(P,f1) +-- get a normal polynomial of degree d2 over F1 +f2:=createNormalPoly(d2)$FFPOLY(F1) +-- construct field +F:=FFNBP(F1,f2) +-- this field is the same as constructed by F:=FFX(F1,d2) +-- demonstration of common finite field functions +-- the finite field domain is in variable F +-- take some random elements +size()$F +a:=index(size()$F quo 3)$F +b:=index(size()$F quo 7)$F +-- simple arithmetic +a+b +a-b +a*b +a/b +a**1234 +a**(-1) +g := generator()$F +(definingPolynomial()$F::SUP(F)).g +-- functions concerning the multiplicative cyclic group +order(a) +g:=primitiveElement()$F +discreteLog(a) +-- the next one should equal 0 +g**% - a +-- the next may fail +discreteLog(b,a) +-- special finite field functions +extensionDegree()$F +degree(a) +normalElement()$F +definingPolynomial()$F +minimalPolynomial(a) +Frobenius(a) +linearAssociatedOrder(a) +linearAssociatedLog(a) +for d in divisors extensionDegree()$F repeat + print(norm(a,d::PI)::OUTFORM) + print(trace(a,d::PI)::OUTFORM) + + +-- end of common finite field demonstration +-- normal extension of a cyclic extension +-- get primitive polynomial of degree d1 over P +f1:=createPrimitivePoly(d1)$FFPOLY(P) +F1:=FFCGP(P,f1) +-- get a normal polynomial of degree d2 over F1 +f2:=createNormalPoly(d2)$FFPOLY(F1) +-- construct field +F:=FFNBP(F1,f2) +-- this field is the same as constructed by F:=FFX(F1,d2) +-- demonstration of common finite field functions +-- the finite field domain is in variable F +-- take some random elements +size()$F +a:=index(size()$F quo 3)$F +b:=index(size()$F quo 7)$F +-- simple arithmetic +a+b +a-b +a*b +a/b +a**1234 +a**(-1) +g := generator()$F +(definingPolynomial()$F::SUP(F)).g +-- functions concerning the multiplicative cyclic group +order(a) +g:=primitiveElement()$F +discreteLog(a) +-- the next one should equal 0 +g**% - a +-- the next may fail +discreteLog(b,a) +-- special finite field functions +extensionDegree()$F +degree(a) +normalElement()$F +definingPolynomial()$F +minimalPolynomial(a) +Frobenius(a) +linearAssociatedOrder(a) +linearAssociatedLog(a) +for d in divisors extensionDegree()$F repeat + print(norm(a,d::PI)::OUTFORM) + print(trace(a,d::PI)::OUTFORM) + + +-- end of common finite field demonstration +-- finite field homomorphisms demonstration +P3:= PF 3 +-- create a irreducible, a normal and a primitive polynomial +fi:=createIrreduciblePoly(6)$FFPOLY(P3) +fn:=createNormalPoly(6)$FFPOLY(P3) +fp:=createPrimitivePoly(3)$FFPOLY(P3) +-- coercions between field with the same defining polynomials +F:=FFP(P3,fn) +N:=FFNBP(P3,fn) +a:=index(size()$F quo 3)$F +b:=index(size()$F quo 7)$F +an:=coerce(a)$FFHOM(F,P3,N) +bn:=coerce(b)$FFHOM(F,P3,N) +cn := an*bn +coerce(cn)$FFHOM(F,P3,N) +-- should be the same as +c:=a*b +-- coercion between fields with different extension polynomials +F:=FFP(P3,fi) +N:=FFNBP(P3,fn) +a:=index(size()$F quo 3)$F +b:=index(size()$F quo 7)$F +an:=coerce(a)$FFHOM(F,P3,N) +bn:=coerce(b)$FFHOM(F,P3,N) +cn := an*bn +coerce(cn)$FFHOM(F,P3,N) +-- should be the same as +c:=a*b +-- coercion between fields of different extension degree +C:=FFCGP(P3,fp) +N:=FFNBP(P3,fn) +a:=index(size()$C quo 3)$C +b:=index(size()$C quo 7)$C +an:=coerce(a)$FFHOM(C,P3,N) +bn:=coerce(b)$FFHOM(C,P3,N) +cn := an+bn +coerce(cn)$FFHOM(C,P3,N) +-- should be the same as +c:=a+b +-- comparison of computation times for arithmetic operations +f:=createPrimitiveNormalPoly(5)$FFPOLY(P3) +FP:=FFP(P3,f) +Fc:=FFCGP(P3,f) -- FC is a domain abbreviation +FN:=FFNBP(P3,f) +ap:=index(size()$FP quo 3)$FP +ac:=coerce(ap)$FFHOM(Fc,P3,FP) +an:=coerce(ap)$FFHOM(FN,P3,FP) +bp:=index(size()$FP quo 7)$FP +bc:=coerce(bp)$FFHOM(Fc,P3,FP) +bn:=coerce(bp)$FFHOM(FN,P3,FP) +-- the next are to initialize the fields +ac+bc +an*bn +-- now we can compare +)set message time on +-- addition +ap+bp +an+bn +ac+bc +-- multiplication +ap*bp +an*bn +ac*bc +-- discrete logarithms +discreteLog(ap) +discreteLog(an) +discreteLog(ac) +-- exponentiation +ap**1234567 +an**1234567 +ac**1234567 +-- computations between elements of field of different representation +ap+bc +an+bc +an+bp +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/fferr.input.pamphlet b/src/input/fferr.input.pamphlet new file mode 100644 index 00000000..7120dc9c --- /dev/null +++ b/src/input/fferr.input.pamphlet @@ -0,0 +1,32 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input fferr.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +--)load FFPOLY )update +pf := PF 3 +createIrreduciblePoly(6)$FFPOLY(pf) +createNormalPoly(6)$FFPOLY(pf) +createPrimitivePoly(3)$FFPOLY(pf) +createIrreduciblePoly(3)$FFPOLY(pf) +createNormalPoly(3)$FFPOLY(pf) +createPrimitivePoly(3)$FFPOLY(pf) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/ffrac.input.pamphlet b/src/input/ffrac.input.pamphlet new file mode 100644 index 00000000..346c627e --- /dev/null +++ b/src/input/ffrac.input.pamphlet @@ -0,0 +1,63 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ffrac.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +)lib ffrac + +f1 : FormalFraction Integer +f1 := 6/3 + +-- 6 +-- - +-- 3 + +f2 := (3.6/2.4)$FormalFraction Float + +-- 3.6 +-- --- +-- 2.4 + +numer f1 + +-- 6 + +denom f2 + +-- 2.4 + +f1 :: FRAC INT + +-- 2 + +% :: FormalFraction Integer + +-- 2 +-- - +-- 1 + +f2 :: Float + +-- 1.5 + +output "End of tests" + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/ffx72.input.pamphlet b/src/input/ffx72.input.pamphlet new file mode 100644 index 00000000..4a7de8db --- /dev/null +++ b/src/input/ffx72.input.pamphlet @@ -0,0 +1,70 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ffx72.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +-- This file demonstrates some calculations with the finite field of +-- 49 elements. It is built as a degree 2 extension of the Galois +-- field with 7 elements. +)cl all +)time off + +gf72 := FF(7, 2) +-- x**2+1 is irreducible over PF 7 + +u: UP(x,PF 7) := x**2 + 1 +factor u + +-- but factors over FF(PF 7, 2) + +u2 : UP(x,gf72) := u +factor u2 + +-- the following is the irreducible polynomial used in the representation +-- of GF(7**2) over PF 7. It will be the same every time this field is +-- used. + +definingPolynomial()$gf72 + +-- e is a randomly chosen element + +e := index(size()$gf72 quo 3)$gf72 +norm e +trace e + +-- the order of an element is the minimum positive integer to which +-- it can be raised to yield 1. + +order e + +-- we can display all the nonzero elements in the field + +allElts := [index(i :: PI)$gf72 for i in 1..48] + +-- we can sum over them + +reduce(+,allElts) + +-- and we can determine the order of each of them. Each element of +-- order 48 generates the multiplicative group of non-zero elements. + +[order e for e in allElts] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/fib.input.pamphlet b/src/input/fib.input.pamphlet new file mode 100644 index 00000000..10224c4d --- /dev/null +++ b/src/input/fib.input.pamphlet @@ -0,0 +1,29 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input fib.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +)cl all +fib(n | n=0)==1 +fib(n | n=1)==1 +fib(n | n>1)==fib(n-1)+fib(n-2) +fibs == [fib i for i in 0..] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/file.input.pamphlet b/src/input/file.input.pamphlet new file mode 100644 index 00000000..fab45daf --- /dev/null +++ b/src/input/file.input.pamphlet @@ -0,0 +1,35 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input FILE.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from FileXmpPage +)clear all + +ifile:File List Integer:=open("/tmp/jazz1","output") +write!(ifile, [-1,2,3]) +write!(ifile, [10,-10,0,111]) +write!(ifile, [7]) +reopen!(ifile, "input") +read! ifile +read! ifile +readIfCan! ifile +readIfCan! ifile +iomode ifile +name ifile +close! ifile +)system rm /tmp/jazz1 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/fixed.input.pamphlet b/src/input/fixed.input.pamphlet new file mode 100644 index 00000000..67279b89 --- /dev/null +++ b/src/input/fixed.input.pamphlet @@ -0,0 +1,1497 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input fixed.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> +--fixed.input + +------------------------------------------------------------------- +-- daly/10/06/92 +------------------------------------------------------------------- +)clear all +-- something is wrong with the integration of serices, when the +-- coeffiennts are not constants. while the series is mathematically +-- correct, this is not what one expects as the taylor series, which +-- does not exist. +series(x/(x+log(x))) +-- here integrate is treating log(x) as a constant, which is incorrect. +integrate(%) + +------------------------------------------------------------------- +-- bmt/10/19/92 integrate problem -- serious, wrong answer +------------------------------------------------------------------- +)clear all +2*sin(t)*sqrt(1+cos(t)) +--correct answer is 2*sin(t)/sqrt(1+cos(t)) +integrate(%,t) + +------------------------------------------------------------------- +-- bmt/10/20/92 multiple complex in type tower +------------------------------------------------------------------- +)clear all +n:Complex ? +-- an invalid type. can't have 2 complex constructors in a tower +n:=x/y+%i + +------------------------------------------------------------------------- +-- grabm/09/28/92 coercion bug +-- comment: this coercion must carefully check whether there is a symbol +-- among the kernels which is equal to an indeterminate of the +-- polynomial ring, and not simply considering every expression +-- as a constant +------------------------------------------------------------------------- +)clear all +f:=(a-b-c-d)**2::EXPR INT +f::DMP(['a,'b],EXPR INT) +degree % + +------------------------------------------------------------------- +-- bmt/10/26/92 wrong answer +-- comment:I believe this problem simplifies to +-- lfintegrate(sqrt(u**3+u**2),u) which returns the +-- wrong answer due to some confusion in prootintegrate in INTPAF. +-- I think the confusion happens with the use of radPoly and rootPoly. +-- The answer is computed with respect to the result returned by rootPoly +-- but the kernel which is substituted for "y" corresponds to radPoly. +------------------------------------------------------------------- +)clear all +-- should be 2*sin(t)/sqrt(1+cos(t)) +integrate(sqrt(1+cos(x)),x) + +------------------------------------------------------------------- +-- bmt/09/28/92 bug in ITRIGMNP +-- gives: +-- Cannot convert kernel to gaussian function +------------------------------------------------------------------- +)clear all +integrate(exp(x**2),x) + +------------------------------------------------------------------- +-- themos/11/06/92 integration bug +--comment: +--I suggest changing line 11 of limitedLogs in INTTR from: +-- rows := max(degree den, 1 + "max"/[degree(u.contrib) for u in l1]) +--to: +-- rows := max(degree den, +-- 1 + reduce(max,[degree(u.contrib) for u in l1],0)$List(N)) +--Does you agree, thus max/ empty list would return 0. +------------------------------------------------------------------- +)clear all +f:=log(1-(b*x/(a+c*x**2)))/x +-- 2 +-- c x - b x + a +-- log(--------------) +-- 2 +-- c x + a +-- (1) ------------------- +-- x +integrate(%,x) +-- 2 +-- %J c - %J b + a +-- log(---------------) +-- x 2 +-- ++ %J c + a +-- (2) | -------------------- d%J +-- ++ %J +expand f +-- 2 2 +-- - log(c x + a) + log(c x - b x + a) +-- (3) ------------------------------------- +-- x +integrate(%,x) +-- >> Error detected within library code: +-- No identity element for reduce of empty list using operation +-- max + +------------------------------------------------------------------- +-- bmt/11/17/92 interpreter resolve problem +------------------------------------------------------------------- +-- says cannot find an appropriate * +)clear all +%i/m*sqrt(m) + +------------------------------------------------------------------------- +-- tpd/09/22/92 this generates extra brackets +------------------------------------------------------------------------- +)clear all +foo n == matrix[[i for i in 1..n] for j in 1..n] +foo + +------------------------------------------------------------------------- +--- tpd/09/24/92 matrix multiplication appears broken in the product. +-- fails with +-- >> System error: +-- The function |deleteAssoc| is undefined. +-- You are being returned to the top level of the interpreter. +-- comment: (barry) +-- This bug is due to the new autoloading scheme for the compiler, the +-- function deleteAssoc needs to be moved into the in core system. +-- As a work around, +-- if you compile a non existent file, the apropriate files will be loaded, +-- e.g.: +-- )co foo +-- comment: this works in version 2 +------------------------------------------------------------------------- +msq := Matrix SquareMatrix(2,POLY INT) +m : msq := zero(2,2) +m(1,1) := matrix([[1,2],[a,b]]) +m(1,2) := matrix([[a,b],[2,b]]) +m(2,2) := matrix([[1,2],[2,b]]) +m +m*m +m**2 +m**3 +(m*m)*m +mm:=m*m +mm*m + +------------------------------------------------------------------------- +-- tpd/09/25/92 new equation.spad from johannes grabmeier +------------------------------------------------------------------------- + + +--Furthermore, we have function to put 0 or 1 on one side +--and factor the left hand side, after the right hand side +--is 0 and we have an IntegralDomain. +--Johannes + +eq1 := (-6*x**3+13*x**2+4)=(-x**4+12*x) +-- +-- +-- 3 2 4 +-- (1) - 6x + 13x + 4= - x + 12x +-- Type: Equation Polynomial Integer +-- Time: 1.61 (IN) + 1.47 (OT) = 3.08 sec +eq2 := x**4+13*x**2-12*x = 6*x**3-4 +-- +-- +-- 4 2 3 +-- (2) x + 13x - 12x= 6x - 4 +-- Type: Equation Polynomial Integer +-- Time: 0.16 (IN) + 0.11 (OT) = 0.27 sec +eq := eq1*y**2+eq2 +-- +-- +-- 3 2 2 4 2 4 2 3 +-- (3) (- 6x + 13x + 4)y + x + 13x - 12x= (- x + 12x)y + 6x - 4 +-- Type: Equation Polynomial Integer +-- Time: 0.26 (IN) + 0.01 (EV) + 0.01 (OT) + 1.54 (GC) = 1.82 sec +swap % +-- +-- +-- 4 2 3 3 2 2 4 2 +-- (4) (- x + 12x)y + 6x - 4= (- 6x + 13x + 4)y + x + 13x - 12x +-- Type: Equation Polynomial Integer +-- Time: 0.07 (OT) = 0.07 sec +% + 4 +-- +-- +-- 4 2 3 3 2 2 4 2 +-- (5) (- x + 12x)y + 6x = (- 6x + 13x + 4)y + x + 13x - 12x + 4 +-- Type: Equation Polynomial Integer +-- Time: 0.69 (IN) + 0.01 (OT) = 0.70 sec +%-6*x**3 +-- +-- +-- 4 2 3 2 2 4 3 2 +-- (6) (- x + 12x)y = (- 6x + 13x + 4)y + x - 6x + 13x - 12x + 4 +-- Type: Equation Polynomial Integer +-- Time: 0.19 (IN) + 0.01 (OT) = 0.20 sec +leftZero % +-- +-- +-- 4 3 2 2 4 3 2 +-- (7) 0= (x - 6x + 13x - 12x + 4)y + x - 6x + 13x - 12x + 4 +-- Type: Equation Polynomial Integer +-- Time: 0.01 (IN) + 0.05 (OT) = 0.06 sec +swap % +-- +-- +-- 4 3 2 2 4 3 2 +-- (8) (x - 6x + 13x - 12x + 4)y + x - 6x + 13x - 12x + 4= 0 +-- Type: Equation Polynomial Integer +-- Time: 0.01 (IN) = 0.01 sec +factor lhs % +-- +-- +-- 2 2 2 +-- (9) (x - 2) (x - 1) (y + 1) +-- Type: Factored Polynomial Integer +-- Time: 0.50 (IN) + 0.09 (EV) + 0.30 (OT) = 0.89 sec +factorAndSplit eq +-- +-- +-- 2 +-- (10) [x - 2= 0,x - 1= 0,y + 1= 0] +-- Type: List Equation Polynomial Integer +-- Time: 0.09 (EV) + 0.21 (OT) = 0.30 sec +inv (eq :: EQ FRAC POLY INT) +-- +-- +-- 1 1 +-- (11) - ------------------------------------= - ---------------------- +-- 3 2 2 4 2 4 2 3 +-- (6x - 13x - 4)y - x - 13x + 12x (x - 12x)y - 6x + 4 +-- Type: Equation Fraction Polynomial Integer +-- Time: 0.03 (IN) = 0.03 sec +- % +-- +-- +-- 1 1 +-- (12) ------------------------------------= ---------------------- +-- 3 2 2 4 2 4 2 3 +-- (6x - 13x - 4)y - x - 13x + 12x (x - 12x)y - 6x + 4 +-- Type: Equation Fraction Polynomial Integer +-- Time: 0.01 (IN) + 0.01 (OT) = 0.02 sec + + +------------------------------------------------------------------- +-- bmt/09/29/92 coercion bug +-- fails with: +-- failed cannot be coerced to mode +-- (Record (: coef1 (Integer)) (: coef2 (Integer))) +-- fixed on 09/29/92 +------------------------------------------------------------------- +)clear all +(p,q):UP(x,INT) +p:=3*x**4+11*x**2-4 +q:=9*x**4+9*x**2-4 +myNextPrime: (INT,NNI) -> INT +myNextPrime(x,n)==nextPrime(x)$PRIMES(INT) +-- runs forever due to algebra bug in handling leading coefficients +modularGcd([p,q])$InnerModularGcd(INT,UP(x,INT),67108859,myNextPrime) + +------------------------------------------------------------------- +-- dewar/10/02/92 +-- actually, this was never wrong +------------------------------------------------------------------- +numeric(%e ** %pi) +--gives + (61) +-- 23.1406926327 7926900563 5493084578 4861294789 0532254433 2912200665 +-- 6744971913 2534837468 7163222983 2730035 + +------------------------------------------------------------------- +-- themos/10/07/92 +------------------------------------------------------------------- +)clear all +y:=operator 'y +deqx:=differentiate(y(x),x,2)+differentiate(y(x),x)+y(x) +solve(deqx,y,x) +solve(deqx,y,x=0,[1]) +deqt:=differentiate(y(t),t,2)+differentiate(y(t),t)+y(t) +solve(deqt,y,t) +solve(deqt,y,t=0,[1]) -- bug +deqz:=differentiate(y(z),z,2)+differentiate(y(z),z)+y(z) +solve(deqz,y,z) +solve(deqz,y,z=0,[1]) --bug + +------------------------------------------------------------------- +-- themos/10/07/92 equation +------------------------------------------------------------------- +)clear all +y:=operator 'y +deq:=D(y(x),x)+x**2=(y x)/x-(y x)**2 + + +------------------------------------------------------------------- +-- bmt/10/08/92 laplace +------------------------------------------------------------------- +)clear all +laplace(exp(-x**3)*x**7,x,s) + +------------------------------------------------------------------- +-- bmt/09/30/92 nonlinear ODE +------------------------------------------------------------------- +-- Any hope of solving the following which appeared in Barry +-- Simon's computer algebra test suite: +-- (Apparently it has Bernoulli form) +y:=operator 'y +x**2 * D(y x, x) + 2*x*(y x) - (y x)**3 = 0 +solve(%,y,x) + + +------------------------------------------------------------------- +-- sit/10/08/92 factor bug +------------------------------------------------------------------- +p:POLY FRAC INT := 3*(x+1) +-- is wrong (missing factor of 3). +factor(p)**2 + +------------------------------------------------------------------- +-- henderson/10/08/92 +------------------------------------------------------------------- +)clear all +--TextFile cliams that the operator readLineIfCan! returns "failed" when +--the end of the file is reached. In fact, I get a system error, which is +--not very useful: +--(16) ->readLineIfCan!(fp) +-- >> System error: +-- Unexpected end of #<input stream "/home/mcd/work/work">. +-- You are being returned to the top level of the interpreter. +fout:TextFile:=open("/tmp/foo","output") +write!(fout,"foo") +close!(fout) +fin:TextFile:=open("/tmp/foo","input") +readLineIfCan!(fin) +readLineIfCan!(fin) +close!(fin) +)lis (system "rm /tmp/foo") + +------------------------------------------------------------------- +-- bmt/10/08/92 factoring over SAEs +------------------------------------------------------------------- +)clear all +a | a**2+1 +(x+a)*(x+a+1) +factor % + +------------------------------------------------------------------- +-- miller/10/09/92 local vars in types +------------------------------------------------------------------- +)clear all +--Fixed (Victor's) bug with using local variables in type expressions +--assigned to local variables. It now gives a message and correctly uses +--interpret-only mode. +--The function changed was getAndEvalConstructorArgument from i-spec1.boot. + +------------------------------------------------------------------- +-- themos/10/19/92 +------------------------------------------------------------------- +)clear all +-- Do this in a virgin system +)set expose add constructor SquareMatrix +S2:= SquareMatrix(2,FRAC POLY INT); +V2: S2 := matrix([[v,-v],[-v,v]]); +I2: S2 := 1; +m:=5; +l: List(S2) := append(cons(V2+h*I2,_ + [(V2+2*h*I2) for i in 2 .. (m-1)]),_ + [V2+h*I2]) +A: SquareMatrix(m, S2) := diagonalMatrix(l) +-- did you get an error of deleteAssoc not defined ?? + +-- load definition of deleteAssoc +)li (load "/spad/obj/rios/interp/c-util") + +A: SquareMatrix(m, S2) := diagonalMatrix(l) +--now , can print. + +------------------------------------------------------------------- +-- bmt/10/19/92 squareFree bug +------------------------------------------------------------------- +-- has an extra factor of 2. +squareFree((2*x*y+1)*(x*y+1)**2) + +------------------------------------------------------------------- +-- bmt/10/19/92 division by zero error +------------------------------------------------------------------- +limit(atan(1/sin(x)),x=0) + +------------------------------------------------------------------- +-- bmt/10/19/92 limit problem +------------------------------------------------------------------- +)clear all +-- the left and right hand limits don't agree +limit(atan(-sin(x)/(cos(x)+e)),x=acos(-e)) +-- the left and right hand limits don't agree +limit(atan(1/(cos(x)+e)),x=acos(-e)) + +------------------------------------------------------------------- +-- grabmeier/10/19/92 unable to compute the determinant of an 8x8 +------------------------------------------------------------------- +)clear all +D := MATRIX FRAC(POLY INT) + + +d : (INT, Boolean) -> POLY INT +d(i,ss) == + ex := i rem 4 + if ex < 0 then ex := ex+4 + ss => + ex = 0 => 's + ex = 1 => 'sd + ex = 2 => 'sdd + 'sddd + ex = 0 => 1 + ex = 1 => 'd + ex = 2 => 'dd + 'ddd + + + +-- 1,d,dd,ddd,s,sd,sdd,sddd + +mTV4 : D := new(8,8,0) + +for i in 1..8 repeat + for j in 1..8 repeat + mTV4(i,j) := + i <= 4 => + j <= 4 => d(i+j-2, false) + d(-i+j,true) + j <= 4 => d(i+j-2,true) + d(-i+j,false) +mTV4 +gdd4 := determinant mTV4 + +------------------------------------------------------------------- +-- sutor/09/28/92 operator bug? +------------------------------------------------------------------- +)clear all +L n == + n = 0 => 1 + n = 1 => x + (2*n-1)/n * x * L(n-1) - (n-1)/n * L(n-2) +dx:=operator("D")::OP(POLY FRAC INT) +evaluate(dx,p+-> differentiate(p,'x)) +E n == (1-x**2)*dx**2-2*x*dx+n*(n+1) +L 15 +-- used to fail on this line +E 15 + +------------------------------------------------------------------- +-- bmt/10/12/92 EFSTRUC recursion problem +------------------------------------------------------------------- +)clear all +bug:=(1+x**(1/4))**(1/3)/(x**(1/2)) +-- gives a value stack overflow +integrate(bug,x) -- seems to go into infinite recursion in rischNormalize + +------------------------------------------------------------------- +-- james/10/28/92 coerce bug +------------------------------------------------------------------- +)clear all +-- improper character in Roman numeral: G +g::ROMAN + +------------------------------------------------------------------- +-- grabm/10/28/92 runs forever +------------------------------------------------------------------- +)clear all +-- this is quick +factor 1068303355883998767544567663620885466990173600 +-- but this runs forever +sqrt 1068303355883998767544567663620885466990173600 + + +------------------------------------------------------------------- +-- themos/11/05/92 fortran output bug +------------------------------------------------------------------- +)clear all +-- REAL T7,T6,T5,T4,T3,T2,T1 +-- T1=x*x +-- T2=2.*y**5 +-- T3=4.*T1 +-- T4=y**3 +-- T5=2.*T7 +-- T6=x**3 +-- T7=x**4 +-- R46=((T2+(T3+8.*x+8.)*T4+(T5+8.*T6+(-40.*T1))*y)*SIN(x)+(-T2+(-T3+ +-- &16.*x)*T4+(-T5+16.*T6)*y)*COS(x))/(y**8+4.*T1*y**6+6.*T7*y**4+4.*x +-- &**6*y*y+x**8) +-- T7 is referenced before it is defined +a1:=sin(x)/(x**2+y**2);a2:=D(a1,[x,y]);a2+D(a2,x) + +------------------------------------------------------------------- +-- grabm/11/05/92 +-- comment: +--I believe the "bug" is that the interpreter is converting gb which is +--a list of dmp style polynomials to a list of POLY type polynomials. +--Unfortunately the result of such a conversion is no longer a groebner basis. +--I don't see any reasonable way to prevent this, and would therefore have to +--classify this as "user error", when working with grobner bases, the user +--needs to force all his polynomials to be the appropriate type (thus having +--the correct ordering). +------------------------------------------------------------------- +-- expressing a symmetric functions in terms of elementary symm. functions +-- working in POLY INT is o.k. +R := FRAC INT +-- (1) Fraction Integer +lpx : List POLY R := [x1+x2+x3, x1*x2+x1*x3+x2*x3,x1*x2*x3] +-- (2) [x3 + x2 + x1,(x2 + x1)x3 + x1 x2,x1 x2 x3] +lip := [lpx.1-e3, lpx.2-e2, lpx.3-e1] +-- (3) [x3 + x2 + x1 - e3,(x2 + x1)x3 + x1 x2 - e2,x1 x2 x3 - e1] +gbp := groebner lip +-- (4) +-- 2 2 +-- [x3 + x2 + x1 - e3, x2 + (x1 - e3)x2 + x1 - e3 x1 + e2, +-- 3 2 +-- x1 - e3 x1 + e2 x1 - e1] +normalForm(x1**2+x2**2+x3**2,gbp) +-- 2 +-- (5) e3 - 2e2 +-- working in DMP is o.k. +dmp := DMP([x1,x2,x3,e1,e2,e3],INT) +-- (6) DistributedMultivariatePolynomial([x1,x2,x3,e1,e2,e3],Integer) +li : List dmp := [lpx.1-e1, lpx.2-e2, lpx.3-e3] +-- (7) [x1 + x2 + x3 - e1,x1 x2 + x1 x3 + x2 x3 - e2,x1 x2 x3 - e3] +gb := groebner li +-- (8) +-- 2 2 +-- [x1 + x2 + x3 - e1, x2 + x2 x3 - x2 e1 + x3 - x3 e1 + e2, +-- 3 2 +-- x3 - x3 e1 + x3 e2 - e3] +p:dmp:=(x1**2+x2**2+x3**2) +-- 2 2 2 +-- (9) x1 + x2 + x3 +normalForm(p,gb) +-- 2 +-- (10) e1 - 2e2 +-- but we have some problems (coercion? ordering?) here: +normalForm(x1**2+x2**2+x3**2,gb) +-- 2 2 2 +-- (11) 2x2 + (2x1 - 2e1)x2 + 2x1 - 2e1 x1 + e1 + + + + +------------------------------------------------------------------- +-- bmt/11/17/92 Ifintegrate +------------------------------------------------------------------- +--It seems that one cannot simply parametrize reducible curves. +--Any attempt at parametrization can only follow one branch. +--For curves of the form y**2=a**2*x**2+b*x+c, these are only reducible +--if a**2*x**2+b*x+c is a perfect square. Basically I think we need to +--choose 1 branch in this case. Under some circumstances we could +--try to proceed down both branches and then unify the result, but for +--the time being, perhaps we should just perform the substitution +--y=sqrt(a**2*x**2+b*x+c) whenever that is a perfect square. +--(then we don't even need to do any back subsitution or change to dx). +-- +--For another example, perhaps due to the same essential difficulty try +integrate(normalize(sqrt(1+cos(x)),x),x) +-- this gets a non-invertible error + +--I have fixed integrate(sqrt(1+cos(x)),x) and +--integrate(normalize(sqrt(1+cos(x)),x),x) +--fix was to function prootintegrate in INTPAF in intaf.spad + + +------------------------------------------------------------------- +-- james/02/11/93 integrate +-- used to give error: +-- No identity element for reduce of empty list using operation +-- max +------------------------------------------------------------------- +integrate(((-x-1)*log((x**2+x))**2+2*log(x))/(x+1),x) + +------------------------------------------------------------------- +-- dewar/02/15/93 +------------------------------------------------------------------- +)clear all +--i::Polynomial(Integer) +--%::Union(Symbol,Polynomial Integer) +--list % +-- +--this is a bug in old style union handling, this style of unions +--will become obsolete, so the suggested fix is to use tagged unions instead: +i::POLY INT +%::Union(s:Symbol, p:POLY INT) +list % -- works + +------------------------------------------------------------------- +-- grabm/03/04/93 +-- parser bug? not for system commands +------------------------------------------------------------------- +)clear all +-- gives error: Sorry, but no option begins with upd; +)load /spad/mnt/rios/algebra/EQ )upd; a:=1 +-- works +)load /spad/mnt/rios/algebra/EQ )upd ; a:=1 + +------------------------------------------------------------------- +-- bronstein/03/08/93 +------------------------------------------------------------------- +)clear all +I:=operator 'I +J:=operator 'J +eq := mu * D(I x,x) = - (K + S) * I(x) + S*J(x) +solve(eq,I,x) +--> wrong particular solution + +------------------------------------------------------------------- +-- dewar/03/16/93 +-- bug writing backslash to files +--comment: +--This is not a bug, what is written to the file is the lisp representation +--of the string "\\test" (since '\' is lisp escape character). +--The file is read and written using lisp primitives and thus the escape +--characters need to be doubled. This is consistent, since if you read the +--item back in from the file, the correct string is reconstituted. +-- +--If you want to create a text file which simply contains lines of text +--instead of lines of lisp strings, use: +--ofile : TextFile := open("test","output") ... +--then you will get a file of literal strings with no string delimiters and +--no escape characters. +------------------------------------------------------------------- +)clear all +ofile: File String := open("/tmp/test","output") +-- this writes "\\\\test" but should write "\\test" +write!(ofile,"\\test"::String) +close! ofile + +------------------------------------------------------------------- +-- themos/04/07/93 +-- this sometimes fails +-- comment: +--thanks for tracing down the problem. Basically the lines for monicizing +--the result need to be done before we try to +--retract back from the algebraic extension. +------------------------------------------------------------------- +)clear all +pol:DMP([x,y,z],PF(2)):=x**2*y**2+x**2*y*z+x**2*z**2+x*y*z**2+y**3*z+y*z**3 +factor pol + +------------------------------------------------------------------- +-- williamson/04/21/93 +-- comment: +--I ran into some problems when factoring polynomials over number fields. +--Evidently the interpretor doesn't choose the correct function 'factor'. +--It uses a function from MULTFACT, when it should be using a function from +--SAEFACT. +------------------------------------------------------------------- +)clear all +up := UP('w,FRAC INT) +p : up := w**4 + w**3 + w**2 + w + 1 +sae := SAE(FRAC INT,up,p) +q : UP('x,sae) := x**5 - 1 +factor q -- used to report: x**5-1 +saefact := SAEFACT(up,sae,UP('x,sae)) +factor(q)$saefact + +------------------------------------------------------------------- +-- grabm/04/30/93 +-- comment: +--This bug has been fixed at yorktown, in radix.spad, change line 163, the +--third line of intgroup to be: +-- empty? rest li => intToExpr first(li) +--and then recompile RADIX +------------------------------------------------------------------- +)clear all +-- results in 10 and not A +10::RadixExpansion(16) + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch (manuel bronstein) +------------------------------------------------------------------- +)clear all +r:=rule 'x == 1 +-- used to return x, now returns 1 +r x + +------------------------------------------------------------------- +-- ADK@scri.fsu.edu (tony kennedy) +------------------------------------------------------------------- +)clear all +factor(-12) +%**2 + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch (manuel bronstein) +-- >> Error: cannot retract nonconstant polynomial +------------------------------------------------------------------- +)clear all +complexNumeric(log(sqrt(-3))) + +------------------------------------------------------------------- +-- quitte@knuth.univ-poitiers.fr/8/15/93 (Claude Quitte) +------------------------------------------------------------------- +)clear all +--)abbreviation package TEST Test +-- +--Test() : with +-- +-- leftProductBy : Integer -> (Integer -> Integer) +-- rightProductBy : Integer -> Mapping(Integer, Integer) +-- +-- == add +-- +-- leftProductBy(n) == n * #1 +-- +-- rightProductBy(n : Integer) : Mapping(Integer, Integer) == #1 * n +-------------------------------------------------------------------------- +-- +--Why is it impossible to specify the target/cible types for the +--functions leftProductBy and rightProductBy in the body of the package ??? +-- +--The code for leftProductBy is correct but the code for rightProductBy +--troubles the compiler !!!! It seems to compile a LOCAL function with +--ANOTHER signature. +-- +-------------------------------------------------------------------------- +-- initializing NRLIB TEST for Test +-- compiling into NRLIB TEST +-- compiling exported leftProductBy : Integer -> Integer -> Integer +--Time: 0.35 SEC. +-- +-- compiling local rightProductBy : Integer -> Integer +--****** comp fails at level 2 with expression: ****** +--error in function rightProductBy +-- +--****** level 2 ****** +--$x:= #1 +--$m:= $EmptyMode +--$f:= +--((((|n| # #) (|rightProductBy| # # #) (|n| #) (|rightProductBy| # # #) ...))) +-- +-- >> Apparent user error: +-- no mode found for +-- #1 +-- You are being returned to the top level of the interpreter. +------------------------------------------------------------------------ +-- answer (barry): +-- +--Your problem in TEST about specifying target types which are Mapping's +--was a bug in the compiler and has been fixed for Axiom release 2.0. +-- + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/10/6/93 (Manuel Bronstein) +------------------------------------------------------------------- +)clear all +--Here is algfunc.spad with an old bug fixed: eventh-roots of negative floats +--coerced to EXPR FLOAT (e.g. sqrt(-1::EXPR FLOAT)) used to produced an error +--message since the sqrt from FLOAT was called. +--I have now fixed iroot from AF(R,) +--to call the sqrt from R only if either R is algebraically closed, or the +--root is odd, or the argument is positive. Here's the new behaviour: +sqrt(-1::EXPR FLOAT) +sqrt(2::EXPR FLOAT) +nthRoot(-2::EXPR FLOAT, 3) +nthRoot(-2::EXPR FLOAT, 4) +--As a side-effect, this fixes the problem with numeric +-- (which was instantiating sqrt(-1)$EXPR(FLOAT)). + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/10/6/93 (Manuel Bronstein) +------------------------------------------------------------------- +)clear all +--Here is an updated efstruc.spad where ker2trigs now knows about abs. +real abs(4 + %i * 5) -- does the right thing. + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/10/5/93 (Manuel Bronstein) +------------------------------------------------------------------- +)clear all +--Here is again an enhanced elemntry.spad. What happens now is that +exp(q * %i * %pi) +--gets automatically simplifed whenever q is a rational number whose +--denominator is one of {1,2,3,4,6}. +exp(5/3*%i*%pi) + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/10/4/93 (Manuel Bronstein) +-- luczak@nag.com (Richard Luczak) +------------------------------------------------------------------- +)clear all +exp(log(-1)) +sum((-1)**k * (k+m),k=0..n) + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/10/4/93 (Manuel Bronstein) +------------------------------------------------------------------- +)clear all +--simplifies (abs now checks quotients instead of just retraction to R). +abs((1/2)::EXPR(INT)) + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/10/4/93 (Manuel Bronstein) +------------------------------------------------------------------- +)clear all +integrate(1/(x**2 + %i*a),x) + +------------------------------------------------------------------- +-- bmt@spadserv.watson.ibm.com/9/28/93 (Barry Trager) +------------------------------------------------------------------- +)clear all +limit(1/2**n,n=%plusInfinity) + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/9/22/93 (Manuel Bronstein) +------------------------------------------------------------------- +)clear all +--Here is an update to efstruc.spad that handles complex constants much better. +--Negative square roots and negative logs are now recognized as complex and +--treated properly by real?, real, imag, and complexForm: +x := sqrt(-3) + sqrt 2 + sqrt(- exp a) + log(-a**2-1) +real? x +real x +imag x +--As a result, integrals involving sqrt(-2) etc... are now treated correctly +--(this was the case only for sqrt(-1) with the older version). + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/9/22/93 (Manuel Bronstein) +------------------------------------------------------------------- +)clear all +-->> haha := rule x*x == z +-->> haha(a*a + b*b + c**2) --> 3z +-->> haha(a*a + b*b + c**2 + d*d) --> z +-->> +-->> the bug is that the last line returns z instead of 4z. +-- +--Sorry guys, this is not a bug: haha is so general a rule that it matches +--the integer 4 (as 2 squared), so the rewrite chain for the last example is: +-- +--a*a + b*b + c**2 + d*d ---> z + z + z + z = 4 * z ---> z * z ---> z +-- +--Here is a console showing what exactly happens: +haha := rule x*x == z +haha 4 +haha 3 +haha(4*z) +haha(3*z) +--To see the whole rewrite chain: +a*a + b*b + c**2 + d*d +applyRules([haha], %, 1)$APPRULE(INT,INT,EXPR INT) +applyRules([haha], %, 1)$APPRULE(INT,INT,EXPR INT) +applyRules([haha], %, 1)$APPRULE(INT,INT,EXPR INT) +--I think it's actually the proper behavior for the pattern matcher. This +--example shows that rules can bite, something Mma users are quite aware about! + +------------------------------------------------------------------- +-- dewar/9/16/93 (mike dewar) +------------------------------------------------------------------- +--There's an odd discontinuity about the behaviour of the following +--function: + +harm(1) == 1 +harm(n) == harm(n-1) + 1/n +harm : Integer -> Fraction Integer +harm(1023) -- takes a little while, as expected +harm(1024) -- takes forever? + +------------------------------------------------------------------- +-- williams@inf.ethz.ch/9/1/93 (Clifton Williamson) +------------------------------------------------------------------- +--> we should probably support integrate(%,x) on series types. +--> x could be either the variable of expansion or a parameter variable. +-- +--We've discussed this before with regard to the function 'differentiate'. +--The technical problem is that "generalized" power series may have +--"coefficients" involving the series variable: +series(x**x,x=0) +--In this case, as currently implemented, 'differentiate' returns incorrect +--answers: +)set mess test off +differentiate % +)set mess test on +--The solution we discussed (perhaps "resolution" is a better word) was to +--create a separate series type for generalized series. This would be a +--carbon copy of UPXS, except that differentiate(series,variable(series)) and +--integrate(series,variable(series)) would return an error message. The +--error message could also suggest that the user first apply 'approximate', +--then compute a derivative or integral. We would also have a coercion from +--UPXS to this type. The function 'series' would return a UPXS, when the +--coefficients do not involve the series variable, and a "generalized series", +--when the coefficients involve the series variable. +-- +--If this sounds cool to you, I'll go ahead with it when I have time. (I'm +--trying to meet a 16 September deadline for a MEGA '94 submission. I'm still +--getting my results together, so time is tight. Let me know if there is a +--time deadline for the AXIOM code!) +-- +--> Also we need better tools for taking finite truncations of series objects. +--> In particular since we now mostly use series(expr,var) to create a series, +--> UPXS if over a coefficient domain which supports the symbol of expansion, +--> should be able to truncate a series to an EXPR. +-- +--I thought I had you on this one! The signature is there (in pscat.spad): +-- +-- if Coef has coerce: Symbol -> Coef then +-- if Coef has "**":(Coef,Expon) -> Coef then +-- approximate: ($,Expon) -> Coef +-- ++ \spad{approximate(f)} returns a truncated power series with the +-- ++ series variable viewed as an element of the coefficient domain. +-- +--It certainly works for Laurent series: +laurent(cos(a+x)/x,x=0) +approximate(%,3) +--But, unfortunately, I never implemented it for Puiseux series: +puiseux(cos(a+x)/x,x=0) +approximate(%,3) +series(cos(x**(2/3) + a),x=0) +approximate(%,2) +approximate(%% 1,7/5) + + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/10/6/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +)set message type off + +-- Here is algfunc.spad with an old bug fixed: eventh-roots of negative floats +-- coerced to EXPR FLOAT (e.g. sqrt(-1::EXPR FLOAT)) used to produced an error +-- message since the sqrt from FLOAT was called. +-- I have now fixed iroot from AF(R,) +-- to call the sqrt from R only if either R is algebraically closed, or the +-- root is odd, or the argument is positive. Here's the new behaviour: +sqrt(-1::EXPR FLOAT) +sqrt(2::EXPR FLOAT) +nthRoot(-2::EXPR FLOAT, 3) +nthRoot(-2::EXPR FLOAT, 4) +--As a side-effect, this fixes the problem with numeric +-- (which was instantiating sqrt(-1)$EXPR(FLOAT)). + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/9/22/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +--Here is a (rather major) bug fix to ffactor in FSUPFACT.NRLIB. It causes +--a large family of integrals to return 0, because ffactor(?**2+expr) returned +--?**2 when expr involved a parameter. This is fixed now. + +------------------------------------------------------------------- +-- jhd@maths.bath.ac.uk/8/15/93 James Davenport +------------------------------------------------------------------- +)clear all +integrate(1/(x*(log(x)**2+a**2-1)),x) +-- (1) +-- VCONCAT +-- log(x) +-- atan(---------) +-- +------+ +-- | 2 +-- 2 \|a - 1 +-- ((- a + 1<0) -> ---------------) +-- +------+ +-- | 2 +-- \|a - 1 +-- , +-- PAREN +-- 2 +-- (- a + 1>0) +-- -> +-- +--------+ +-- 2 2 | 2 2 +-- log((log(x) - a + 1)\|- a + 1 + (2a - 2)log(x)) +-- + +-- 2 2 +-- - log(log(x) + a - 1) +-- / +-- +--------+ +-- | 2 +-- 2\|- a + 1 +-- , +-- 1 +-- ( Or (a - 1=0) -> - ------) +-- (a + 1=0) log(x) +-- Type: ConditionalExpression Integer +-- +--is still fairly ugly. + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/8/9/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +--Here is efstruc.spad with a change to normalize so that +normalize(2**(1/2) + 2**(1/4)) now returns 2**(1/4) ** 2 + 2**(1/4). + + +------------------------------------------------------------------- +-- satoshi@yktvmv.vnet.ibm.com/8/7/93 satoshi hamaguchi +------------------------------------------------------------------- +)clear all +-- In axiom, both + integrate(%e**x,x=0..1) +--and + integrate(log(x),x=1..2) +--yield a warning potentialPole . +--If I use "noPole", they give right answers. Isn't this a bug? +--... Satoshi + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/8/5/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +simplify(2**(1/3)*2**(1/2)) -- will return 2**(5/6). + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +integrate(1/sqrt(1+cos(x)), x) + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +normalize atan(cos(x)/sin(x)) -- used to be division by 0 error + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +a := 2**(1/6) +[a**n for n in 2..13] + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +int:=sqrt(a*(1-u**2)/(1+u**2))/u +integrate(eval(int,a=1),u) -- works +integrate(eval(int,a=sqrt(-1)),u) -- seems to run forever +integrate(eval(int,a=1)*(-1)**(1/4),u) -- dies after a long time + -- with an elt index error. + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +sqrt((1-x**2)*(1-k**2*x**2)) +integrate(x/%,x) + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/7/26/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +rad:=last zerosOf((2+y)**8-3,y) +k:=first kernels % +eval(rad,k,rad) + +------------------------------------------------------------------- +-- nagttt@vax.ox.ac.uk/7/15/93 themos tsikas +------------------------------------------------------------------- +)clear all +f := (x - y) / (x + y) +eval(f,x=1/x) + +------------------------------------------------------------------- +-- nagttt@vax.ox.ac.uk/7/15/93 themos tsikas +------------------------------------------------------------------- +)clear all +digits 200 +--I claim that these two should give the same result (they do in Reduce): +--(precision was 200) +a:=4*sin(2*%pi/9)*sin(5*%pi/9)/sqrt(3) +b:=1/(2*sin(%pi/9)) +a::EXPR FLOAT +b::EXPR FLOAT + +------------------------------------------------------------------- +-- bmt@spadserv.watson.ibm.com/9/15/93 (Barry Trager) +------------------------------------------------------------------- +)clear all +limit(tanh(x),x=%plusInfinity) + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/6/14/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +a := x::EXPR INT +b := x::EXPR COMPLEX INT +zeroOf(a**4+1,x) +zeroOf(b**4+1,x) + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/6/11/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +normalize(0**a) -- now returns 0 (was crashing before) + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/6/11/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +- new export complexForm(f) which returns the rectangular complex form of f: +log(a+%i * b) +complexForm % +complexIntegrate(1/(x-%i),x) +complexForm % + +------------------------------------------------------------------- +-- jcf@posso.ibp.fr +------------------------------------------------------------------- +-- normalForm est faux pour les polynomes a coef dans un anneau: +D:=DMP([a,b],INT) +l:List D:=[2*a-1,b-a] +g:=groebner l +p:D:=a +normalForm(p,g) +-- was 1 +-- au lieu de 1/2 !! + +------------------------------------------------------------------- +-- nagttt@vax.ox.ac.uk/6/9/93 themos tsikas +------------------------------------------------------------------- +)clear all +squareFreePart(50) + +------------------------------------------------------------------- +-- mcd@maths.bath.ac.uk/6/4/92 mike dewar +------------------------------------------------------------------- +)clear all +f:=complexIntegrate(1/((x-%i)*(x-2*%i)),x) +g:=subst(f,x=1) +imag g + +------------------------------------------------------------------- +-- daly +------------------------------------------------------------------- +)clear all +-- not wrong but the order is obscure... +primes(1,10) + +------------------------------------------------------------------- +-- nagttt@vax.ox.ac.uk/1/11/93 themos tsikas +------------------------------------------------------------------- +)clear all +m:=matrix[[1,a,0],[b,0,a],[0,b,c]] +ll:=radicalEigenvectors m +-- ends in error: +-- Internal system problem in function appInfix : fewer than 2 arguments to +-- an infix function +-- +-- but this works +ll 1 +ll 2 +ll 3 + + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/11/24/93 Manuel Bronstein +------------------------------------------------------------------- +--)clear all +--Here's a bug that appears with the )math option only. +-- +--)tr MATRIX )ops determinant )math +-- +-- Parameterized constructors traced: +-- MATRIX +-- this integrate is commented out since it runs forever (at least many hours) +--integrate(sqrt(1/x+1)*sqrt(x)-sqrt(x+1),x) +--1<enter Matrix.determinant,26 : +-- +-- Internal system problem in function appInfix : +-- fewer than 2 arguments to an infix function + +------------------------------------------------------------------- +-- copper@yktvmv/12/1/93 Don Coppersmith +------------------------------------------------------------------- +)clear all +--Attached is the list of integers n such that 2**512-n is prime +--and n is between 0 and 5000: +-- +-- 4893,4653,4475,4005,3893,3669,3459,3143,2967, +-- 2807,2529,1827,1695,975,875,629,569 + +--It was gotten from Axiom by issuing the commands +qrimes : Stream Integer := generate(nextPrime,2**512-5000) +rrimes := [ 2**512-p for p in qrimes while p < 2**512 ] +srimes := complete rrimes +[srimes.i for i in [1..18]] +[srimes.i for i in [10..18]] + +------------------------------------------------------------------- +-- miker@num-alg-grp.co.uk/12/13/93 (Mike Richardson) +------------------------------------------------------------------- +)clear all +-- +--This is fixed now. You get an Expression Float. +-- +--> +--> I suspect that this is an example of the same thing - but it looks +--> worse: +--> +--> (145) ->X := log(0.7*%i*x) +--> +--> >> Error detected within library code: +--> negative root +--> +--> Mike +--> + + +------------------------------------------------------------------- +-- sutor@yktpub.watson.ibm.com/12/15/93 (Robert S. Sutor) +------------------------------------------------------------------- +)clear all +--enter Integer in input box +--choose domains +--choose Description +--click on Convertible(String) +-- +--page cannot be formatted + +------------------------------------------------------------------- +-- bmt@posso.dm.unipi.it12/15/93 (barry trager) +------------------------------------------------------------------- +)clear all +log2() --> Float +exp1() --> DoubleFLoat ??? + + +------------------------------------------------------------------- +-- quitte@knuth.univ-poitiers.fr/12/14/93 Claude Quitte +------------------------------------------------------------------- +)clear all +--There is a bug in the function delete_! for the type List ; this function, +--has two arguments, a list L and an integer n : delete_!(L, n) returns +--a list L with the n nth-item deleted, MODIFYING its argument L. +-- +--But for n = 1, the argument L is not MODIFIED !!! (exactly for n = +--minIndex(L)). An extract of the package ListAggregate (abbreviation LSAGG, +--file aggcat.spad). +-- +-- +---------------------------------------------------------------------- +--ListAggregate(S:Object): Category == Join(StreamAggregate S, +-- FiniteLinearAggregate S, ExtensibleLinearAggregate S) with +-- list: S -> $ +-- ++ list(x) returns the list of one element x. +-- add +-- .......... +-- +-- delete_!(x:$, i:I) == +-- i < (m := minIndex x) => error "index out of range" +-- i = m => rest x ****** <- here is the error +-- y := rest(x, (i - 1 - m)::N) +-- setrest_!(y, rest(y, 2)) +-- x +-- +--A little session : +-- +L : List(String) := ["There is", "it seems", "a real bug", "here"] +-- (1) ["There is","it seems","a real bug","here"] +-- Type: List String +-- +L1 := delete!(L, 1) +-- (2) ["it seems","a real bug","here"] +-- Type: List String +L +-- (3) ["There is","it seems","a real bug","here"] +-- Type: List String +-- +L2 := delete!(L, 2) +-- (4) ["There is","a real bug","here"] +-- Type: List String +L +-- (5) ["There is","a real bug","here"] +-- +--Is there a way to fix this bug quickly ?? (I am ready to modify the source +--Axiom aggcat.spad). +--The problem with ! functions lies in the documentation not in the code. We +--need to explain more clearly that ! functions are ALLOWED to update their +--arguments, not REQUIRED to do so. +--Whenever using ! functions you should always +--use the returned result, not try to use the updated argument. This is how +--the code is designed. +--For example if you try to do insert! into an empty list, +--the argument is not updatable and thus a new list is created. The reason for +--having ! operations is for efficiency to do less copying, not to guarantee +--that given arguments will always be updated. So the correct use is to only +--depend on the results returned by updating functions. + + +------------------------------------------------------------------- +-- quitte@knuth.univ-poitiers.fr/1/13/94 Claude Quitte +------------------------------------------------------------------- +)clear all +K := Fraction(Integer) +PolK := UP('X, K) +X : PolK := monomial(1, 1) +n : PositiveInteger := 15 +E := SimpleAlgebraicExtension(K, PolK, X**n + X**(n-3) -1) +y : E := X::E +minimalPolynomial(y)$E +-- +--Internal Error +--The function minimalPolynomial with signature SimpleAlgebraicExtension( +--Fraction Integer,UnivariatePolynomial(X,Fraction Integer),X**15+X**12-1) +---> UnivariatePolynomial(X,Fraction Integer) is missing from domain +--SimpleAlgebraicExtension(Fraction (Integer)) +--(UnivariatePolynomial X (Fraction (Integer)))((15 1 . 1) (12 1 . 1) (0 -1 . 1)) + +------------------------------------------------------------------- +-- luczak@nag.com/02/20/94 (Richard Luczak) +------------------------------------------------------------------- +)clear all +-- +--I'm trying to define the following rule +-- +tr := rule cos(x)**(n | integer? n and even? n)==(1-sin(x)**2)**(n/2) +-- +--Axiom returns +-- +-- Cannot find a definition or library operation named even? with argument +-- types +-- Expression Integer +-- +-- We will attempt to step through and interpret the code. +-- +-- n +-- - +-- n 2 2 +-- (2) cos(x) == (- sin(x) + 1) +-- Type: RewriteRule(Integer,Integer,Expression Integer) +-- +-- +--and henceforth the rule does not work as desired. Variations on the same bug +--occur involving positive?. Of course, I get what I want using integer?(n/2) +--but ... Is this a bug? +-- +-- from barry: +-- +--Should use integer? n and even? integer n instead. +-- +--I toyed with the idea of implementing: +-- even? x == integer? x and even? integer x +-- odd? x == integer? x and odd? integer x +--in EXPR, but this would mean that (x +-> even? x or odd? x) is not always +--true anymore and I'm not sure it's a good idea. If you guys don't think it's +--a problem, it takes 2 minutes to add it to EXPR R when R has RETRACT INT +--(don't use integer? but retractIfCan@Union(Integer, "failed")). + +------------------------------------------------------------------- +-- copper@yktvmv.vnet.ibm.com/02/22/94 don coppersmith +------------------------------------------------------------------- +)clear all +--Questions that came up using Axiom on Aixproj: +-- +--How does one find a Pade approximation? I tried pade(2,2,y) +--pade(y,2,2) Pade(2,2,y) PadeApproximation(2,2,y) +--(where y is a series in x) to no avail. +-- +--Complaint: The error message +-- +-- Could not find library function "pade" with arguments +-- (integer, integer, series). +-- +--is misleading. If it can't find any "pade", then say +-- +-- Could not find library function "pade". +-- +--If there is such a function, but I've got the arguments wrong, +--why not say +-- +-- The library function "pade" takes arguments +-- (series, integer, integer) +-- +--or at least make that information available somehow. +-- +-- from bob sutor: +-- +--Don, +-- Try using )what op pade to see what is available. This will give +--you all operations with "pade" in their names. You can also search for +--*pade* via the HyperDoc Browse utility. If you don't use Browse, following +--up with, say, )display op pade, will give you a more information, though +--it is badly formatted (I will look at that). +-- +--Aixproj is back-level, so I'm not sure exactly what is up their +--relative to the current system. +-- +--I agree we could use better messages regarding unknown functions +--and I will look at that. +-- Bob +-- +-- from bob sutor: +-- +--The pade operation requires a taylor series as its third object while +--"series" returns a UnivariatePuiseuxSeries. If you set +-- y := taylor(1+x)**(1/5) +--then things work. You can also do +-- pade(1,1,y :: UTS(EXPR INT, x, 0) ) +--but this is more work if you really have a Taylor series. +-- +--This is unintuitive and there should be a "pade" for Puiseux series that +--fails if the series is not appropriate. Barry? I will now look at adding +--a bit more coercion support to the interpreter to allow Puiseux series +--to possibly retract to Laurent series and then possibly to Taylor series. +-- +--Don, +-- I added the retractions I mentioned before to the development system. +--When the system is unsuccessful in matching a UnivariatePuiseuxSeries +--to an operation, it will first try to retract it to a +--UnivariateLaurentSeries. If that fails still, it will try to retract to +--a UnivariateTaylorSeries. +-- +-- Be aware that this sort of thing happens when you are evaluating +--an expression. If you are defining a function, you should add +--explicit coercions or create objects of the correct type for +--efficiency. You function may still work, but it may not run in +--a compiled form. + +------------------------------------------------------------------- +-- barry@num-alg-grp.co.uk/02/24/94 Barry Trager +------------------------------------------------------------------- +)clear all +sqrt(2)*2.0 -- fails +sqrt(2)::EXPR INT * 2.0 -- works + +-- tpd: this now fails with sample : () -> Reference Integer is missing +-- from domain: Integer +-- Internal Error + + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/02/28/94 Manuel Bronstein +------------------------------------------------------------------- +)clear all +f := exp(exp(x)*exp(1/exp(x))) / exp exp x +--)tr LIMITPS )math +--)tr DFINTTLS )math +--)tr DFINTTLS_;findLimit +-- the following exits back to the shell after limit returns "failed": +computeInt(first tower f, f, 0, %plusInfinity, false)$DFINTTLS(INT, EXPR INT) + +------------------------------------------------------------------- +-- jhd@maths.bath.ac.uk/03/02/94 James Davenport +------------------------------------------------------------------- +)clear all +--I've fixed coercions of List and Vector to DirectProduct. +--You can now do things like +[1,2,3] :: DirectProduct(3, Fraction Integer) +-- +--I also fixed coercions from Vector to List, which seems to have +--been removed via a library change. + +------------------------------------------------------------------- +-- jhd@maths.bath.ac.uk/03/09/94 James Davenport +------------------------------------------------------------------- +)clear all +-- used to give a lisp error +x**10+1::Polynomial PrimeField 2 + +------------------------------------------------------------------- +-- themos@num-alg-grp.co.uk/03/11/94 Themos Tsikas +------------------------------------------------------------------- +)clear all +f(x)==x**2 +draw(f,-1..1) + +------------------------------------------------------------------- +-- themos@num-alg-grp.co.uk/03/16/94 Themos Tsikas +------------------------------------------------------------------- +)clear all +--The problem was that nobody was around to catch the coerceOrCroaker. +--Just comment out the first line of intCodeGenCoerce1 in i-code.boot +--(the one with the explicit THROW). Bothe the riemannSphereDraw and JHD's +--original example will then work. -- bob sutor +)read conformal +riemannSphereDraw(1..2,0..%pi,4,4,"polar") + + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/float.input.pamphlet b/src/input/float.input.pamphlet new file mode 100644 index 00000000..3625fd0c --- /dev/null +++ b/src/input/float.input.pamphlet @@ -0,0 +1,44 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input float.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- this demonstrates Floats and the result of changing precision +)cl all +-- look at 28 digits of accuracy (default is 20) +digits 28 +p := numeric %pi +a := 163.0 +b := sqrt a +-- following appears to be an integer +exp(p * b) +-- increase the precision to 60 and recalculate +digits 60 +p := numeric %pi +a := 163.0 +b := sqrt a +exp(p * b) +c := cos(p/12) +-- we have enough precision to get 0 in following +16*c**4 - 16*c**2 + 1 +-- look at PI to 200 places +numeric(%pi, 200) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/float1.input.pamphlet b/src/input/float1.input.pamphlet new file mode 100644 index 00000000..c050e21a --- /dev/null +++ b/src/input/float1.input.pamphlet @@ -0,0 +1,75 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input FLOAT.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from FloatXmpPage +)clear all + + +-- Input generated from ugxFloatIntroPage +)clear all + +1.234 +1.234E2 +sqrt(1.2 + 2.3 / 3.4 ** 4.5) + +-- Input generated from ugxFloatConvertPage +)clear all + +i := 3 :: Float +i :: Integer +i :: Fraction Integer +r := 3/7 :: Float +r :: Fraction Integer +r :: Integer +truncate 3.6 +round 3.6 +truncate(-3.6) +round(-3.6) +fractionPart 3.6 +digits 40 +sqrt 0.2 +pi()$Float +digits 500 +pi()$Float +digits 20 + +-- Input generated from ugxFloatOutputPage +)clear all + +outputSpacing 0; x := sqrt 0.2 +outputSpacing 5; x +y := x/10**10 +outputFloating(); x +outputFixed(); y +outputFloating 2; y +outputFixed 2; x +outputGeneral() + +-- Input generated from ugxFloatHilbertPage +)clear all + +a: Matrix Fraction Integer := matrix [[1/(i+j+1) for j in 0..9] for i in 0..9] +d:= determinant a +d :: Float +b: Matrix DoubleFloat := matrix [[1/(i+j+1$DoubleFloat) for j in 0..9] for i in 0..9]; +determinant b +digits 40 +c: Matrix Float := matrix [[1/(i+j+1$Float) for j in 0..9] for i in 0..9]; +determinant c +digits 20 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/float2.input.pamphlet b/src/input/float2.input.pamphlet new file mode 100644 index 00000000..605fc8ce --- /dev/null +++ b/src/input/float2.input.pamphlet @@ -0,0 +1,68 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input float2.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +\eject +<<*>>= +<<license>> + +f := 2.0/3 +log exp f +asin sin f +acos cos f +atan tan f +asinh sinh f +acosh cosh f +atanh tanh f +sqrt(f**2) +4*atan(1.0)-%pi +log exp1() +exp log2() +exp log10() + +f := 100.0/7 +exp log f +sqrt(f**2) +sin(f)**2+cos(f)**2 +sinh(f)**2-cosh(f)**2 +truncate f +round f +fractionPart f +ceiling f +floor f +wholePart f + +digits 50 +f := 1.0/3 +exp log f +asin sin f +acos cos f +atan tan f +asinh sinh f +acosh cosh f +atanh tanh f +log exp1() +sin numeric %pi +exp log2() +exp log10() + +f := 1024.0 +log2 f +f := 1000.0 +log10 f +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/fname.input.pamphlet b/src/input/fname.input.pamphlet new file mode 100644 index 00000000..d37a83a4 --- /dev/null +++ b/src/input/fname.input.pamphlet @@ -0,0 +1,43 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input fname.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)system touch /tmp/reado +)system chmod +r,-w /tmp/reado +)system touch /tmp/writo +)system chmod +w,-r /tmp/writo + +nullo: FNAME := new("", "nullo", "x") +reado: FNAME := filename("/tmp", "reado", "") +writo: FNAME := "/tmp/writo" + +[directory reado, name reado, extension reado] +[directory writo, name writo, extension writo] +[directory nullo, name nullo, extension nullo] + +[exists? reado, readable? reado, writable? reado] +[exists? writo, readable? writo, writable? writo] +[exists? nullo, readable? nullo, writable? nullo] + +)system rm -f /tmp/reado +)system rm -f /tmp/writo +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/fname1.input.pamphlet b/src/input/fname1.input.pamphlet new file mode 100644 index 00000000..b0cbe49d --- /dev/null +++ b/src/input/fname1.input.pamphlet @@ -0,0 +1,40 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input FNAME.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from FileNameXmpPage +)clear all + +fn: FileName +fn := "/spad/src/input/fname.input" +directory fn +name fn +extension fn +fn := filename("/u/smwatt/work", "fname", "input") +objdir := "/tmp" +fn := filename(objdir, "table", "spad") +fn := filename("", "letter", "") +exists? "/etc/passwd" +readable? "/etc/passwd" +readable? "/etc/security/passwd" +readable? "/ect/passwd" +writable? "/etc/passwd" +writable? "/dev/null" +writable? "/etc/DoesNotExist" +writable? "/tmp/DoesNotExist" +fn := new(objdir, "xxx", "yy") +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/fnla.input.pamphlet b/src/input/fnla.input.pamphlet new file mode 100644 index 00000000..8dbb179c --- /dev/null +++ b/src/input/fnla.input.pamphlet @@ -0,0 +1,37 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input fnla.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)cl all + +fnl := FNLA(4,4,INT) + +dimension()$fnl + +x:fnl := generator(1) +y:fnl := generator(17) +z:=x*y + +deepExpand z +shallowExpand z + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/fns.input.pamphlet b/src/input/fns.input.pamphlet new file mode 100644 index 00000000..b183a586 --- /dev/null +++ b/src/input/fns.input.pamphlet @@ -0,0 +1,42 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input fns.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page ExampleFunctions +)clear all + +odd(i) == 2*i - 1 +[odd(i) for i in 1..10] +odd == i +-> 2*i - 1 +odd(1111) +[i for i in 2.. | prime? i] +primes := / +primes == [p := nextPrime(i = 0 => 2; p) for i in 1..] +primes +primes(20) +firstPrimes(n) == [primes(i) for i in 1..n] +firstPrimes(25) +primesLessThan(n) == [p for p in primes while p < n] +primesLessThan 1000 +isPrime? n == reduce(or,[n = p for p in primes while n <= p]) +isPrime?(1111) +twins := [p,p+2 for p in primes | prime?(p+2)] +twins := [p, p+2 for i in 1.. | (p := primes(i)) + 2 = primes(i+1)] +firsts := [p for i in 1.. | (p := primes(i)) + 2 = primes(i+1)] +twins := [p, p + 2 for p in firsts] +twins(i) ==firsts(i),2 + firsts(i) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/folium.input.pamphlet b/src/input/folium.input.pamphlet new file mode 100644 index 00000000..953ded16 --- /dev/null +++ b/src/input/folium.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input folium.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- @(#)folium.input 1.1 89/09/07 20:54:58 +draw(curve((t**2-1)/(3*t**2+1),t*(t**2-1)/(3*t**2+1)),t = -3..3, [title "Folium of Descartes"]) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/fparfrac.input.pamphlet b/src/input/fparfrac.input.pamphlet new file mode 100644 index 00000000..66cd3f73 --- /dev/null +++ b/src/input/fparfrac.input.pamphlet @@ -0,0 +1,61 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input fparfrac.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +---------------------------- fparfrac.input --------------------------------- +-- This file demonstrates the factor-free conversion to full partial fractions. +)cl all +Q := FRAC INT +Px := UP(x, Q) +Fx := FRAC Px + +-- here is a simple-looking function +f:Fx := 36 / (x**5-2*x**4-2*x**3+4*x**2+x-2) +-- use fullPartialFraction to convert to the type FPARFRAC +g := fullPartialFraction f +-- use :: to convert back to a rational function +g::Fx + +-- Full partial fractions differentiate faster than rational functions: +g5 := D(g, 5) +f5 := D(f, 5) +-- check that the two forms represent the same function +g5::Fx - f5 + +-- Here are more complicated examples: +f:Fx := (x**5 * (x-1)) / ((x**2 + x + 1)**2 * (x-2)**3) +g := fullPartialFraction f +g::Fx - f + +f:Fx := (2*x**7-7*x**5+26*x**3+8*x)/(x**8-5*x**6+6*x**4+4*x**2-8) +g := fullPartialFraction f +g::Fx - f + +f:Fx := x**3/(x**21+2*x**20+4*x**19+7*x**18+10*x**17+17*x**16+22*x**15+30*x**14 + +36*x**13+40*x**12+47*x**11+46*x**10+49*x**9+43*x**8+38*x**7 + +32*x**6+23*x**5+19*x**4+10*x**3+7*x**2+2*x+1) +g := fullPartialFraction f +-- this verification takes much longer than the conversion to partial fractions +g::Fx - f + + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/fparfrc.input.pamphlet b/src/input/fparfrc.input.pamphlet new file mode 100644 index 00000000..4fe76e5b --- /dev/null +++ b/src/input/fparfrc.input.pamphlet @@ -0,0 +1,38 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input FPARFRAC.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from FullPartialFractionExpansionXmpPage +)clear all + +Fx := FRAC UP(x, FRAC INT) +f : Fx := 36 / (x**5-2*x**4-2*x**3+4*x**2+x-2) +g := fullPartialFraction f +g :: Fx +g5 := D(g, 5) +f5 := D(f, 5) +g5::Fx - f5 +f : Fx := (x**5 * (x-1)) / ((x**2 + x + 1)**2 * (x-2)**3) +g := fullPartialFraction f +g :: Fx - f +f : Fx := (2*x**7-7*x**5+26*x**3+8*x) / (x**8-5*x**6+6*x**4+4*x**2-8) +g := fullPartialFraction f +g :: Fx - f +f:Fx := x**3 / (x**21 + 2*x**20 + 4*x**19 + 7*x**18 + 10*x**17 + 17*x**16 + 22*x**15 + 30*x**14 + 36*x**13 + 40*x**12 + 47*x**11 + 46*x**10 + 49*x**9 + 43*x**8 + 38*x**7 + 32*x**6 + 23*x**5 + 19*x**4 + 10*x**3 + 7*x**2 + 2*x + 1) +g := fullPartialFraction f +g :: Fx - f +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/fr.input.pamphlet b/src/input/fr.input.pamphlet new file mode 100644 index 00000000..bd276d0b --- /dev/null +++ b/src/input/fr.input.pamphlet @@ -0,0 +1,110 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input fr.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- Manipulation of factored integers +)clear all + +(x,y,z,w): FR INT +-- automatic coercion of integers to factored integers +x := 2**8 * 78**7 * 111**3 * 74534 +y := 2**4 * 45**3 * 162**6 * 774325 +-- computation of 50! +z1 := factorial 50 +z := z1 :: (FR INT) +-- examine the structure if a factor +nthFactor(z,1) +nthFlag(z,1) +nthExponent(z,1) +-- extract the factors in another form +factorList z +-- construct an object that has the factors to multiplicity one +r:=reduce(*,[(nthFactor(z,i) :: (FR INT)) for i in 1..(numberOfFactors z)]) +-- some arithmetic +exquo(z,r) +x*y +y*x +(x*y = y*x) :: BOOLEAN +gcd(x,z) +x+y +-- this is how you multiply the terms together +expand(x+y) +-- now look at quotients +f := x/y +g := (x ** 9) / y +f * g +(f * g) / (g * primeFactor(2,200)) +(f * g) / (g * primeFactor(2,200)) * z + + +--% Manipulation of factored polynomials +)clear all +)set history on + +(u,v,w): FR POLY INT + +-- coercion to FR POLY INT involves factoring +u := (x**4 - y**4) :: POLY INT +-- primeFactor creates factors that are asserted to be prime +v := primeFactor(x-y,2) * primeFactor(x+y,2) * primeFactor(x**2 + y**2,1) +w := factor(x**2 + 2*x*y + 2*x + 2*y + y**2 + 1) * primeFactor(x-y,2) +unit w +-- some ways of looking at the components of an elements of FR P I +l := factorList u +factorList v +factorList w +l.1.fctr +l.1.xpnt +nthFactor(u,1) +nthFactor(u,2) +nthFactor(u,3) +nthExponent(u,3) +nthFlag(u,3) +nthFactor(u,4) +-- this computes a factored object that is similar to v except that +-- each factor occurs with multiplicity 1 +s:=reduce(*,[(nthFactor(v,i) :: FR POLY INT) for i in 1..(numberOfFactors v)]) +-- some arithmetic +exquo(v,s) +gcd(u,v) +u + v +lcm(v,w) +u * v * w +-- "expand" multiplies the factors together +expand(u * v * w) +-- some quotients +u/w +w/(u*v) +-- %%(-1) is the last result, %%(-2) is the one before that +w/(u*v) * u/w +w/(u*v) + u/w + +differentiate(w,x) +differentiate(w,y) + +associates?(x,-x) + +characteristic()$FR POLY INT + +1$FR POLY INT +0$FR POLY INT +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/fr1.input.pamphlet b/src/input/fr1.input.pamphlet new file mode 100644 index 00000000..151b6fb2 --- /dev/null +++ b/src/input/fr1.input.pamphlet @@ -0,0 +1,80 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input FR.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from FactoredXmpPage +)clear all + + +-- Input generated from ugxFactoredDecompPage +)clear all + +g := factor(4312) +unit(g) +numberOfFactors(g) +[nthFactor(g,i) for i in 1..numberOfFactors(g)] +[nthExponent(g,i) for i in 1..numberOfFactors(g)] +[nthFlag(g,i) for i in 1..numberOfFactors(g)] +factorList(g) +factors(g) +first(%).factor + +-- Input generated from ugxFactoredExpandPage +)clear all + +g := factor(4312) +expand(g) +reduce(*,[t.factor for t in factors(g)]) + +-- Input generated from ugxFactoredArithPage +)clear all + +g := factor(4312) +f := factor(246960) +f * g +f**500 +gcd(f,g) +lcm(f,g) +f + g +f - g +zero?(factor(0)) +zero?(g) +one?(factor(1)) +one?(f) +0$Factored(Integer) +1$Factored(Integer) + +-- Input generated from ugxFactoredNewPage +)clear all + +nilFactor(24,2) +nthFlag(%,1) +sqfrFactor(30,2) +irreducibleFactor(13,10) +primeFactor(11,5) +h := factor(-720) +h - makeFR(unit(h),factorList(h)) + +-- Input generated from ugxFactoredVarPage +)clear all + +p := (4*x*x-12*x+9)*y*y + (4*x*x-12*x+9)*y + 28*x*x - 84*x + 63 +fp := factor(p) +D(p,x) +D(fp,x) +numberOfFactors(%) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/fr2.input.pamphlet b/src/input/fr2.input.pamphlet new file mode 100644 index 00000000..ff7407f3 --- /dev/null +++ b/src/input/fr2.input.pamphlet @@ -0,0 +1,28 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input FR2.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from FactoredFunctionsTwoXmpPage +)clear all + +double(x) == x + x +f := factor(720) +map(double,f) +makePoly(b) == x + b +g := map(makePoly,f) +nthFlag(g,1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/frac.input.pamphlet b/src/input/frac.input.pamphlet new file mode 100644 index 00000000..d1d5fbe2 --- /dev/null +++ b/src/input/frac.input.pamphlet @@ -0,0 +1,34 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input FRAC.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from FractionXmpPage +)clear all + +a := 11/12 +b := 23/24 +3 - a*b**2 + a + b/a +numer(a) +denom(b) +r := (x**2 + 2*x + 1)/(x**2 - 2*x + 1) +factor(r) +map(factor,r) +continuedFraction(7/12) +partialFraction(7,12) +g := 2/3 + 4/5*%i +g :: FRAC COMPLEX INT +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/function.input.pamphlet b/src/input/function.input.pamphlet new file mode 100644 index 00000000..1fe79640 --- /dev/null +++ b/src/input/function.input.pamphlet @@ -0,0 +1,89 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input function.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page RationatFunctionPage +)clear all + +f := (x - y) / (x + y) +numer f +denom f +eval(f, x = 1/x) +eval(f, [x = y, y = x]) + +-- Input for page AlgebraicFunctionPage +)clear all + +f := sqrt(1 + x ** (1/3)) +y := rootOf(y**3 + y**2 - x*y + x**3 - 1, y) +differentiate(y, x) +(y + 1) ** 3 +g := inv f +ratForm g + +-- Input for page OperatorPage +)clear all + +R := SQMATRIX(2, INT) +t := operator("tilde")::OP(R) +evaluate(t, m +-> transpose m) +s:R := matrix [[0, 1], [1, 0]] +rho := t * s +z := rho**4 - 1 +m:R := matrix [[1, 2], [3, 4]] +z m +rho m +rho rho m +(rho**3) m +b := t * s - s * t +b m +)read opalg + +-- Input for page ElementaryFunctionPage +)clear all + +f := x * log y * sin(1/(x+y)) +eval(f, [x = y, y = x]) +eval(f, log y = acosh(x + sqrt y)) + +-- Input for page FunctionSimplificationPage +)clear all + +f := cos(x)/sec(x) * log(sin(x)**2/(cos(x)**2+sin(x)**2)) +g := simplify f +h := sin2csc cos2sec g +expandLog h +f1 := sqrt((x+1)**3) +rootSimp f1 +g1 := sin(x + cos x) +g2 := complexElementary g1 +trigs g2 +h1 := sinh(x + cosh x) +h2 := realElementary h1 +htrigs h2 + +-- Input for page PatternMatchingPage +)clear all + +groupSqrt := _rule(sqrt(a) * sqrt(b), sqrt(a*b)) +a := sqrt(2) * sqrt(3) +groupSqrt a +a := (sqrt(x) + sqrt(y))**4 +groupSqrt a +)read sinCosEx +sinCosExpand(sin(x+y-2*z) * cos y) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/galois.input.pamphlet b/src/input/galois.input.pamphlet new file mode 100644 index 00000000..8140df87 --- /dev/null +++ b/src/input/galois.input.pamphlet @@ -0,0 +1,50 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input galois.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page GaloisGroupPage +)clear all + +p := x**5 - 5*x + 12 +q := resultant(eval(p,x,y),-eval(p,x,y-x),y) +q1 := exquo(q, x**5) +factoredQ := factor q1 +r := nthFactor(factoredQ,1) +beta := rootOf(eval(r,x,b)) +p := p::UP(x,INT)::UP(x,AN) +algFactors := factor(p,[beta]) +factor(p) +factor1 := nthFactor(algFactors,1) +root1 := -coefficient(factor1,0) +roots := [-coefficient(nthFactor(algFactors,i),0) for i in 1..5] +(a1,a2,a3,a4,a5) := (roots.1,roots.2,roots.3,roots.4,roots.5) +eval(r,x,a1 - a2) +eval(r,x,a1 - a3) +eval(r,x,a1 - a4) +eval(r,x,a1 - a5) +bb := a1 - a4 +aa1 := subst(a1,beta = bb) +aa2 := subst(a2,beta = bb) +aa3 := subst(a3,beta = bb) +aa4 := subst(a4,beta = bb) +aa5 := subst(a5,beta = bb) +(aa1 = a1) :: Boolean +(aa1 = a2) :: Boolean +(aa1 = a3) :: Boolean +(aa1 = a4) :: Boolean +(aa1 = a5) :: Boolean +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/gary1.input.pamphlet b/src/input/gary1.input.pamphlet new file mode 100644 index 00000000..1e3e3eb1 --- /dev/null +++ b/src/input/gary1.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input gary1.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- @(#)gary1.input 1.1 89/09/07 20:55:01 +draw(curve(cos(4*t)*cos(7*t),cos(4*t)*sin(7*t)),t = 0..2*%pi,[title "Greetings!"]) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/gbf.input.pamphlet b/src/input/gbf.input.pamphlet new file mode 100644 index 00000000..fbecd1a4 --- /dev/null +++ b/src/input/gbf.input.pamphlet @@ -0,0 +1,25 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input GBF.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from GroebnerFactorizationPackageXmpPage +)clear all + +mfzn : SQMATRIX(6,DMP([x,y,z],Fraction INT)) := [[0,1,1,1,1,1], [1,0,1,8/3,x,8/3], [1,1,0,1,8/3,y], [1,8/3,1,0,1,8/3], [1,x,8/3,1,0,1], [1,8/3,y,8/3,1,0]] +eq := determinant mfzn +groebnerFactorize [eq, eval(eq, [x,y,z], [y,z,x]), eval(eq, [x,y,z], [z,x,y])] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/genups.input.pamphlet b/src/input/genups.input.pamphlet new file mode 100644 index 00000000..c27f21e7 --- /dev/null +++ b/src/input/genups.input.pamphlet @@ -0,0 +1,96 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input genups.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)cl all + +taylor(n +-> 1/factorial(n),x = 0) -- expansion of exp(x) at x = 0 +taylor(n +-> (-1)**(n-1)/n,x = 1,1..) -- expansion of log(x) at x = 1 +taylor(n +-> (-1)**(n-1)/n,x = 1,1..6) -- truncated expansion of log(x) + +laurent(m +-> m**2,x = 7,-2..) -- infinite Laurent expansion +laurent(m +-> m**2,x = 7,-2..5) -- finite Laurent expansion + +puiseux(i +-> (-1)**((i-1)/2)/factorial(i),x = 0,1..,2) -- sin(x) at x = 0 +puiseux(i +-> (-1)**(i/2)/factorial(i),x = 0,0..,2) -- cos(x) at x = 0 +-- puiseux(i +-> (-1)**((i-1)/2)/factorial(i),x = 0,1..9,2) -- truncated sin(x) +-- interpretor needs help here +puiseux(i +-> (-1)**((i-1)/2)/factorial(i),x = 0,1..9/1,2) -- truncated sin(x) + +puiseux(j +-> j,x = 8,-4/3..,1/2) +puiseux(j +-> j,x = 8,-4/3..1/6,1/2) + +-- same computations using expressions instead of functions + +taylor(1/factorial(n),n,x = 0) -- expansion of exp(x) at x = 0 +taylor((-1)**(n-1)/n,n,x = 1,1..) -- expansion of log(x) at x = 1 +taylor((-1)**(n-1)/n,n,x = 1,1..6) -- truncated expansion of log(x) + +laurent(m**2,m,x = 7,-2..) -- infinite Laurent expansion +laurent(m**2,m,x = 7,-2..5) -- finite Laurent expansion + +puiseux((-1)**((i-1)/2)/factorial(i),i,x = 0,1..,2) -- sin(x) at x = 0 +puiseux((-1)**(i/2)/factorial(i),i,x = 0,0..,2) -- cos(x) at x = 0 +-- puiseux((-1)**((i-1)/2)/factorial(i),i,x = 0,1..9,2) -- truncated sin(x) +-- interpretor needs help here +puiseux((-1)**((i-1)/2)/factorial(i),i,x = 0,1..9/1,2) -- truncated sin(x) + +puiseux(j,j,x = 8,-4/3..,1/2) +puiseux(j,j,x = 8,-4/3..1/6,1/2) + +-- all of the above commands should still work when the functions 'taylor', +-- 'laurent', and 'puiseux' are replaced by 'series': + +series(n +-> 1/factorial(n),x = 0) -- expansion of exp(x) at x = 0 +series(n +-> (-1)**(n-1)/n,x = 1,1..) -- expansion of log(x) at x = 1 +series(n +-> (-1)**(n-1)/n,x = 1,1..6) -- truncated expansion of log(x) + +series(m +-> m**2,x = 7,-2..) -- infinite Laurent expansion +series(m +-> m**2,x = 7,-2..5) -- finite Laurent expansion + +series(i +-> (-1)**((i-1)/2)/factorial(i),x = 0,1..,2) -- sin(x) at x = 0 +series(i +-> (-1)**(i/2)/factorial(i),x = 0,0..,2) -- cos(x) at x = 0 +-- series(i +-> (-1)**((i-1)/2)/factorial(i),x = 0,1..9,2) -- truncated sin(x) +-- interpretor needs help here +series(i +-> (-1)**((i-1)/2)/factorial(i),x = 0,1..9/1,2) -- truncated sin(x) + +series(j +-> j,x = 8,-4/3..,1/2) +series(j +-> j,x = 8,-4/3..1/6,1/2) + +-- same computations using expressions instead of functions + +series(1/factorial(n),n,x = 0) -- expansion of exp(x) at x = 0 +series((-1)**(n-1)/n,n,x = 1,1..) -- expansion of log(x) at x = 1 +series((-1)**(n-1)/n,n,x = 1,1..6) -- truncated expansion of log(x) + +series(m**2,m,x = 7,-2..) -- infinite Laurent expansion +series(m**2,m,x = 7,-2..5) -- finite Laurent expansion + +series((-1)**((i-1)/2)/factorial(i),i,x = 0,1..,2) -- sin(x) at x = 0 +series((-1)**(i/2)/factorial(i),i,x = 0,0..,2) -- cos(x) at x = 0 +-- series((-1)**((i-1)/2)/factorial(i),i,x = 0,1..9,2) -- truncated sin(x) +-- interpretor needs help here +series((-1)**((i-1)/2)/factorial(i),i,x = 0,1..9/1,2) -- truncated sin(x) + +series(j,j,x = 8,-4/3..,1/2) +series(j,j,x = 8,-4/3..1/6,1/2) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/gnarly1.input.pamphlet b/src/input/gnarly1.input.pamphlet new file mode 100644 index 00000000..b90370cd --- /dev/null +++ b/src/input/gnarly1.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input gnarly1.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +draw(surface(cos(t)/(1+sin(t)**2),sin(t)*cos(t)*cos(u)/(1+sin(t)**2), + sin(t)*cos(t)*sin(u)/(1+sin(t)**2)),t = -%pi..%pi,u = 0..%pi) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/gonshor.input.pamphlet b/src/input/gonshor.input.pamphlet new file mode 100644 index 00000000..51f08777 --- /dev/null +++ b/src/input/gonshor.input.pamphlet @@ -0,0 +1,218 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input gonshor.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +------------- Some examples of algebras in genetics ------------- + +-- Literature: +-- [WB] A. Woerz-Busekros: Algebras in Genetics, LNB 36, +-- Springer-Verlag, Berlin etc. 1980. + + + +--------------- Commutative, non-associative algebras -- + + + +-- A Gonshor genetic algebra ([WB], p. 41-42) of dimension 4: +-- ========================================================= + +)clear all + +-- The coefficient ring: +R := FRAC POLY INT + +-- The following multiplication constants may be chosen arbitrarily +-- (notice that we write ckij for c_(i,j)^k): + +(c100, c101, _ +c200, c201, c202, c211, _ +c300, c301, c302, c303, c311, c312, c322) : R + +---------------------------------------------------------------- +c100 := 1 ; c101 := -1 ; +---------------------------------------------------------------- +c200 := 0 ; c201 := 1 ; c202 := -1 ; + c211 := 2 ; +---------------------------------------------------------------- +c300 := 1 ; c301 := 0 ; c302 := -1 ; c303 := 1 ; + c311 := 1 ; c312 := 0 ; + c322 := 2 ; +---------------------------------------------------------------- + +-- The matrices of the multiplication constants: + +gonshor : List SquareMatrix(4,R) := + [matrix [ [1, 0, 0, 0], [0, 0, 0, 0],_ + [0, 0, 0, 0], [0, 0, 0, 0] ],_ + matrix [ [c100, c101, 0, 0], [c101, 0, 0, 0],_ + [0, 0, 0, 0], [0, 0, 0, 0] ],_ + matrix [ [c200, c201, c202, 0], [c201, c211, 0, 0],_ + [c202, 0, 0, 0], [0, 0, 0, 0] ],_ + matrix [ [c300, c301, c302, c303], [c301, c311, c312, 0],_ + [c302, c312, c322, 0], [c303, 0, 0, 0] ] ] ; + + +basisSymbols : List Symbol := [subscript(e,[i]) for i in 0..3] + +GonshorGenetic := ALGSC(R, 4, basisSymbols, gonshor) + +commutative?()$GonshorGenetic +associative?()$GonshorGenetic + +-- The canonical basis: +e0 : GonshorGenetic := [1, 0, 0, 0] :: Vector R ; +e1 : GonshorGenetic := [0, 1, 0, 0] :: Vector R ; +e2 : GonshorGenetic := [0, 0, 1, 0] :: Vector R ; +e3 : GonshorGenetic := [0, 0, 0, 1] :: Vector R ; + + +-- A generic element of the algebra: +x : GonshorGenetic := x0*e0 + x1*e1 + x2*e2 + x3*e3 + +-- The matrix of the left multiplication with x : +Lx := leftRegularRepresentation x + +-- leftRegularRepresentationt 8 : GonshorGenetic -> R be the weight homomorphism +-- defined by 8(e0) := 1 and 8(ei) := 0 for i = 1,2,3 . +-- The coefficients of the characteristic polynomial +-- of Lx depend only on 8(x) = x0 : +p := characteristicPolynomial(Lx,Y) + +-- The left minimal polynomial of x divides Y * p(Y) : +leftMinimalPolynomial x + + +)clear prop A a b c r s +A := GonshorGenetic +a := x +b := (1/4)*e1 + (1/5)*e2 + (3/20)*e3 + (2/5)*e0 +c := (1/3)*e1 + (1/7)*e2 + (8/21)*e3 + (1/7)*e0 +r : R := r +s : R := s + +b*c +(b*c)*b +b*(c*b) + +-- A: Algebra +-- a,b,c : A +-- r,s : R + +)clear prop AP +AP := ALGPKG(R,A) + +r*a +a*r + +a*b +b*c + +12 * c +(-3) * a + +d := a ** 12 +-d + +a + b +d-c + +(a*(a*a) = leftPower(a,3)) :: Boolean +(a ** 11 = (a**8 * a**2) * a) :: Boolean +(a ** 11 = a**8 * (a**2 * a)) :: Boolean + + +zero := 0$A +zero : A := 0 + +alternative?()$A +antiCommutative?()$A +associative?()$A +commutative?()$A + +commutator(a,b) +antiCommutator(a,b) +associator(a,b,c) +basis()$A + +n := rank()$A +v : Vector R := [i for i in 1..n] +g : A := represents v + +coordinates a +coordinates [a,b] + +a.3 + +flexible?()$A +leftAlternative?()$A + +rightAlternative?()$A +sB := someBasis()$A +zero? a +associatorDependence()$A +--conditionsForIdempotents()$A +jacobiIdentity?()$A +jordanAlgebra?()$A +jordanAdmissible?()$A +lieAdmissible?()$A +--conditionsForIdempotents sB +b2 := [reduce(+,[sB.i for i in 1..k]) for k in 1..n] +coordinates (a ,b2 :: Vector A) +coordinates ([a,b] ,bb := (b2 :: Vector A)) +leftMinimalPolynomial a +leftPower (a,10) +rightPower(a,10) +leftRegularRepresentation a +leftRegularRepresentation (a,bb) +leftUnit()$A +represents (v,bb) +rightMinimalPolynomial a +rightRegularRepresentation a +rightRegularRepresentation (a,bb) +rightUnit()$A +structuralConstants()$A +structuralConstants(bb) +unit()$A + + +-- functions from ALGPKG + +biRank a +leftRank a +doubleRank a +rightRank a +weakBiRank a + + +basisOfCenter()$AP +basisOfLeftNucleus()$AP +basisOfNucleus()$AP +basisOfRightNucleus()$AP +basisOfCentroid()$AP +basisOfCommutingElements()$AP +basisOfLeftNucloid()$AP +basisOfMiddleNucleus()$AP +basisOfRightNucloid()$AP + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/graphics.input.pamphlet b/src/input/graphics.input.pamphlet new file mode 100644 index 00000000..841bced2 --- /dev/null +++ b/src/input/graphics.input.pamphlet @@ -0,0 +1,102 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input graphics.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page OneVariableGraphicsExamplePage +)clear all + +draw(sin tan x - tan sin x, x = 0..6) +draw(sin x + cos x, x = 0..2*%pi) +draw(sin(1/x), x = -1..1) +draw(x * sin(1/x), x = -1..1) +All + +-- Input for page ViewportPage +)clear all + +v := draw(x*x-y*y,x=-1..1,y=-1..1) +write(v,"saddle","pixmap") + +-- Input for page ImplicitCurveGraphicsExamplePage +)clear all + +draw(x * y = 1, x, y, range == [-3..3, -3..3]) +draw(y**2 + y = x**3 - x, x, y, range == [-2..2, -2..1]) +p := ((x**2 + y**2 + 1) - 8*x)**2 - (8*(x**2 + y**2 + 1) - 4*x - 1) +draw(p = 0, x, y, range == [-1..11, -7..7], title == "Cartesian Ovals") +q := (x**2 + y**2 + 7**2)**2 - (6**4 + 4*7**2*x**2) +draw(q = 0, x, y, range == [-10..10, -4..4], title == "Cassinian oval with two loops") +All + +-- Input for page OneVariableGraphicsPage +)clear all + +draw(sin(tan(x)) - tan(sin(x)),x = 0..6) +draw(sin(tan(x)) - tan(sin(x)),x = 10..16,title == "y = sin tan x - tan sin x") +f(x) == (x-1)*(x-2)*(x-3) +draw(f, 0..2, title == "y = f(x) on [0,2]") +draw(f, 0..4,title == "y = f(x) on [0,4]") + +-- Input for page PolarGraphicsExamplePage +)clear all + +draw(1,t = 0..2*%pi, coordinates == polar) +draw(t,t = 0..100, coordinates == polar) +draw(sin(4*t), t = 0..2*%pi, coordinates == polar) +draw(2 + 3 * sin t, t = 0..2*%pi, coordinates == polar) +All + +-- Input for page ParametricCurveGraphicsExamplePage +)clear all + +draw(curve(cos(t/(1+sin(t)**2)), sin(t)*cos(t)/(1+sin(t)**2)), t = -%pi..%pi) +draw(curve(9*sin(3*t/4), 8*sin(t)), t = -4*%pi..4*%pi) +draw(curve(sin(t)*sin(2*t)*sin(3*t), sin(4*t)*sin(5*t)*sin(6*t)),t = 0..2*%pi) +draw(curve(cos(4*t)*cos(7*t), cos(4*t)*sin(7*t)), t = 0..2*%pi) +All + +-- Input for page PolarGraphicsPage +)clear all + +draw(1,t = 0..2*%pi,coordinates == polar, title == "The Unit Circle") +draw(sin(17*t), t = 0..2*%pi, coordinates == polar, title == "A Petal Curve") +f(t) == cos(4*t/7) +draw(f, t = 0..2*%pi, coordinates == polar) +draw(f, t = 0..14*%pi, coordinates == polar) + +-- Input for page ParametricCurveGraphicsPage +)clear all + +draw(curve(sin(t)*sin(2*t)*sin(3*t), sin(4*t)*sin(5*t)*sin(6*t)), t = 0..2*%pi) +draw(curve(cos(t), sin(t)), t = 0..2*%pi, title == "The Unit Circle") +f(t) == sin(3*t/4) +g(t) == sin(t) +draw(curve(f,g), 0..%pi) +draw(cruve(f,g) ,%pi..2*%pi) +draw(curve(f,g), -4*%pi..4*%pi) + +-- Input for page AssortedGraphicsExamplePage +)clear all + +draw(sin(x * y), x = -2.5..2.5, y = -2.5..2.5) +draw(sin tan x - tan sin x,x = 0..6) +draw(curve(sin(t)*sin(2*t), sin(3*t)*sin(4*t)), t = 0..2*%pi) +draw(curve(sin(t)*sin(2*t), sin(3*t)*sin(4*t), sin(5*t)*sin(6*t)), t = 0..2*%pi) +draw(sin(17*t), t = 0..2*%pi, coordinates == polar) +draw(y**2 + y = x**3 - x, x, y,range == [-2..2,-2..1]) +All +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/grdef.input.pamphlet b/src/input/grdef.input.pamphlet new file mode 100644 index 00000000..15f32400 --- /dev/null +++ b/src/input/grdef.input.pamphlet @@ -0,0 +1,57 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input grdef.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- test input for GraphicsDefaults package + +--Operations to set graphic defaults: + +adaptive == false +adaptive == true + +clipPointsDefault(false) +clipPointsDefault(true) + +drawToScale(true) +drawToScale(false) + +maxPoints(500) + +minPoints(21) + +screenResolution(600) + + +--Operations which return default information: + +adaptive() + +clipPointsDefault() + +drawToScale() + +maxPoints() + +minPoints() + +screenResolution() + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/grpthry.input.pamphlet b/src/input/grpthry.input.pamphlet new file mode 100644 index 00000000..fc6728c8 --- /dev/null +++ b/src/input/grpthry.input.pamphlet @@ -0,0 +1,109 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input grpthry.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page PermutationGroupsPage +)clear all + +x : PERM INT := [[1,3,5],[7,11,9]] +y : PERM INT := [[3,5,7,9]] +z : PERM INT := [1,3,11] +g1 : PERMGRPS INT := [ x , y ] +g2 : PERMGRPS INT := [ x , z ] +g3 : PERMGRPS INT := [ y , z ] +order g1 +degree g3 +movedPoints g2 +orbit (g1, 3) +orbits g3 +member? ( y , g2 ) +)sh PERMGRPS + +-- Input for page IrrRepSymPage +)clear all + +ptn9 := partitions 9 +map(dimIrrRepSym, ptn9) +yt := listYoungTableaus [4,2]; yt :: (LIST TABLEAU I) +r1 := irrRepSymNat([4,2],[1,2,4,5,3,6]) +r2 := irrRepSymNat([4,2],[3,2,1,5,6,4]) +r3 := irrRepSymNat([4,2],[4,2,1,3,6,5]) +(r3 = r1*r2) :: Boolean +irrRepSymNat [4,4,1] + +-- Input for page REP1Page +)clear all + +permutationRepresentation [2,3,1,4,6,5,11,10,7,8,9] +gm2 := createGenericMatrix 2 +symmetricTensors (gm2,2) +gm3 := createGenericMatrix 3 +antisymmetricTensors (gm3,2) +tensorProduct(gm2,gm2) +)sh REP1 + +-- Input for page REP2Page +)clear all + +r0 := irrRepSymNat [2,2,2,1,1]; r28 := meatAxe (r0::(LIST MATRIX PF 2)) +areEquivalent? (r28.1, r28.2) +meatAxe r28.2 +isAbsolutelyIrreducible? r28.2 +ma := meatAxe r28.1 +isAbsolutelyIrreducible? ma.1 +isAbsolutelyIrreducible? ma.2 + +-- Input for page PermutationsPage +)clear all + +px : PERM PF 29 := cycles [[1,3,5],[7,11,9]] +py : PERM PF 29 := cycles [[3,5,7,9]] +pz : PERM PF 29 := cycle [1,3,11] +px * pz +py ** 3 +inv px +order px +movedPoints py +orbit ( pz , 3 ) +eval ( py , 7 ) +)sh PERM + +-- Input for page RepA6Page +)clear all + +genA6 : List PERM INT := [cycle [1,2,3],cycle [2,3,4,5,6]] +pRA6 := permutationRepresentation (genA6,6) +sp0 := meatAxe (pRA6::(List Matrix PF 2)) +sp1 := meatAxe sp0.1 +isAbsolutelyIrreducible? sp1.2 +d2211 := irrRepSymNat ([2,2,1,1],genA6) +d2211m2 := (d2211::(List Matrix PF 2)); sp2 := meatAxe d2211m2 +isAbsolutelyIrreducible? sp2.1 +areEquivalent? (sp2.1, sp1.2) +dA6d16 := tensorProduct(sp2.1,sp1.2); meatAxe dA6d16 +isAbsolutelyIrreducible? dA6d16 +sp3 := meatAxe (dA6d16 :: (List Matrix FF(2,2))) +isAbsolutelyIrreducible? sp3.1 +isAbsolutelyIrreducible? sp3.2 +areEquivalent? (sp3.1,sp3.2) +sp0.2 +sp1.2 +sp2.1 +sp3.1 +sp3.2 +dA6d16 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/gstbl.input.pamphlet b/src/input/gstbl.input.pamphlet new file mode 100644 index 00000000..3d383012 --- /dev/null +++ b/src/input/gstbl.input.pamphlet @@ -0,0 +1,29 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input GSTBL.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from GeneralSparseTableXmpPage +)clear all + +patrons: GeneralSparseTable(String, Integer, KeyedAccessFile(Integer), 0) := table() ; +patrons."Smith" := 10500 +patrons."Jones" := 22000 +patrons."Jones" +patrons."Stingy" +reduce(+, entries patrons) +)system rm -r kaf*.sdata +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/heap.input.pamphlet b/src/input/heap.input.pamphlet new file mode 100644 index 00000000..c65f5caf --- /dev/null +++ b/src/input/heap.input.pamphlet @@ -0,0 +1,30 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input HEAP.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from HeapXmpPage +)clear all + +h := heap [-4,9,11,2,7,-7] +insert!(3,h) +extract! h +h +[extract!(h) while not empty?(h)] +heapsort(x) == (empty? x => []; cons(extract!(x),heapsort x)) +h1 := heap [17,-4,9,-11,2,7,-7] +heapsort h1 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/heat.input.pamphlet b/src/input/heat.input.pamphlet new file mode 100644 index 00000000..d1bf86c9 --- /dev/null +++ b/src/input/heat.input.pamphlet @@ -0,0 +1,47 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input heat.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> +-- ----------[ A x i o m ]---------- +-- ---------- Initialization ---------- +)set messages autoload off +)set quit unprotected +-- This is the heat equation +u:= operator('u); +heat:= D(u(x, t), t) - D(u(x, t), x, 2) = 0 +-- This is the similarity form of the proposed solution +f:= operator('f); +s:= rule(u(x, t) == f(x/sqrt(t))/sqrt(t)) +-- Apply s to the heat equation +s(lhs(heat)) = 0 +-- Change to the similarity variable z = x/sqrt(t) +subst(lhs(%), x = z*sqrt(t)) = 0 +-- Eliminate the denominator +% * denom(lhs(%)) +-- Now, solve the ordinary differential equation +eq:=% +solve(%, f, z=0,[k1,k2]) +-- Finally, transform back to the original variables +subst(%, z = x/sqrt(t))/sqrt(t) +-- If we set k2 = 0 and k1 = 1/(2*sqrt(%pi)) in the previous expression, +-- we will obtain the usual fundamental solution of the heat equation +subst(%, [k2 = 0, k1 = 1/(2*sqrt(%pi))]) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/helix.input.pamphlet b/src/input/helix.input.pamphlet new file mode 100644 index 00000000..4cfd1d87 --- /dev/null +++ b/src/input/helix.input.pamphlet @@ -0,0 +1,19 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input helix.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +draw(curve(4*cos(t),4*sin(t),t),t = -10..10) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/help.input.pamphlet b/src/input/help.input.pamphlet new file mode 100644 index 00000000..c4e59789 --- /dev/null +++ b/src/input/help.input.pamphlet @@ -0,0 +1,24 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input help.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page CommandHelp +)clear all + +a:= x**2 + 1 +(a - 2)**2 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/herm.input.pamphlet b/src/input/herm.input.pamphlet new file mode 100644 index 00000000..51175771 --- /dev/null +++ b/src/input/herm.input.pamphlet @@ -0,0 +1,143 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input herm.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> + +)lib $TEST_AXIOMXL/herm + +h0 := pHS([] :: List INT) + +-- [] + +h1 := pHS [1] + +-- [1] + +h2 := pHS [1,2] + +-- [1,2] + +h3 := pHS [1,2,3] + +-- [1,2,3] + +h4 := pHS [1,2,3,4] + +-- [1,2,3,4] + +h5 := pHS [1,2,3,4,5] + +-- [1,2,3,4,5] + + +f0 := expand h0 + +-- [] + +f1 := expand h1 + +-- [1] + +f2 := expand h2 + +-- [1,2] + +f3 := expand h3 + +-- [1,2 + 3%i,2 - 3%i] + +f4 := expand h4 + +-- [1,2 + 4%i,3,2 - 4%i] + +f5 := expand h5 + +-- [1,2 + 5%i,3 + 4%i,3 - 4%i,2 - 5%i] + +packHS f0 + +-- [] + +packHS f1 + +-- [1] + +packHS f2 + +-- [1,2] + +packHS f3 + +-- [1,2,3] + +packHS f4 + +-- [1,2,3,4] + +packHS f5 + +-- [1,2,3,4,5] + +packHS vector[%i,3,3,3] + +-- Error signalled from user code: +-- The argument of packHS is not Hermitian - the first element must +-- be real. + +packHS vector [1, 3, 5, 7] + +-- Error signalled from user code: +-- The argument of packHS is not Hermitian - elements 2 and 4 are +-- not conjugate. + +packHS [1, 3, %i, 3] + +-- Error signalled from user code: +-- The argument of packHS is not Hermitian - element 3 must be real +-- to be self-conjugate. + +conjHerm h0 + +-- [] + +conjHerm h1 + +-- [1] + +conjHerm h2 + +-- [1,2] + +conjHerm h3 + +-- [1,2,- 3] + +conjHerm h4 + +-- [1,2,3,- 4] + +conjHerm h5 + +-- [1,2,3,- 4,- 5] + +output "End of tests" + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/hexadec.input.pamphlet b/src/input/hexadec.input.pamphlet new file mode 100644 index 00000000..78284413 --- /dev/null +++ b/src/input/hexadec.input.pamphlet @@ -0,0 +1,29 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input HEXADEC.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from HexadecimalExpansionXmpPage +)clear all + +r := hex(22/7) +r + hex(6/7) +[hex(1/i) for i in 350..354] +hex(1/1007) +p := hex(1/4)*x**2 + hex(2/3)*x + hex(4/9) +q := D(p, x) +g := gcd(p, q) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/hilbert.as.pamphlet b/src/input/hilbert.as.pamphlet new file mode 100644 index 00000000..662ab804 --- /dev/null +++ b/src/input/hilbert.as.pamphlet @@ -0,0 +1,320 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input hilbert.as} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{Hilbert input tests} +<<input>>= +)compile hilbert.as +mon1 := monom(4,0,0,0) +mon2:= monom(3,3,0,0) +mon3 := monom(3,2,1,0) +mon4 := monom(3,1,2,0) +mon5 := monom(0,2,0,1) +mon6 := monom(0,1,0,5) +l := [mon1, mon2, mon3, mon4, mon5, mon6] +Hilbert l +idA := varMonomsPower(6,5); +#idA +Hilbert idA +idB := varMonomsPower(6,6); +#idB +Hilbert idB +idC := varMonomsPower(12,3); +#idC +Hilbert idC +idD:=[monom(2,0,0,0),monom(1,1,0,0),monom(1,0,1,0),monom(1,0,0,1),_ + monom(0,3,0,0),monom(0,2,1,0)]^4; +#idD +Hilbert idD +@ +\section{License} +<<license>>= +-- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. +-- All rights reserved. +-- +-- Redistribution and use in source and binary forms, with or without +-- modification, are permitted provided that the following conditions are +-- met: +-- +-- - Redistributions of source code must retain the above copyright +-- notice, this list of conditions and the following disclaimer. +-- +-- - Redistributions in binary form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in +-- the documentation and/or other materials provided with the +-- distribution. +-- +-- - Neither the name of The Numerical ALgorithms Group Ltd. nor the +-- names of its contributors may be used to endorse or promote products +-- derived from this software without specific prior written permission. +-- +-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +-- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +-- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +-- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +-- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +-- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +-- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +-- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +-- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +-- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +@ +<<*>>= +<<license>> + +<<input>> + +#include "axiom.as" +#pile + +-- This file computes hilbert functions for monomial ideals +-- ref: "On the Computation of Hilbert-Poincare Series", +-- Bigatti, Caboara, Robbiano, +-- AAECC vol 2 #1 (1991) pp 21-33 + +macro + Monom == Monomial + L == List + SI == SingleInteger + B == Boolean + POLY == SparseUnivariatePolynomial Integer + Array == Vector + +import from NonNegativeInteger +import from SingleInteger +import from Segment SI +import from Integer + +Monomial : OrderedSet with + totalDegree: % -> SI + divides?: (%, %) -> B + homogLess: (%, %) -> B + quo: (%, %) -> % + quo: (%, SI) -> % + *: (%, %) -> % + varMonom: (i:SI,n:SI, deg:SI) -> % + variables: L % -> L SI + apply: (%, SI) -> SI + #: % -> SI + monom: Tuple SI -> % + == Array(SingleInteger) add + Rep ==> Array(SingleInteger) + import from Rep + + monom(t:Tuple SI):% == per [ t ] + + totalDegree(m:%):SI == + sum:SI := 0 + for e in rep m repeat sum := sum + e + sum + + divides?(m1:%, m2:%):B == + for e1 in rep m1 for e2 in rep m2 repeat + if e1 > e2 then return false + true + + (m1:%) < (m2:%):B == + for e1 in rep m1 for e2 in rep m2 repeat + if e1 < e2 then return true + if e1 > e2 then return false + false + +-- (m1:%) > (m2:%):B == m2 < m1 + + homogLess(m1:%, m2:%):B == + (d1:=totalDegree(m1)) < (d2:=totalDegree(m2)) => true + d1 > d2 => false + ( m1 < m2) + + (m:%) quo (v:SI):% == --remove vth variable +-- per [((if i=v then 0 else (rep m).i) for i in 1..#rep m)] + m2:= copy rep m + m2.v := 0 + per m2 + + (m1:%) quo (m2:%):% == + per [(max(a1-a2,0) for a1 in rep m1 for a2 in rep m2)] + + (m1:%) * (m2:%):% == per [(a1+a2 for a1 in rep m1 for a2 in rep m2)] + + varMonom(i:SI,n:SI, deg:SI):% == +-- per [((if j=i then deg else 0$SI) for j in 1..n)] + m:Rep := new(n, 0) + m.i := deg + per m + + variables(I:L %) :L SI == + empty? I => nil + n:SI:=# rep first I + ans : L SI := nil + v:SI:=0 + while (v:=v+1)<=n repeat +-- for v in 1..n repeat + for m in I repeat + (rep m).v ~= 0 => + ans := cons(v, ans) + break + ans + + +HilbertFunctionPackage: with + Hilbert: L Monom -> POLY + adjoin: (Monom, L Monom) -> L Monom + == add + + adjoin(m:Monom, lm:L Monom):L Monom == + empty?(lm) => cons(m, nil) + ris1:L Monom:= empty() + ris2:L Monom:= empty() + while not empty? lm repeat + m1:Monom := first lm + lm := rest lm + if m <= m1 then + if not divides?(m,m1) then (ris1 := cons(m1, ris1)) + iterate + ris2 := cons(m1, ris2) + if divides?(m1, m) then + return concat!(reverse!(ris1), concat!(reverse! ris2, lm)) + concat!(reverse!(ris1), cons(m, reverse! ris2)) + + reduce(lm:L Monom):L Monom == + lm := sortHomogRemDup(lm) + empty? lm => lm + ris :L Monom := nil + risd:L Monom := list first lm + d := totalDegree first lm + for m in rest lm repeat + if totalDegree(m)=d then risd := cons(m, risd) + else + ris := mergeDiv(ris, risd) + d := totalDegree m + risd := [m] + mergeDiv(ris, risd) + + mergeDiv( small:L Monom, big:L Monom): L Monom == + ans : L Monom := small + for m in big repeat + if not contained?(m,small) then ans := cons(m, ans) + ans + + contained?(m:Monom, id: L Monom) : B == + for mm in id repeat + divides?(mm, m) => return true + false + + (I:L Monom) quo (m:Monom):L Monom == + reduce [mm quo m for mm in I] + + sort(I:L Monom, v:SI):L Monom == + sort((a:Monom,b:Monom):B+->(a.v < b.v), I) + + sortHomogRemDup(l:L Monom):L Monom == + l:=sort(homogLess, l) + empty? l => l + ans:L Monom := list first l + for m in rest l repeat + if m ~= first(ans) then ans:=cons(m, ans) + reverse! ans + + decompose(I:L Monom, v:SI):Record(size:SI, ideals:L L Monom, degs:L SI) == + I := sort(I, v) + idlist: L L Monom := nil + deglist : L SI := nil + size : SI := 0 + J: L Monom := nil + while not empty? I repeat + d := first(I).v + tj : L Monom := nil + local m:Monom + while not empty? I and d=(m:=first I).v repeat + tj := cons(m quo v, tj) + I := rest I + J := mergeDiv(tj, J) + idlist := cons(J, idlist) + deglist := cons(d, deglist) + size := size + ((#J)::Integer::SI) + [size, idlist, deglist] + + + var(n:SI) : SparseUnivariatePolynomial Integer == + monomial(1$Integer, n::Integer::NonNegativeInteger) + + + Hilbert(I:L Monom):POLY == + empty? I => 1 -- no non-zero generators = 0 ideal + empty? rest I => var(0) - var(totalDegree first I) + lvar :L SI := variables I + import from Record(size:SI, ideals:L L Monom, degs:L SI) + Jbest := decompose(I, first lvar) + for v in rest lvar while (#I)::Integer::SI < Jbest.size repeat + JJ := decompose(I, v) + JJ.size < Jbest.size => Jbest := JJ + import from L L Monom + import from L SI + Jold:List Monom := first(Jbest.ideals) + dold:SI := first(Jbest.degs) + f:SparseUnivariatePolynomial Integer:=var(dold)*Hilbert(Jold) + for J:List Monom in rest Jbest.ideals for d:SI in rest Jbest.degs repeat + f := f + (var(d) - var(dold)) * Hilbert(J) + dold := d + var(0) - var(dold) + f + +MonomialIdealPackage: with + varMonomsPower: (SI, SI) -> L Monom + *: (L Monom, L Monom) -> L Monom + ^: (L Monom, SI) -> L Monom + == add + + varMonoms(n:SI):L Monom == +-- [varMonom(i,n,1) for i in 1..n] + i:SI:=0 + [varMonom(i,n,1) while {free i; (i:=i+1)<=n}] + + varMonomsPower(n:SI, deg:SI):L Monom == + n = 1 => [ monom(deg)] + ans : L Monom := nil +-- for j in 0..deg repeat + j:SI:=-1 + while (j:=j+1)<=deg repeat + ans := concat(varMonomMult(j,varMonomsPower(n-1,deg-j)), ans) + ans + + varMonomMult(i:SI, mlist : L Monom) : L Monom == + [varMonomMult(i, m) for m in mlist] + + varMonomMult(i:SI, m:Monom) : Monom == + nm:Array SI := new(#m + 1, i) +-- for k in 1..#m repeat nm.k :=m.k + k:SI:=0 + while (k:=k+1)<=#m repeat nm.k :=m.k + nm pretend Monom + + (i1:L Monom) * (i2:L Monom):L Monom == + import from HilbertFunctionPackage + ans : L Monom := nil + for m1 in i1 repeat for m2 in i2 repeat + ans := adjoin(m1*m2, ans) + ans + + (i:L Monom) ^ (n:SI) : L Monom == + n = 1 => i + odd? n => i * (i*i)^shift(n, -1) + (i*i)^shift(n,-1) + + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/huang.input.pamphlet b/src/input/huang.input.pamphlet new file mode 100644 index 00000000..ddaf6a78 --- /dev/null +++ b/src/input/huang.input.pamphlet @@ -0,0 +1,564 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input huang.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> + +-- this is here strictly for documentation purposes, nothing is executed +-- +-- Here are some problems that Maple and Mathematica cannot +--solve, but SymbMath can do. +-- The following examples came from news on the sci.math.symbolic +--newsgroup in 1991, and were run in Maple V, Mathematica 2.0, or +--SymbMath 2.1. +-- +--************************ Example 1 ****************************** +-- Maple: +--> int(exp(-a * x^2), x=0..infinity); +-- +-- infinity +-- / +-- | 2 +-- | exp(- a x ) dx +-- | +-- / +-- 0 +-- +--# unevaluated. +--# Declare 'a' non-negative: +-- +--> signum(a) := 1; +-- +-- signum(a) := 1 +-- +--# The same integral is now evaluated fully: +-- +--> int(exp(-a * x^2), x=0..infinity); +-- +-- 1/2 +-- Pi +-- 1/2 ----- +-- 1/2 +-- a +-- +-- SymbMath : +-- Input: +--inte(exp(-a*x^2), x from 0 to inf) +--assume(sqrt(a) > 0) +--inte(exp(-a*x^2), x from 0 to inf) +-- Output: +--1/2*a^(-0.5)*sqrt(pi)*erf(inf*sgn(sqrt(a))) +--assumed +--1/2*a^(-0.5)*sqrt(pi) +-- +--************************** Example 2 ********************************* +-- Maple: +--# Despite the fact that 'n' is declared non-negative... +--> signum(n) := 1; +-- signum(n) := 1 +-- +--# ...this simple proper definite integral (that any freshman calculus +--# student can evaluate!) is left unevaluated: +--> int(x^n, x=0..1); +-- +-- 1 +-- / +-- | n +-- | x dx +-- | +-- / +-- 0 +-- +-- +-- SymbMath : +-- Input: +--assume(n > -1) +--inte(x^n, x from 0 to 1) +-- Output: +--assumed +--1/(1 + n) +-- +--************************** Example 3 ***************************** +-- Maple: +--> int(x^n, x=eps..1); +-- +-- (n + 1) +-- 1 eps +-- ----- - ---------- +-- n + 1 n + 1 +-- +--# ...but the one-sided limit... +-- +--> limit(", eps=0, right); +-- +-- (n + 1) +-- 1 eps +-- limit ----- - ---------- +-- eps -> 0+ n + 1 n + 1 +-- +--# ...remains unevaluated... +-- +--> simplify("); +-- +-- (n + 1) +-- - 1 + eps +-- limit - ---------------- +-- eps -> 0+ n + 1 +-- +-- +--# ...no matter what we do! +-- +--> eval("); +-- +-- (n + 1) +-- - 1 + eps +-- limit - ---------------- +-- eps -> 0+ n + 1 +-- +-- SymbMath: +-- Input: +--assume(n > -1) +--inte(x^n, x from eps to 1) +--subs(eps=0 to last) +-- Output: +--assumed +--1/(1 + n) - eps^(1 + n)/(1 + n) +--1/(1 + n) +-- +-- +--*************************** Example 4 *************************** +-- Maple: +--> 0^n; +-- 0 +-- +--# Maple flags the error only when 'n' is replaced by the constant 0: +-- +--> 0^0; +--Error, 0^0 is undefined +-- +-- SymbMath: +-- Input: +--assume(n > 0) +--0^n +--0^-n +--0^0 +-- Output: +--assumed +--0 +--discont +--undefined +-- +--**************************** Example 5 ****************************** +-- Maple: +--> int(x^k, x); +-- +-- (k + 1) +-- x +-- -------- +-- k + 1 +-- +-- SymbMath: +-- Input: +--inte(x^k*d(x)) +--subs(k=-1 to last) +-- Output: +--constant + x^(1 + k)/(1 + k) +--discont +-- +--**************************** Example 6 ***************************** +-- Maple: +--# The following limit is left unevaluated: +--> limit(x^k/exp(x), x=infinity); +-- +-- k +-- x +-- limit ------ +-- x -> infinity exp(x) +-- +-- +--# We might ask if Maple knows this result for specific (constant) values +--# of the symbolic parameter 'k'. The answer is a QUALIFIED "yes". +--# Maple knows the result for 'k' equal to 10^8... +-- +--> limit(x^(10^8)/exp(x), x=infinity); +-- +-- 0 +-- +-- +--# ...and Maple knows the result for 'k' equal to 10^9... +-- +--> limit(x^(10^9)/exp(x), x=infinity); +-- +-- 0 +-- +--# ...BUT, Maple seems to FORGET the result when 'k' equals 10^10... +-- +--> limit(x^(10^10)/exp(x), x=infinity); +-- +-- 10000000000 +-- x +-- limit ------------ +-- x -> infinity exp(x) +-- +-- SymbMath: +-- Input: +--lim(x=inf, x^k/exp(x)) +--lim(x=inf, x^(10^10)/exp(x)) +--lim(x=inf, x^(10^10000)/exp(x)) +-- Output: +--0 +--0 +--0 +-- +--****************************** Example 7 **************************** +-- Maple: +--> int(x^m * exp (-b * x), x=0..infinity); +-- +-- infinity +-- / +-- | m +-- | x exp(- b x) dx +-- | +-- / +-- 0 +-- +-- +--# As expected, the integral remains unevaluated. Now declare the signs +--# of the symbolic parameters: +-- +--> signum(b) := 1; +-- +-- signum(b) := 1 +-- +--> signum(m) := 1; +-- +-- signum(m) := 1 +-- +-- +--# Upon attempting to compute the integral a second time... +-- +--> int(x^m * exp (-b * x), x=0..infinity); +-- +-- infinity +-- / +-- | m +-- | x exp(- b x) dx +-- | +-- / +-- 0 +-- +--# ...THE INTEGRAL CONTINUES TO REMAIN UNEVALUATED, despite the fact that +--# the signs of the parameters 'b' and 'm' were declared PRIOR to the second +--# attempt at computation. +-- +-- SymbMath: +-- Input: +--inte(x^n*exp(-a*x), x from 0 to inf) +-- Output: +--inte(x^n*exp(-a*x), x, 0, inf) +-- +-- +--************************ Example 8 ********************************* +-- Mathematica: +--In[1]:= Integrate[1/x,{x,-1,1}] +--Out[1]= -Log[-1] +-- +-- Maple: +--has the same problem. +-- +-- SymbMath: +-- Input: +--inte(1/x, x from -1 to 1) +--inte(1/x, x from -1 to 2) +-- Output: +--0 +--ln(2) +-- +-- +--*************************** Example 9 ******************************* +-- Maple: +--has a problem for int(tan(x), x=0..pi). +-- +-- SymbMath: +-- Input: +--inte(tan(x), x from 0 to pi) +-- Output: +--0 +-- +--**************************** Example 10 **************************** +-- Mathematica: +--cannot evaluate integral of sgn(x). +-- +-- Maple: +--# cannot evaluate inegral of signum(x) by int(). Help with a procedure: +--# Load the procedure into Maple: +-- +--> read `pvint.txt`; +-- +--pvint := proc(f,x,a,b,s) +-- local i1,i2,eps; +-- signum(eps) := 1; +-- i1 := int(f,x = a .. s-eps); +-- i2 := int(f,x = s+eps .. b); +-- simplify(i1+i2); +-- limit(",eps = 0,right) +-- end +-- +-- +--> pvint(signum(x), x, -1, 1, 0); +-- +-- - eps 1 +-- / / +-- | | +-- limit | signum(x) dx + | signum(x) dx +-- eps -> 0+ | | +-- / / +-- -1 eps +-- +--# Maple refuses to evaluate this P.V. integral: +-- +--> simplify("); +-- +-- - eps 1 +-- / / +-- | | +-- limit | signum(x) dx + | signum(x) dx +-- eps -> 0+ | | +-- / / +-- -1 eps +-- +--> eval("); +-- +-- - eps 1 +-- / / +-- | | +-- limit | signum(x) dx + | signum(x) dx +-- eps -> 0+ | | +-- / / +-- -1 eps +-- +-- SymbMath: +-- Input: +--inte(sgn(x), x from -1 to 1) +--inte(sgn(x), x from -1 to 2) +-- Output: +--0 +--1 +-- +--************************* Example 11 ******************************** +--Implicit diff. gives 1+y'[x](1+1/y[x])==0; y'[x]==-y[x]/(y[x]+1). +-- +-- Mathematica: +-- given this eq. as input to DSolve says that built-in +-- procedure can't solve it. +-- +-- MACSYMA: +--(c1) depends(y,x)$ +-- +--(c2) ode2(diff(y,x) = -y/(y+1),y,x); +-- +--(d2) - log(y) - y = x + %c +-- +--(c3) method; +-- +--(d3) separable +-- +-- +-- SymbMath: +--solve the differential equation by integration inte() or by dsolve(). +-- Input: +--d(y)/d(x)*(1+1/y) === -1 +--inte(last*d(x)) +--Expand=On +--dsolve(d(y)/d(x) === -y/(y+1), y) +-- Output: +--(1 + 1/y)*d(y)/d(x) === -1 +--y + ln(y*sgn(y)) === constant - x +--Expand = On +---y - ln(y*sgn(y)) === constant + x +-- +-- +--************************* Example 12 ******************************** +-- Mathematica: +-- y'[x] = y[x]^(1/2) +-- y[0] = 0 +-- +--DSolve could not handle it. (It rarely solves anything!!), and the +--RungeKutta package only gave me the solution +-- +-- y[x]=0 +-- +--Obviously, there is another solution viz. +-- +-- y[x] = (x/2)^2 +-- +-- SymbMath: +-- Input: +--dsolve(d(y)/d(x) === sqrt(y), y) +--(last/2)^2 +-- Output: +--2*sqrt(y) === constant + x +--y === 1/4*(constant + x)^2 +-- +--************************* Example 13 ******************************** +-- Maple: +--> sqrt(x*x); +-- x +-- +-- Mathematica: +-- Sqrt[a^2] evaluates to Sqrt[a^2]. +-- +-- SymbMath: +-- Input: +--sqrt(x^2) +--assume(a > 0) +--sqrt(a^2) +--assume(b <0 ) +--sqrt(b^2) +-- Output: +--x*sgn(x) +--assumed +--a +--assumed +---b +-- +--********************** Example 14 ********************************** +-- Maple and Mathematica cannot find the integrals of abs(x). +-- +-- SymbMath: +-- Input: +--inte(abs(x), x from -1 to 1) +--inte(abs(x)^5*d(x)) +-- Output: +--1 +--constant + 1/6*abs(x)^6*sgn(x) +-- +----------------------------------------------------------------------- +-- +-- The following problems are taken from Swokowski's Calculus +--book. They cause Mathematica to fail because of a singularity in +--the interior of the interval of integration: +-- +-- Section 10.4 Problems 3, 12, 15, 16, 23, 29. +-- +--The comments "INTEGRAL IS DIVERGENT" and "Principal Value" come from +--Macsyma. Mma gives no indication that anything is amiss. +-- +--************************ Problem3 ********************************* +-- Mathematica: +--In[4]:= Integrate[1/x^2,{x,-3,1}] +-- +-- 4 +--Out[4]= -(-) (* INTEGRAL IS DIVERGENT *) +-- 3 +-- +-- SymbMath: +-- Input: +--inte(1/x^2, x from -3 to 1) +-- Output: +--inf +-- +--************************** Problem12 *************************** +-- Mathemtica: +--In[6]:= Integrate[x^(-4/3),{x,-1,1}] +-- +--Out[6]= -6 (* INTEGRAL IS DIVERGENT *) +-- +-- SymbMath: +-- Input: +--inte(x^(-4/3), x from -1 to 1) +-- Output: +--inf +-- +--**************************** Problem15 ************************ +-- Mathematica: +--In[7]:= Integrate[1/x,{x,-1,2}] +-- +--Out[7]= -Log[-1] + Log[2] +-- +-- Maple: +--has the same problem. +-- +-- Macsyma: +-- (c7) integrate(1/x,x,-1,2); +-- Principal Value +-- (d7) log(2) +-- +-- SymbMath: +-- Input: +--inte(1/x, x from -1 to 2) +-- Output: +--ln(2) +-- +-- +--********************** Problem16 ************************************ +-- Mathematica: +--In[8]:= Integrate[1/(x^2-x-2),{x,0,4}] +-- +-- -Log[-2] Log[2] Log[5] +--Out[8]= -------- + ------ - ------ +-- 3 3 3 +-- +-- Macsyma: +-- (c8) integrate(1/(x^2-x-2),x,0,4); +-- Principal Value +-- log(5) +-- (d8) - ------ +-- 3 +-- +-- +-- SymbMath: +-- Input: +--inte(1/(x^2-x-2), x from 0 to 4) +-- Output: +---1/3*ln(2) + 1/3*ln(2/5) +-- +--***************************** Problem23 ********************** +-- Mathematica: +--In[10]:= Integrate[(1/x^2)Cos[1/x],{x,-1,2}] +-- +-- 1 +--Out[10]= Sin[-1] - Sin[-] (* INTEGRAL IS DIVERGENT *) +-- 2 +-- +-- SymbMath: +-- Input: +--y=1/x^2*cos(1/x) +--inte(y, x from -1 to 0-zero) + inte(y, x from 0+zero to 2) +-- Output: +--y = x^(-2)*cos(1/x) +--sin(-1) - sin(1/2) + 2*sin(inf) +-- +--************************** Problem29 ******************************** +-- Mathematica: +--In[12]:= Integrate[1/(x-4)^2,{x,0,Infinity}] +-- +-- 1 +--Out[12]= -(-) (* INTEGRAL IS DIVERGENT *) +-- 4 +-- +-- SymbMath: +-- Input: +--y=1/(x-4)^2 +--inte(y, x from 0 to 4-zero) + inte(y, x from 4+zero to inf) +-- Output: +--y = (-4 + x)^(-2) +--inf +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/ico.input.pamphlet b/src/input/ico.input.pamphlet new file mode 100644 index 00000000..abd2f3e9 --- /dev/null +++ b/src/input/ico.input.pamphlet @@ -0,0 +1,84 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ico.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +)cl all +)se exp add con InnerTrigonometricManipulations +exp(%i*2*%pi/5) +FG2F % +% -1 +complexForm % +norm % +simplify % +s:=sqrt % +ph:=exp(%i*2*%pi/5) +A1:=complex(1,0) +A2:=A1*ph +A3:=A2*ph +A4:=A3*ph +A5:=A4*ph +ca1:=map(numeric , complexForm FG2F simplify A1) +ca2:=map(numeric , complexForm FG2F simplify A2) +ca3:=map(numeric ,complexForm FG2F simplify A3) +ca4:=map(numeric ,complexForm FG2F simplify A4) +ca5:=map(numeric ,complexForm FG2F simplify A5) +B1:=A1*exp(2*%i*%pi/10) +B2:=B1*ph +B3:=B2*ph +B4:=B3*ph +B5:=B4*ph +cb1:=map (numeric ,complexForm FG2F simplify B1) +cb2:=map (numeric ,complexForm FG2F simplify B2) +cb3:=map (numeric ,complexForm FG2F simplify B3) +cb4:=map (numeric ,complexForm FG2F simplify B4) +cb5:=map (numeric ,complexForm FG2F simplify B5) +u:=numeric sqrt(s*s-1) +p0:=point([0,0,u+1/2])@Point(SF) +p1:=point([real ca1,imag ca1,0.5])@Point(SF) +p2:=point([real ca2,imag ca2,0.5])@Point(SF) +p2:=point([real ca2,imag ca2,0.5])@Point(SF) +p3:=point([real ca3,imag ca3,0.5])@Point(SF) +p4:=point([real ca4,imag ca4,0.5])@Point(SF) +p5:=point([real ca5,imag ca5,0.5])@Point(SF) +p6:=point([real cb1,imag cb1,-0.5])@Point(SF) +p7:=point([real cb2,imag cb2,-0.5])@Point(SF) +p8:=point([real cb3,imag cb3,-0.5])@Point(SF) +p9:=point([real cb4,imag cb4,-0.5])@Point(SF) +p10:=point([real cb5,imag cb5,-0.5])@Point(SF) +p11:=point([0,0,-u-1/2])@Point(SF) +space:=create3Space()$ThreeSpace DFLOAT +polygon(space,[p0,p1,p2]) +polygon(space,[p0,p2,p3]) +polygon(space,[p0,p3,p4]) +polygon(space,[p0,p4,p5]) +polygon(space,[p0,p5,p1]) +polygon(space,[p1,p6,p2]) +polygon(space,[p2,p7,p3]) +polygon(space,[p3,p8,p4]) +polygon(space,[p4,p9,p5]) +polygon(space,[p5,p10,p1]) +polygon(space,[p2,p6,p7]) +polygon(space,[p3,p7,p8]) +polygon(space,[p4,p8,p9]) +polygon(space,[p5,p9,p10]) +polygon(space,[p1,p10,p6]) +polygon(space,[p6,p11,p7]) +polygon(space,[p7,p11,p8]) +polygon(space,[p8,p11,p9]) +polygon(space,[p9,p11,p10]) +polygon(space,[p10,p11,p6]) +makeViewport3D(space,title=="Icosahedron") +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/ideal.input.pamphlet b/src/input/ideal.input.pamphlet new file mode 100644 index 00000000..35383b1e --- /dev/null +++ b/src/input/ideal.input.pamphlet @@ -0,0 +1,43 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ideal.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all + +(n,m) : List DMP([x,y],FRAC INT) +m := [x**2+y**2-1] +n := [x**2-y**2] +id := ideal m + ideal n +zeroDim? id +zeroDim?(ideal m) +dimension ideal m +(f,g):DMP([x,y],FRAC INT) +f := x**2-1 +g := x*(x**2-1) +relationsIdeal [f,g] +l: List DMP([x,y,z],FRAC INT) +l:=[x**2+2*y**2,x*z**2-y*z,z**2-4] +ld:=primaryDecomp ideal l +reduce(intersect,ld) +reduce(intersect,[radical ld.i for i in 1..2]) +radical ideal l +quotient(ideal l,y) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/ifact.input.pamphlet b/src/input/ifact.input.pamphlet new file mode 100644 index 00000000..b8c98497 --- /dev/null +++ b/src/input/ifact.input.pamphlet @@ -0,0 +1,32 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ifact.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- Some integer factorizations +factor(3**17-1) +factor(3**23-1) +factor(3**31-1) +factor(3**41-1) +factor(3**53-1) +factor(111111111111111111111111) +factor(11111111111111111111111111111111111111111111111) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/images1.input.pamphlet b/src/input/images1.input.pamphlet new file mode 100644 index 00000000..3c178e25 --- /dev/null +++ b/src/input/images1.input.pamphlet @@ -0,0 +1,30 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input images1.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- Color gallery page 1 + +)read tknot + +-- draw a (15,17) torus knot + +torusKnot(15,17, 0.1, 6, 700) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/images1a.input.pamphlet b/src/input/images1a.input.pamphlet new file mode 100644 index 00000000..4164de0b --- /dev/null +++ b/src/input/images1a.input.pamphlet @@ -0,0 +1,129 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input images1a.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994-1996. +@ +<<*>>= +<<license>> + +-- Create a (p,q) torus-knot with radius r around the curve. +-- The formula was derived by Larry Lambe. + +-- To produce a trefoil knot: +-- torusKnot(2, 3, 0.5, 10, 200) + +-- compile, don't interpret functions +)set function compile on + +-- Generalized tubes. +-- These functions draw a 2-d curve in the normal +-- planes around a 3-d curve. The computations are all done +-- numerically in machine-precision floating point for efficiency. + +R3 := Point DoubleFloat -- Points in 3-Space +R2 := Point DoubleFloat -- Points in 2-Space +S := Segment Float -- Draw ranges +ThreeCurve := DoubleFloat -> R3 -- type of a space curve function +TwoCurve := (DoubleFloat, DoubleFloat) -> R2 -- type of a plane curve function +Surface := (DoubleFloat, DoubleFloat) -> R3 -- type of a parameterized surface function + +-- Frenet frames define a coordinate system around a point on a space curve +FrenetFrame := Record(value: R3, tagent: R3, normal: R3, binormal: R3) + +-- Holds current Frenet frame for a point on a curve +frame: FrenetFrame + +-- compile, don't interpret functions +)set fun compile on + +-- Draw a generalized tube. +-- ntubeDraw(spaceCurve, planeCurve, u0..u1, t0..t1) +-- draws planeCurve int the normal planes of spaceCurve. u0..u1 specifies +-- the paramter range of the planeCurve and t0..t1 specifies the parameter +-- range of the spaceCurve. Additionally the plane curve function takes +-- as a second parameter the current parameter of the spaceCurve. This +-- allows the plane curve to evolve as it goes around the space curve. +-- see "page5.input" for an example of this. +ntubeDraw: (ThreeCurve, TwoCurve, S, S) -> VIEW3D +ntubeDraw(spaceCurve, planeCurve, uRange, tRange) == + ntubeDrawOpt(spaceCurve, planeCurve, uRange, tRange, []$List DROPT) + +-- ntuberDrawOpt is the same as ntuberDraw, but takes optional +-- parameters which it passes to the draw command. +ntubeDrawOpt: (ThreeCurve, TwoCurve, S, S, List DROPT) -> VIEW3D +ntubeDrawOpt(spaceCurve, planeCurve, uRange, tRange, l) == + delT:DoubleFloat := (hi(tRange) - lo(tRange))/10000 + oldT:DoubleFloat := lo(tRange) - 1 + fun := ngeneralTube(spaceCurve, planeCurve, delT, oldT) + draw(fun, uRange, tRange, l) + +-- nfrenetFrame(c, t, delT) numerically computes the Frenet Frame +-- about the curve c at t. delT is a small number used to +-- compute derivatives. +nfrenetFrame(c, t, delT) == + f0 := c(t) + f1 := c(t+delT) + t0 := f1 - f0 -- the tangent + n0 := f1 + f0 + b := cross(t0, n0) -- the binormal + n := cross(b,t0) -- the normal + ln := length n + lb := length b + ln = 0 or lb = 0 => error "Frenet Frame not well defined" + n := (1/ln)*n -- make into unit length vectors + b := (1/lb)*b + [f0, t0, n, b]$FrenetFrame + +-- nGeneralTube(spaceCurve, planeCurve, delT, oltT) +-- creates a function which can be passed to the system draw command. +-- The function is a parameterized surface for the general tube +-- around the spaceCurve. delT is a small number used to compute +-- derivatives, and oldT is used to hold the current value of the +-- t parameter for the spaceCurve. This is an efficiency measure +-- to ensure that frames are only computed once for every value of t. +ngeneralTube: (ThreeCurve, TwoCurve, DoubleFloat, DoubleFloat) -> Surface +ngeneralTube(spaceCurve, planeCurve, delT, oldT) == + free frame + (v:DoubleFloat, t: DoubleFloat): R3 +-> + if (t ~= oldT) then + frame := nfrenetFrame(spaceCurve, t, delT) + oldT := t + p := planeCurve(v, t) + frame.value + p.1*frame.normal + p.2*frame.binormal + +-- Create a (p,q) torus-knot with radius r around the curve. +-- The formula was derived by Larry Lambe. +-- To produce a trefoil knot: +-- torusKnot(2, 3, 0.5) +torusKnot(p:DFLOAT, q:DFLOAT, r:DFLOAT, uSteps:PI, tSteps:PI):VIEW3D == + -- equation for the torus knot + knot := (t:DFLOAT):Point DFLOAT +-> + fac := 4/(2.2@DFLOAT-sin(q*t)) + fac * point [cos(p*t), sin(p*t), cos(q*t)] + -- equation for the cross section of the tube + circle := (u:DFLOAT, t:DFLOAT):Point DFLOAT +-> + r * point [cos u, sin u] + -- draw the tube around the knot + ntubeDrawOpt(knot, circle, 0..2*%pi, 0..2*%pi, var1Steps == uSteps, + var2Steps == tSteps) + + +-- draw a (15,17) torus knot + +torusKnot(15,17, 0.1, 6, 700) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/images2.input.pamphlet b/src/input/images2.input.pamphlet new file mode 100644 index 00000000..7232c5db --- /dev/null +++ b/src/input/images2.input.pamphlet @@ -0,0 +1,36 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input images2.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- Color gallery page 2 + +)r newton +)r cdraw + +-- create a Newton's iteration function for the equation x**3 = 2. +f := newtonStep(x**3 - 2) + +setClipValue(4) +drawComplexVectorField(f**3, -3..3, -3..3) +drawComplex(f**3, -3..3, -3..3) +drawComplex(f**4, -3..3, -3..3) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/images2a.input.pamphlet b/src/input/images2a.input.pamphlet new file mode 100644 index 00000000..05bd36c5 --- /dev/null +++ b/src/input/images2a.input.pamphlet @@ -0,0 +1,207 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input images2a.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +-- Newton's Iteration function + +-- newtonStep(f) returns a newton's iteration function for the +-- expression f. + +newtonStep(f) == + fun := complexNumericFunction f + deriv := complexDerivativeFunction(f,1) + (b:Complex DoubleFloat):Complex DoubleFloat +-> + b - fun(b)/deriv(b) + +-- create complex numeric functions from an expression + +complexFunPack := MakeUnaryCompiledFunction(EXPR INT, Complex DoubleFloat, Complex DoubleFloat) + +-- create a complex numeric function from an expression +complexNumericFunction x == + v := theVariable x + compiledFunction(x, v)$complexFunPack + +-- create a complex numeric derivatiave function from an expression +complexDerivativeFunction(x,n) == + v := theVariable x + df := differentiate(x,v,n) + compiledFunction(df, v)$complexFunPack + +-- return the unique variable in x, or an error if it is multivariate +theVariable x == + vl := variables x + nv := # vl + nv > 1 => error "Expression is not univariate." + nv = 0 => 'x + first vl + +-- complex surface and vector field drawing by SCM +-- complex surface vector field drawing + +C := Complex DoubleFloat +S := Segment DoubleFloat +PC := Record(rr:DoubleFloat, th:DoubleFloat) + +realSteps: PI := 25 -- the number of steps in the real direction +imagSteps: PI := 25 -- the number of steps in the imaginary direction +clipValue: DoubleFloat := 10 -- the maximum length of a vector to draw + + +-- Draw a complex function as a height field +-- uses the complex norm as the height and the complex argument as the color +-- optionally it will draw arrows on the surface indicating the direction +-- of the complex argument + +-- sample call: +-- f: C -> C +-- f z == exp(1/z) +-- drawComplex(f, 0.3..3, 0..2*%pi, false) + +-- parameter descriptions: +-- f: the function to draw +-- rRange: the range of the real values +-- imagRange: the range of imaginary values +drawComplex(f: C -> C, realRange: S, imagRange: S): VIEW3D == + free realSteps, imagSteps + delReal := (hi(realRange) - lo(realRange))/realSteps + delImag := (hi(imagRange) - lo(imagRange))/imagSteps + funTable: ARRAY2(PC) := new(realSteps+1, imagSteps+1, [0,0]$PC) + real := lo(realRange) + for i in 1..realSteps+1 repeat + imag := lo(imagRange) + for j in 1..imagSteps+1 repeat + z := f complex(real, imag) + funTable(i,j) := [clipFun(sqrt norm z), argument(z)]$PC + imag := imag + delImag + real := real + delReal + llp:List List Point DoubleFloat := [] + real := lo(realRange) + for i in 1..realSteps+1 repeat + imag := lo(imagRange) + lp:List Point DoubleFloat := [] + for j in 1..imagSteps+1 repeat + lp := cons(point [real,imag, funTable(i,j).rr, + funTable(i,j).th] ,lp) + imag := imag + delImag + real := real + delReal + llp := cons(reverse! lp, llp) + llp := reverse! llp + space := mesh(llp)$ThreeSpace(DoubleFloat) + makeViewport3D(space, "Complex Function")$VIEW3D + +-- draw a complex vector field +-- these vector fields should be viewed from the top by pressing the +-- "XY" translate button on the VIEW3D control panel + +-- parameters: +-- f: the mapping from C to C which we will draw +-- realRange: the range of the reals +-- tRange: the range of the imaginaries + +-- sample call: +-- f z == sin z +-- drawComplexVectorField(f, -2..2, -2..2) +-- call the functions 'setRealSteps' and 'setImagSteps' to change the +-- number of arrows drawn in each direction. + +drawComplexVectorField(f: C -> C, realRange: S, imagRange: S): VIEW3D == + -- compute the steps size of the grid + delReal := (hi(realRange) - lo(realRange))/realSteps + delImag := (hi(imagRange) - lo(imagRange))/imagSteps + -- create the space to hold the arrows + space := create3Space()$ThreeSpace DoubleFloat + real := lo(realRange) + for i in 1..realSteps+1 repeat + imag := lo(imagRange) + for j in 1..imagSteps+1 repeat + -- compute the function + z := f complex(real, imag) + -- get the direction of the arrow + arg := argument z + -- get the length of the arrow + len := clipFun(sqrt norm z) + -- create point at the base of the arrow + p1 := point [real, imag, 0.0@DoubleFloat, arg] + -- scale the arrow length so it isn't too long + scaleLen := delReal * len + -- create the point at the top of the arrow + p2 := point [p1.1 + scaleLen*cos(arg), p1.2 + scaleLen*sin(arg), + 0.0@DoubleFloat, arg] + -- make the pointer at the top of the arrow + arrow := makeArrow(p1, p2, scaleLen, arg) + -- add the line segments in the arrow to the space + for a in arrow repeat curve(space, a)$ThreeSpace DoubleFloat + imag := imag + delImag + real := real + delReal + -- draw the vector feild + makeViewport3D(space, "Complex Vector Field")$VIEW3D + +-- relative size of the arrow head compared to the length of the arrow +arrowScale := 0.25@DoubleFloat + +-- angle of the arrow head +arrowAngle := %pi-%pi/10.0@DoubleFloat + +-- Add an arrow head to a line segment, which starts at 'p1', ends at 'p2', +-- has length 'len', and and angle 'arg'. We pass 'len' and 'arg' as +-- arguments since thet were already computed by the calling program +makeArrow(p1, p2, len, arg) == + c1 := cos(arg + arrowAngle) + s1 := sin(arg + arrowAngle) + c2 := cos(arg - arrowAngle) + s2 := sin(arg - arrowAngle) + p3 := point [p2.1 + c1*arrowScale*len, p2.2 + s1*arrowScale*len, + p2.3, p2.4] + p4 := point [p2.1 + c2*arrowScale*len, p2.2 + s2*arrowScale*len, + p2.3, p2.4] + [[p1, p2, p3], [p2, p4]] + +-- set the number of steps to use in the real direction +setRealSteps(n) == + free realSteps + realSteps := n + +-- set the number of steps to use in the imaginary direction +setImagSteps(n) == + free imagSteps + imagSteps := n + +-- set the maximum length of a vector +setClipValue clip == + free clipValue + clipValue := clip + +-- clip a value in the interval (-clip...clip) +clipFun(x:DoubleFloat):DoubleFloat == + min(max(x, -clipValue), clipValue) + + +-- create a Newton's iteration function for the equation x**3 = 2. +f := newtonStep(x**3 - 2) + +setClipValue(4) +drawComplexVectorField(f**3, -3..3, -3..3) +drawComplex(f**3, -3..3, -3..3) +drawComplex(f**4, -3..3, -3..3) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/images3.input.pamphlet b/src/input/images3.input.pamphlet new file mode 100644 index 00000000..d9202aee --- /dev/null +++ b/src/input/images3.input.pamphlet @@ -0,0 +1,30 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input images3.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- Color gallery pages 3-4 + +)r tknot + +-- draw a seris of unfolding torus knots + +for i in 0..4 repeat torusKnot(2, 2 + i/4, 0.5, 25, 250) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/images3a.input.pamphlet b/src/input/images3a.input.pamphlet new file mode 100644 index 00000000..ff6d6741 --- /dev/null +++ b/src/input/images3a.input.pamphlet @@ -0,0 +1,57 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input images3a.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994-1996. +@ +<<*>>= +<<license>> + +-- Create a (p,q) torus-knot with radius r around the curve. +-- The formula was derived by Larry Lambe. + +-- To produce a trefoil knot: +-- torusKnot(2, 3, 0.5, 10, 200) + +-- compile, don't interpret functions +)set function compile on + +-- read in the numeric generalized tube program +)read ntube + +-- Create a (p,q) torus-knot with radius r around the curve. +-- The formula was derived by Larry Lambe. +-- To produce a trefoil knot: +-- torusKnot(2, 3, 0.5) +torusKnot(p:DFLOAT, q:DFLOAT, r:DFLOAT, uSteps:PI, tSteps:PI):VIEW3D == + -- equation for the torus knot + knot := (t:DFLOAT):Point DFLOAT +-> + fac := 4/(2.2@DFLOAT-sin(q*t)) + fac * point [cos(p*t), sin(p*t), cos(q*t)] + -- equation for the cross section of the tube + circle := (u:DFLOAT, t:DFLOAT):Point DFLOAT +-> + r * point [cos u, sin u] + -- draw the tube around the knot + ntubeDrawOpt(knot, circle, 0..2*%pi, 0..2*%pi, var1Steps == uSteps, + var2Steps == tSteps) + + + +-- draw a seris of unfolding torus knots + +for i in 0..4 repeat torusKnot(2, 2 + i/4, 0.5, 25, 250) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/images5.input.pamphlet b/src/input/images5.input.pamphlet new file mode 100644 index 00000000..49a96b2c --- /dev/null +++ b/src/input/images5.input.pamphlet @@ -0,0 +1,102 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input images5.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- Color gallery page 5 + + +-- Etruscan Venus +-- Parameterization by George Frances + +venus(a,r,steps) == + surf := (u:DoubleFloat, v:DoubleFloat): Point DoubleFloat +-> + cv := cos(v) + sv := sin(v) + cu := cos(u) + su := sin(u) + x := r * cos(2*u) * cv + sv * cu + y := r * sin(2*u) * cv - sv * su + z := a * cv + point [x,y,z] + draw(surf, 0..%pi, -%pi..%pi, var1Steps==steps,var2Steps==steps, + title == "Etruscan Venus") + +venus(5/2, 13/10, 50) + +-- Figure Eight Klein Bottle +-- Parameterization from: +-- "Differential Geometry and Computer Graphics" by Thomas Banchoff +-- in Perspectives in Mathemtaics, Anneversry of Oberwolfasch 1984. +-- Beirkhauser-Verlag, Basel, pp 43-60. + +klein(x,y) == + cx := cos(x) + cy := cos(y) + sx := sin(x) + sy := sin(y) + sx2 := sin(x/2) + cx2 := cos(x/2) + sq2 := sqrt(2.0@DoubleFloat) + point [cx * (cx2 * (sq2 + cy) + (sx2 * sy * cy)), _ + sx * (cx2 * (sq2 + cy) + (sx2 * sy * cy)), _ + -sx2 * (sq2 + cy) + cx2 * sy * cy] + +draw(klein, 0..4*%pi, 0..2*%pi, var1Steps==50, var2Steps==50, _ + title=="Figure Eight Klein Bottle") + +-- Twisted torus + +)read ntube + +-- rotate a 2-d point by theta round the origin +rotateBy(p, theta) == + c := cos(theta) + s := sin(theta) + point [p.1*c - p.2*s, p.1*s + p.2*c] + +-- a circle in 3-space +bcircle t == + point [3*cos t, 3*sin t, 0] + +-- an elipse which twists around 4 times as t revolves once. +twist(u, t) == + theta := 4*t + p := point [sin u, cos(u)/2] + rotateBy(p, theta) + +ntubeDrawOpt(bcircle, twist, 0..2*%pi, 0..2*%pi, _ + var1Steps == 70, var2Steps == 250) + +-- Striped torus + +-- a twisting circle +twist2(u, t) == + theta := t + p := point [sin u, cos(u)] + rotateBy(p, theta) + +-- color function producing 21 stripes +cf(u,v) == sin(21*u) + +ntubeDrawOpt(bcircle, twist2, 0..2*%pi, 0..2*%pi, _ + colorFunction == cf, var1Steps == 168, var2Steps == 126) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/images5a.input.pamphlet b/src/input/images5a.input.pamphlet new file mode 100644 index 00000000..a44a3810 --- /dev/null +++ b/src/input/images5a.input.pamphlet @@ -0,0 +1,175 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input images5a.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994-1996. +@ +<<*>>= +<<license>> + +-- Etruscan Venus +-- Parameterization by George Frances + +venus(a,r,steps) == + surf := (u:DoubleFloat, v:DoubleFloat): Point DoubleFloat +-> + cv := cos(v) + sv := sin(v) + cu := cos(u) + su := sin(u) + x := r * cos(2*u) * cv + sv * cu + y := r * sin(2*u) * cv - sv * su + z := a * cv + point [x,y,z] + draw(surf, 0..%pi, -%pi..%pi, var1Steps==steps,var2Steps==steps, + title == "Etruscan Venus") + +venus(5/2, 13/10, 50) + +-- Figure Eight Klein Bottle +-- Parameterization from: +-- "Differential Geometry and Computer Graphics" by Thomas Banchoff +-- in Perspectives in Mathemtaics, Anneversry of Oberwolfasch 1984. +-- Beirkhauser-Verlag, Basel, pp 43-60. + +klein(x,y) == + cx := cos(x) + cy := cos(y) + sx := sin(x) + sy := sin(y) + sx2 := sin(x/2) + cx2 := cos(x/2) + sq2 := sqrt(2.0@DoubleFloat) + point [cx * (cx2 * (sq2 + cy) + (sx2 * sy * cy)), _ + sx * (cx2 * (sq2 + cy) + (sx2 * sy * cy)), _ + -sx2 * (sq2 + cy) + cx2 * sy * cy] + +draw(klein, 0..4*%pi, 0..2*%pi, var1Steps==50, var2Steps==50, _ + title=="Figure Eight Klein Bottle") + +-- Twisted torus + +-- Generalized tubes. +-- The functions in this file draw a 2-d curve in the normal +-- planes around a 3-d curve. The computations are all done +-- numerically in machine-precision floating point for efficiency. + +R3 := Point DoubleFloat -- Points in 3-Space +R2 := Point DoubleFloat -- Points in 2-Space +S := Segment Float -- Draw ranges +ThreeCurve := DoubleFloat -> R3 -- type of a space curve function +TwoCurve := (DoubleFloat, DoubleFloat) -> R2 -- type of a plane curve function +Surface := (DoubleFloat, DoubleFloat) -> R3 -- type of a parameterized surface function + +-- Frenet frames define a coordinate system around a point on a space curve +FrenetFrame := Record(value: R3, tagent: R3, normal: R3, binormal: R3) + +-- Holds current Frenet frame for a point on a curve +frame: FrenetFrame + +-- compile, don't interpret functions +)set fun compile on + +-- Draw a generalized tube. +-- ntubeDraw(spaceCurve, planeCurve, u0..u1, t0..t1) +-- draws planeCurve int the normal planes of spaceCurve. u0..u1 specifies +-- the paramter range of the planeCurve and t0..t1 specifies the parameter +-- range of the spaceCurve. Additionally the plane curve function takes +-- as a second parameter the current parameter of the spaceCurve. This +-- allows the plane curve to evolve as it goes around the space curve. +-- see "page5.input" for an example of this. +ntubeDraw: (ThreeCurve, TwoCurve, S, S) -> VIEW3D +ntubeDraw(spaceCurve, planeCurve, uRange, tRange) == + ntubeDrawOpt(spaceCurve, planeCurve, uRange, tRange, []$List DROPT) + +-- ntuberDrawOpt is the same as ntuberDraw, but takes optional +-- parameters which it passes to the draw command. +ntubeDrawOpt: (ThreeCurve, TwoCurve, S, S, List DROPT) -> VIEW3D +ntubeDrawOpt(spaceCurve, planeCurve, uRange, tRange, l) == + delT:DoubleFloat := (hi(tRange) - lo(tRange))/10000 + oldT:DoubleFloat := lo(tRange) - 1 + fun := ngeneralTube(spaceCurve, planeCurve, delT, oldT) + draw(fun, uRange, tRange, l) + +-- nfrenetFrame(c, t, delT) numerically computes the Frenet Frame +-- about the curve c at t. delT is a small number used to +-- compute derivatives. +nfrenetFrame(c, t, delT) == + f0 := c(t) + f1 := c(t+delT) + t0 := f1 - f0 -- the tangent + n0 := f1 + f0 + b := cross(t0, n0) -- the binormal + n := cross(b,t0) -- the normal + ln := length n + lb := length b + ln = 0 or lb = 0 => error "Frenet Frame not well defined" + n := (1/ln)*n -- make into unit length vectors + b := (1/lb)*b + [f0, t0, n, b]$FrenetFrame + +-- nGeneralTube(spaceCurve, planeCurve, delT, oltT) +-- creates a function which can be passed to the system draw command. +-- The function is a parameterized surface for the general tube +-- around the spaceCurve. delT is a small number used to compute +-- derivatives, and oldT is used to hold the current value of the +-- t parameter for the spaceCurve. This is an efficiency measure +-- to ensure that frames are only computed once for every value of t. +ngeneralTube: (ThreeCurve, TwoCurve, DoubleFloat, DoubleFloat) -> Surface +ngeneralTube(spaceCurve, planeCurve, delT, oldT) == + free frame + (v:DoubleFloat, t: DoubleFloat): R3 +-> + if (t ~= oldT) then + frame := nfrenetFrame(spaceCurve, t, delT) + oldT := t + p := planeCurve(v, t) + frame.value + p.1*frame.normal + p.2*frame.binormal + + +-- rotate a 2-d point by theta round the origin +rotateBy(p, theta) == + c := cos(theta) + s := sin(theta) + point [p.1*c - p.2*s, p.1*s + p.2*c] + +-- a circle in 3-space +bcircle t == + point [3*cos t, 3*sin t, 0] + +-- an elipse which twists around 4 times as t revolves once. +twist(u, t) == + theta := 4*t + p := point [sin u, cos(u)/2] + rotateBy(p, theta) + +ntubeDrawOpt(bcircle, twist, 0..2*%pi, 0..2*%pi, _ + var1Steps == 70, var2Steps == 250) + +-- Striped torus + +-- a twisting circle +twist2(u, t) == + theta := t + p := point [sin u, cos(u)] + rotateBy(p, theta) + +-- color function producing 21 stripes +cf(u,v) == sin(21*u) + +ntubeDrawOpt(bcircle, twist2, 0..2*%pi, 0..2*%pi, _ + colorFunction == cf, var1Steps == 168, var2Steps == 126) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/images6.input.pamphlet b/src/input/images6.input.pamphlet new file mode 100644 index 00000000..6d362774 --- /dev/null +++ b/src/input/images6.input.pamphlet @@ -0,0 +1,46 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input images6.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- Color gallery page 6 + +-- 3-d surface whose height is the real part of the Gamma function, +-- and whose color is the argument of the Gamma function +gam(x,y) == + g := Gamma complex(x,y) + point [x,y,max(min(real g, 4), -4), argument g] + +draw(gam, -%pi..%pi, -%pi..%pi, title == "Gamma(x + %i*y)", + var1Steps == 100, var2Steps == 100) + +-- The Beta function + +b(x,y) == Beta(x,y) +draw(b, -3.1..3, -3.1 .. 3, title == "Beta(x,y)") + +-- The complex arc tangent function +atf(x,y) == + a := atan complex(x,y) + point [x,y,real a, argument a] + +draw(atf, -3.0..%pi, -3.0..%pi) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/images6a.input.pamphlet b/src/input/images6a.input.pamphlet new file mode 100644 index 00000000..44a06d43 --- /dev/null +++ b/src/input/images6a.input.pamphlet @@ -0,0 +1,45 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input images6a.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994-1996. +@ +<<*>>= +<<license>> + +-- 3-d surface whose height is the real part of the Gamma function, +-- and whose color is the argument of the Gamma function +gam(x,y) == + g := Gamma complex(x,y) + point [x,y,max(min(real g, 4), -4), argument g] + +draw(gam, -%pi..%pi, -%pi..%pi, title == "Gamma(x + %i*y)", + var1Steps == 100, var2Steps == 100) + +-- The Beta function + +b(x,y) == Beta(x,y) +draw(b, -3.1..3, -3.1 .. 3, title == "Beta(x,y)") + +-- The complex arc tangent function +atf(x,y) == + a := atan complex(x,y) + point [x,y,real a, argument a] + +draw(atf, -3.0..%pi, -3.0..%pi) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/images7.input.pamphlet b/src/input/images7.input.pamphlet new file mode 100644 index 00000000..0d3ee375 --- /dev/null +++ b/src/input/images7.input.pamphlet @@ -0,0 +1,56 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input images7.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- Color gallery page 7 + +)r conformal + +-- Conformal maps + +-- The map z +-> z + 1/z on the complex plane + +-- The coordinate grid for the complex plane + +f z == z + +conformalDraw(f, -2..2, -2..2, 9, 9, "cartesian") + +f z == z + 1/z + +conformalDraw(f, -2..2, -2..2, 9, 9, "cartesian") + +-- The map z +-> -(z+1)/(z-1) +-- This function maps the unit disk to the right half-plane, as shown +-- on the Riemann sphere. + +-- The unit disk +f z == z +riemannConformalDraw(f, 0.1..0.99, 0..2*%pi, 7, 11, "polar") + +-- The right half-plane +f z == -(z+1)/(z-1) +riemannConformalDraw(f, 0.1..0.99, 0..2*%pi, 7, 11, "polar") + +-- Visualization of the mapping from the complex plane to the Riemann Sphere. +riemannSphereDraw(-4..4, -4..4, 7, 7, "cartesian") + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/images7a.input.pamphlet b/src/input/images7a.input.pamphlet new file mode 100644 index 00000000..bc6fc3bc --- /dev/null +++ b/src/input/images7a.input.pamphlet @@ -0,0 +1,213 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input images7a.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +-- Drawing conformal maps. + +-- The functions in this file draw conformal maps both on the +-- complex plane and on the Riemann sphere. + +-- Compile, don't interpret functions. +)set fun comp on + +C := Complex DoubleFloat -- Complex Numbers +S := Segment DoubleFloat -- Draw ranges +R3 := POINT DoubleFloat -- points in 3-space + +-- conformalDraw(f, rRange, tRange, rSteps, tSteps, coord) +-- draws the image of the coordinate grid under f in the complex plane. +-- The grid may be given in either polar or cartesian coordinates. +-- parameter descriptions: +-- f: the function to draw +-- rRange: the range of the radius (in polar) or real (in cartesian) +-- tRange: the range of theta (in polar) or imaginary (in cartesian) +-- tSteps, rSteps: the number of intervals in each direction +-- coord: the coordinate system to use. Either "polar" or "cartesian" + +conformalDraw: (C -> C, S, S, PI, PI, String) -> VIEW3D +conformalDraw(f, rRange, tRange, rSteps, tSteps, coord) == + transformC := + coord = "polar" => polar2Complex + cartesian2Complex + cm := makeConformalMap(f, transformC) + sp := createThreeSpace() + adaptGrid(sp, cm, rRange, tRange, rSteps, tSteps) + makeViewport3D(sp, "Conformal Map") + +-- riemannConformalDraw(f, rRange, tRange, rSteps, tSteps, coord) +-- draws the image of the coordinate grid under f on the Riemann sphere. +-- The grid may given in either polar or cartesian coordinates. +-- parameter descriptions: +-- f: the function to draw +-- rRange: the range of the radius(in polar) or real (in cartesian) +-- tRange: the range of theta (in polar) or imaginary (in cartesian) +-- tSteps, rSteps: the number of intervals in each direction +-- coord: the coordinate system to use. either "polar" or "cartesian" + +riemannConformalDraw: (C -> C, S, S, PI, PI, String) -> VIEW3D +riemannConformalDraw(f, rRange, tRange, rSteps, tSteps, coord) == + transformC := + coord = "polar" => polar2Complex + cartesian2Complex + sp := createThreeSpace() + cm := makeRiemannConformalMap(f, transformC) + adaptGrid(sp, cm, rRange, tRange, rSteps, tSteps) + -- add an invisible point at the north pole for scaling + curve(sp, [point [0,0,2.0@DoubleFloat,0], point [0,0, 2.0@DoubleFloat,0]]) + makeViewport3D(sp, "Conformal Map on the Riemann Sphere") + +-- Plot the coordinate grid using adaptive plotting for the coordinate +-- lines, and drawing tubes around the lines. +adaptGrid(sp, f, uRange, vRange, uSteps, vSteps) == + delU := (hi(uRange) - lo(uRange))/uSteps + delV := (hi(vRange) - lo(vRange))/vSteps + uSteps := uSteps + 1; vSteps := vSteps + 1 + u := lo uRange + -- draw the coodinate lines in the v direction + for i in 1..uSteps repeat + -- create a curve 'c' which fixes the current value of 'u' + c := curryLeft(f,u) + cf := (t:DoubleFloat):DoubleFloat +-> 0 + -- draw the 'v' coordinate line + makeObject(c, vRange::Segment Float, colorFunction == cf, space == sp, _ + tubeRadius == 0.02, tubePoints == 6) + u := u + delU + v := lo vRange + -- draw the coodinate lines in the u direction + for i in 1..vSteps repeat + -- create a curve 'c' which fixes the current value of 'v' + c := curryRight(f,v) + cf := (t:DoubleFloat):DoubleFloat +-> 1 + -- draw the 'u' coordinate line + makeObject(c, uRange::Segment Float, colorFunction == cf, space == sp, _ + tubeRadius == 0.02, tubePoints == 6) + v := v + delV + void() + +-- map a point in the complex plane to the Riemann sphere. +riemannTransform(z) == + r := sqrt norm z + cosTheta := (real z)/r + sinTheta := (imag z)/r + cp := 4*r/(4+r**2) + sp := sqrt(1-cp*cp) + if r>2 then sp := -sp + point [cosTheta*cp, sinTheta*cp, -sp + 1] + +-- convert cartesian coordinates to cartesian form complex +cartesian2Complex(r:DoubleFloat, i:DoubleFloat):C == complex(r, i) + +-- convert polar coordinates to cartesian form complex +polar2Complex(r:DoubleFloat, th:DoubleFloat):C == complex(r*cos(th), r*sin(th)) + +-- convert a complex function into a mapping from (DoubleFloat,DoubleFloat) to R3 in the +-- complex plane. +makeConformalMap(f, transformC) == + (u:DoubleFloat,v:DoubleFloat):R3 +-> + z := f transformC(u, v) + point [real z, imag z, 0.0@DoubleFloat] + +-- convert a complex function into a mapping from (DoubleFloat,DoubleFloat) to R3 on the +-- Riemann sphere. +makeRiemannConformalMap(f, transformC) == + (u:DoubleFloat, v:DoubleFloat):R3 +-> riemannTransform f transformC(u, v) + +-- draw a picture of the mapping of the complex plane to the Riemann sphere. +riemannSphereDraw: (S, S, PI, PI, String) -> VIEW3D +riemannSphereDraw(rRange, tRange, rSteps, tSteps, coord) == + transformC := + coord = "polar" => polar2Complex + cartesian2Complex + grid := (u:DoubleFloat , v:DoubleFloat): R3 +-> + z1 := transformC(u, v) + point [real z1, imag z1, 0] + sp := createThreeSpace() + adaptGrid(sp, grid, rRange, tRange, rSteps, tSteps) + connectingLines(sp, grid, rRange, tRange, rSteps, tSteps) + makeObject(riemannSphere, 0..2*%pi, 0..%pi, space == sp) + f := (z:C):C +-> z + cm := makeRiemannConformalMap(f, transformC) + adaptGrid(sp, cm, rRange, tRange, rSteps, tSteps) + makeViewport3D(sp, "Riemann Sphere") + +-- draw the lines which connect the points in the complex plane to +-- the north pole of the Riemann sphere. +connectingLines(sp, f, uRange, vRange, uSteps, vSteps) == + delU := (hi(uRange) - lo(uRange))/uSteps + delV := (hi(vRange) - lo(vRange))/vSteps + uSteps := uSteps + 1; vSteps := vSteps + 1 + u := lo uRange + -- for each grid point + for i in 1..uSteps repeat + v := lo vRange + for j in 1..vSteps repeat + p1 := f(u,v) + p2 := riemannTransform complex(p1.1, p1.2) + fun := lineFromTo(p1,p2) + cf := (t:DoubleFloat):DoubleFloat +-> 3 + makeObject(fun, 0..1, space == sp, tubePoints == 4, tubeRadius == 0.01, + colorFunction == cf) + v := v + delV + u := u + delU + void() + +riemannSphere(u,v) == + sv := sin(v) + 0.99@DoubleFloat*(point [cos(u)*sv, sin(u)*sv, cos(v),0.0@DoubleFloat]) + + point [0.0@DoubleFloat, 0.0@DoubleFloat, 1.0@DoubleFloat, 4.0@DoubleFloat] + +-- create a line functions which goeas from p1 to p2 as its paramter +-- goes from 0 to 1. +lineFromTo(p1, p2) == + d := p2 - p1 + (t:DoubleFloat):Point DoubleFloat +-> p1 + t*d + +-- Conformal maps + +-- The map z +-> z + 1/z on the complex plane + +-- The coordinate grid for the complex plane + +f z == z + +conformalDraw(f, -2..2, -2..2, 9, 9, "cartesian") + +f z == z + 1/z + +conformalDraw(f, -2..2, -2..2, 9, 9, "cartesian") + +-- The map z +-> -(z+1)/(z-1) +-- This function maps the unit disk to the right half-plane, as shown +-- on the Riemann sphere. + +-- The unit disk +f z == z +riemannConformalDraw(f, 0.1..0.99, 0..2*%pi, 7, 11, "polar") + +-- The right half-plane +f z == -(z+1)/(z-1) +riemannConformalDraw(f, 0.1..0.99, 0..2*%pi, 7, 11, "polar") + +-- Visualization of the mapping from the complex plane to the Riemann Sphere. +riemannSphereDraw(-4..4, -4..4, 7, 7, "cartesian") + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/images8.input.pamphlet b/src/input/images8.input.pamphlet new file mode 100644 index 00000000..449ef05e --- /dev/null +++ b/src/input/images8.input.pamphlet @@ -0,0 +1,50 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input images8.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- Color gallery page 8 + +-- Sierpinsky's Tetrahedron + +)read tetra + +drawPyramid 4 + +-- Antoine's Rings + +)read antoine + +drawRings 2 + +-- Scherk's Minimal surface + +)read scherk + +drawScherk(3,3) + +-- Ribbon Plot of [x**i for i in 1..5] + +)r ribbons + +)set message test off +drawRibbons([x**i for i in 1..5], x=-1..1, y=0..2) +)set message test on +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/images8a.input.pamphlet b/src/input/images8a.input.pamphlet new file mode 100644 index 00000000..7aae8801 --- /dev/null +++ b/src/input/images8a.input.pamphlet @@ -0,0 +1,268 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input images8a.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +-- Sierpinsky's Tetrahedron + + +-- Sierpinsky's Tetrahedron +-- Bring DH matrices into the environment +)set expose add con DenavitHartenbergMatrix + +-- Create Affine transformations (DH matrices) that transform +-- a given triangle into another given triangle + +-- tri2tri(t1, t2) returns a DHMATRIX which transforms t1 to t2, +-- where t1 and t2 are the vertices of two triangles in 3-space. +tri2tri(t1: List Point DoubleFloat, t2: List Point DoubleFloat): DHMATRIX(DoubleFloat) == + n1 := triangleNormal(t1) + n2 := triangleNormal(t2) + tet2tet(concat(t1, n1), concat(t2, n2)) + +-- tet2tet(t1, t2) returns a DHMATRIX which transforms t1 to t2, +-- where t1 and t2 are the vertices of two tetrahedrons in 3-space. +tet2tet(t1: List Point DoubleFloat, t2: List Point DoubleFloat): DHMATRIX(DoubleFloat) == + m1 := makeColumnMatrix t1 + m2 := makeColumnMatrix t2 + m2 * inverse(m1) + +-- put the vertices of a tetrahedron into matrix form +makeColumnMatrix(t) == + m := new(4,4,0)$DHMATRIX(DoubleFloat) + for x in t for i in 1..repeat + for j in 1..3 repeat + m(j,i) := x.j + m(4,i) := 1 + m + +-- return a vector normal to the given triangle, whose length +-- is the square root of the area of the triangle +triangleNormal(t) == + a := triangleArea t + p1 := t.2 - t.1 + p2 := t.3 - t.2 + c := cross(p1, p2) + len := length(c) + len = 0 => error "degenerate triangle!" + c := (1/len)*c + t.1 + sqrt(a) * c + +-- compute the are of a triangle using Heron's formula +triangleArea t == + a := length(t.2 - t.1) + b := length(t.3 - t.2) + c := length(t.1 - t.3) + s := (a+b+c)/2 + sqrt(s*(s-a)*(s-b)*(s-c)) + +-- set up the coordinates of the corners of a tetrahedron +x1:DoubleFloat := sqrt(2.0@DoubleFloat/3.0@DoubleFloat) +x2:DoubleFloat := sqrt(3.0@DoubleFloat)/6 + +p1 := point [-0.5@DoubleFloat, -x2, 0.0@DoubleFloat] +p2 := point [0.5@DoubleFloat, -x2, 0.0@DoubleFloat] +p3 := point [0.0@DoubleFloat, 2*x2, 0.0@DoubleFloat] +p4 := point [0.0@DoubleFloat, 0.0@DoubleFloat, x1] + +-- The base of the tetrahedron +baseTriangle := [p2, p1, p3] + +-- The "middle triangle" inscribed in the base of the tetrahedon +mt := [0.5@DoubleFloat*(p2+p1), 0.5@DoubleFloat*(p1+p3), 0.5@DoubleFloat*(p3+p2)] + +-- The bases of the triangles of the subdivided tetrahedon +bt1 := [mt.1, p1, mt.2] +bt2 := [p2, mt.1, mt.3] +bt3 := [mt.2, p3, mt.3] +bt4 := [0.5@DoubleFloat*(p2+p4), 0.5@DoubleFloat*(p1+p4), 0.5@DoubleFloat*(p3+p4)] + +-- create the transformations which bring the base of the tetrahedron +-- to the bases of the subdivided tetrahedron +tt1 := tri2tri(baseTriangle, bt1) +tt2 := tri2tri(baseTriangle, bt2) +tt3 := tri2tri(baseTriangle, bt3) +tt4 := tri2tri(baseTriangle, bt4) + +-- Draw a Sierpinsky tetrahedron with n levels of recursive subdivision +drawPyramid(n) == + s := create3Space()$ThreeSpace DoubleFloat + dh := rotatex(0.0@DoubleFloat) + drawPyramidInner(s, n, dh) + makeViewport3D(s, "Sierpinsky Tetrahedron")$VIEW3D + +-- Recursively draw a Sierpinsky tetrahedron +drawPyramidInner(s, n, dh) == + n = 0 => makeTetrahedron(s, dh, n) + -- draw the 4 recursive pyramids + drawPyramidInner(s, n-1, dh * tt1) + drawPyramidInner(s, n-1, dh * tt2) + drawPyramidInner(s, n-1, dh * tt3) + drawPyramidInner(s, n-1, dh * tt4) + +-- draw a tetrahedron into the given space, with the given color, +-- transforming it by the given DH matrix +makeTetrahedron(sp, dh, color) == + w1 := dh*p1 + w2 := dh*p2 + w3 := dh*p3 + w4 := dh*p4 + polygon(sp, [w1, w2, w4]) + polygon(sp, [w1, w3, w4]) + polygon(sp, [w2, w3, w4]) + void() + +drawPyramid 4 + +-- Antoine's Rings + +-- Draw Antoine's Necklace +-- Thanks to Matt Grayson (formerly at IBM's T.J Watson Research Center) +-- for the idea. + +-- Bring DH matrices into the environment +)set expose add con DenavitHartenbergMatrix + +-- The current transformation for drawing a sub-ring +torusRot: DHMATRIX(DoubleFloat) + +-- Draw Antoine's Rings with n levels of recursive subdivision. +-- The number of subrings is 10**n. +drawRings(n) == + s := create3Space()$ThreeSpace DoubleFloat + -- create an identity transformation + dh:DHMATRIX(DoubleFloat) := identity() + drawRingsInner(s, n, dh) + makeViewport3D(s, "Antoine's Necklace") + +-- Recursively draw Antoine's Necklace. +drawRingsInner(s, n, dh) == + n = 0 => + drawRing(s, dh) + void() + t := 0.0@DoubleFloat -- the current angle around the ring + p := 0.0@DoubleFloat -- the angle of the subring from the plane + tr := 1.0@DoubleFloat -- the amount to translate the subring + inc := 0.1@DoubleFloat -- translation increment + -- subdivide the ring into 10 linked rings + for i in 1..10 repeat + tr := tr + inc + inc := -inc + dh' := dh * rotatez(t) * translate(tr, 0.0@DoubleFloat, 0.0@DoubleFloat) * + rotatey(p) * scale(0.35@DoubleFloat, 0.48@DoubleFloat, 0.4@DoubleFloat) + drawRingsInner(s, n-1, dh') + t := t + 36.0@DoubleFloat + p := p + 90.0@DoubleFloat + void() + +-- draw a single ring into the given subspace, transformed by the given +-- DHMATRIX. +drawRing(s, dh) == + free torusRot + torusRot := dh + makeObject(torus, 0..2*%pi, 0..2*%pi, var1Steps == 6, space == s, + var2Steps == 15) + +-- Parameterization of a torus, transformed by the DHMATRIX in torusRot. +torus(u ,v) == + cu := cos(u)/6 + torusRot * point [(1+cu)*cos(v), (1+cu)*sin(v), (sin u)/6] + +drawRings 2 + +-- Scherk's Minimal surface +-- Defined by: +-- exp(z) * cos(x) = cos(y) +-- See: A comprehensive Introduction to Differential Geometry, Vol. 3, +-- by Michael Spivak, Publish Or Persih, Berkeley, 1979, pp 249-252. + +-- Off set for a single piece of Scherk's minimal surface +(xOffset, yOffset):DoubleFloat + +-- DrawScherk's minimal surface on an m by n patch. +drawScherk(m,n) == + free xOffset, yOffset + space := create3Space()$ThreeSpace(DoubleFloat) + for i in 0..m-1 repeat + xOffset := i*%pi + for j in 0 .. n-1 repeat + rem(i+j, 2) = 0 => 'iter + yOffset := j*%pi + drawOneScherk(space) + makeViewport3D(space, "Scherk's Minimal Surface") + +-- The four patches which make up a single piece of Scherk's minimal surface. +scherk1(u,v) == + x := cos(u)/exp(v) + point [xOffset + acos(x), yOffset + u, v, abs(v)] + +scherk2(u,v) == + x := cos(u)/exp(v) + point [xOffset - acos(x), yOffset + u, v, abs(v)] + +scherk3(u,v) == + x := exp(v) * cos(u) + point [xOffset + u, yOffset + acos(x), v, abs(v)] + +scherk4(u,v) == + x := exp(v) * cos(u) + point [xOffset + u, yOffset - acos(x), v, abs(v)] + + +-- We draw the surface by breaking it into 4 patches, and drawing them +-- into a single space. +drawOneScherk(s) == + makeObject(scherk1, -%pi/2..%pi/2, 0..%pi/2, space == s, _ + var1Steps == 28, var2Steps == 28) + makeObject(scherk2, -%pi/2..%pi/2, 0..%pi/2, space == s, _ + var1Steps == 28, var2Steps == 28) + makeObject(scherk3, -%pi/2..%pi/2, -%pi/2..0, space == s, _ + var1Steps == 28, var2Steps == 28) + makeObject(scherk4, -%pi/2..%pi/2, -%pi/2..0, space == s, _ + var1Steps == 28, var2Steps == 28) + void() + +drawScherk(3,3) + +-- Ribbon Plot of [x**i for i in 1..5] + +drawRibbons(flist, xrange, yrange) == + sp := createThreeSpace() + num := # flist + yVar := variable yrange + y0:Float := lo segment yrange + width:Float := (hi segment yrange - y0)/num + for f in flist for color in 1..num repeat + makeObject(f, xrange, yVar = y0..y0+width, + var2Steps == 1, colorFunction == (x,y) +-> color, + space ==sp) + y0:= y0 + width + vp := makeViewport3D(sp, "Ribbons") + drawStyle(vp, "shade") + outlineRender(vp, "on") + showRegion(vp, "on") + vp + + +)set message test off +drawRibbons([x**i for i in 1..5], x=-1..1, y=0..2) +)set message test on +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/infprod.input.pamphlet b/src/input/infprod.input.pamphlet new file mode 100644 index 00000000..74121fc0 --- /dev/null +++ b/src/input/infprod.input.pamphlet @@ -0,0 +1,64 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input infprod.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +--% Infinite products of Taylor series +-- We compute series expansions of various infinite products using INFPROD0 +-- Author: Clifton J. Williamson +-- Date Created: 20 August 1992 +-- Date Last Updated: 20 August 1992 +-- Keywords: Taylor series, infinite product +-- References: + +)clear all + +-- the partition function + +f : UTS(INT,x,0) := 1 - x +g : UTS(INT,x,0) := recip f + +-- the coefficient of x ** n in the following series is the number of ways +-- that n can be partitioned as a sum of positive integers: + +infiniteProduct g + +-- Ramanujan's tau function + +h := infiniteProduct(f ** 24) + +-- the coefficient of x ** n in the following series is Ramanujan's +-- function tau(n) + +delta := x * h + +-- the function tau(n) is multiplicative, i.e. if gcd(m,n) = 1, then +-- tau(m * n) = tau(m) * tau(n) + +coefficient(delta,21) +coefficient(delta,3) * coefficient(delta,7) + +coefficient(delta,20) +coefficient(delta,4) * coefficient(delta,5) + +coefficient(delta,65) +coefficient(delta,13) * coefficient(delta,5) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/int.input.pamphlet b/src/input/int.input.pamphlet new file mode 100644 index 00000000..4d595fd3 --- /dev/null +++ b/src/input/int.input.pamphlet @@ -0,0 +1,81 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input INT.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from IntegerXmpPage +)clear all + + +-- Input generated from ugxIntegerBasicPage +)clear all + +2**(5678 - 4856 + 2 * 17) +x := -101 +abs(x) +sign(x) +x < 0 +x <= -1 +negative?(x) +x > 0 +x >= 1 +positive?(x) +zero?(x) +one?(x) +(x = -101)@Boolean +odd?(x) +even?(x) +gcd(56788,43688) +lcm(56788,43688) +max(678,567) +min(678,567) +reduce(max,[2,45,-89,78,100,-45]) +reduce(min,[2,45,-89,78,100,-45]) +reduce(gcd,[2,45,-89,78,100,-45]) +reduce(lcm,[2,45,-89,78,100,-45]) +13 / 4 +13 quo 4 +13 rem 4 +zero?(167604736446952 rem 2003644) +d := divide(13,4) +d.quotient +d.remainder + +-- Input generated from ugxIntegerPrimesPage +)clear all + +factor 102400 +prime? 7 +prime? 8 +nextPrime 100 +prevPrime 100 +primes(100,175) +factor(2 :: Complex Integer) + +-- Input generated from ugxIntegerNTPage +)clear all + +[fibonacci(k) for k in 0..] +[legendre(i,11) for i in 0..10] +[jacobi(i,15) for i in 0..9] +[eulerPhi i for i in 1..] +[moebiusMu i for i in 1..] +a := roman(78) +b := roman(87) +a + b +a * b +b rem a +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/intaf.input.pamphlet b/src/input/intaf.input.pamphlet new file mode 100644 index 00000000..009a708d --- /dev/null +++ b/src/input/intaf.input.pamphlet @@ -0,0 +1,46 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input intaf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)cl all +x**2 / sqrt(a + b*x**3) +integrate(%,x) +x**3 * sqrt(a + b*x**4) +integrate(%,x) +1/sqrt(1+x**3) +integrate(%,x) +sqrt(1+x**3) +integrate(%,x) +1/(x * sqrt(1 + x**3)) +integrate(%,x) +x**3/sqrt(1+x**8) +integrate(%,x) +x/sqrt(1-x**4) +integrate(%,x) +(x+1)/((x-2) * sqrt(1 + x**3)) +integrate(%,x) +x**6/sqrt((x**7+1)*(x**7+2)) +integrate(%,x) +sqrt(1 + sqrt(1 + x)) +integrate(%,x) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/intdeq.input.pamphlet b/src/input/intdeq.input.pamphlet new file mode 100644 index 00000000..f37da2f5 --- /dev/null +++ b/src/input/intdeq.input.pamphlet @@ -0,0 +1,32 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input intdeq.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +y := operator y +deq := differentiate(y x, x, 2) + 2*w[0]*differentiate(y x, x) + w[0]**2*y x +sol:= solve(deq = sin (w*x), y, x=0,[0,0]) +work:= sol *sin(w*x) +integrate(work,x) +D(%,x)-work +simplify % + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/intef.input.pamphlet b/src/input/intef.input.pamphlet new file mode 100644 index 00000000..99401e71 --- /dev/null +++ b/src/input/intef.input.pamphlet @@ -0,0 +1,59 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input intef.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1993. +@ +<<*>>= +<<license>> +------------------------------ intef.input -------------------------------- + +)clear all + +(a*x+b) / (b**2 * x * log(x)**2 + 2*a*b*x**2*log(x) + a**2*x**3 + x) +integrate(%,x) + +((exp(x)-x**2+2*x)/(x**2*(exp(x)+x)**2))*exp((x**2-1)/x+1/(exp(x)+x)) +integrate(%,x) + +-- here are three which do not have elementary integrals +sin(x)/x +integrate(%,x) + +x * cot x +integrate(%,x) + +(2 * log(x)**2 - log x - x**2) / (log(x)**3 - x**2 * log x) +integrate(%,x) + +-- real trigonometric functions are handled directly +cos(a * x) / (1 + cos(a * x)) +integrate(%,x) + +cos(3*x)*sin(2*x) +integrate(%,x) + +-- integrals of hyperb. trigs are transformed back into hyperb. trigs. +cosh(a*x)*sinh(a*x) +integrate(%,x) + + + + + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/intef2.input.pamphlet b/src/input/intef2.input.pamphlet new file mode 100644 index 00000000..f1611f42 --- /dev/null +++ b/src/input/intef2.input.pamphlet @@ -0,0 +1,31 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input intef2.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +)clear all +(a*x+b) / (b**2 * x * log(x)**2 + 2*a*b*x**2*log(x) + a**2*x**3 + x) +integrate(%,x) +((exp(x)-x**2+2*x)/(x**2*(exp(x)+x)**2))*exp((x**2-1)/x+1/(exp(x)+x)) +integrate(%,x) +-- here is one which does not have an elementary integral +x * cot x +integrate(%,x) +tan x + cos x +integrate(%,x) +-- integrals of hyperb. trigs are transformed back into hyperb. trigs. +cosh(a*x)*sinh(a*x) +integrate(%,x) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/intg0.input.pamphlet b/src/input/intg0.input.pamphlet new file mode 100644 index 00000000..e605df23 --- /dev/null +++ b/src/input/intg0.input.pamphlet @@ -0,0 +1,55 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input intg0.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +)cl all +-- some genus 0 integrations +y := sqrt(a * x + b) +integrate(%,x) +x * y +integrate(%,x) +z := sqrt(a**2 - x**2) +1 / z +integrate(%,x) +x**2 * z +integrate(%,x) +x**3 / (a+b*x)**(1/3) +integrate(%,x) +1 / (x**3 * (a+b*x)**(1/3)) +integrate(%,x) +-- examples of transcendentals over a curve of genus 0 +x / (y + y**2) + log(y + 1) +integrate(%,x) +(2 + 1/sqrt(x)) * cos(x + sqrt x) +integrate(%,x) +-- one which does not have an elementary integral +log(1 + y) / x +integrate(%,x) +-- integrals of hyperbolic trigs are returned in terms of hyperb. trigs. +(sinh(1+sqrt(x+b))+2*sqrt(x+b))/(sqrt(x+b)*(x+cosh(1+sqrt(x+b)))) +integrate(%,x) +-- examples of genus 0 functions presented as transcendentals +tan(atan(x)/2) +integrate(%,x) +tan(atan(x)/3) +integrate(%,x) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/intheory.input.pamphlet b/src/input/intheory.input.pamphlet new file mode 100644 index 00000000..f2e60eb7 --- /dev/null +++ b/src/input/intheory.input.pamphlet @@ -0,0 +1,45 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input INTHEORY.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + + +-- Input generated from IntegerNumberTheoryFunctionsXmpPage +)clear all + +div144 := divisors(144) +#(div144) +reduce(+,div144) +numberOfDivisors(144) +sumOfDivisors(144) +f1(n) == reduce(+,[moebiusMu(d) * numberOfDivisors(quo(n,d)) for d in divisors(n)]) +f1(200) +f1(846) +f2(n) == reduce(+,[moebiusMu(d) * sumOfDivisors(quo(n,d)) for d in divisors(n)]) +f2(200) +f2(846) +fibonacci(25) +[fibonacci(n) for n in 1..15] +fib(n) == reduce(+,[binomial(n-1-k,k) for k in 0..quo(n-1,2)]) +fib(25) +[fib(n) for n in 1..15] +legendre(3,5) +legendre(23,691) +h(d) == quo(reduce(+, [jacobi(d,k) for k in 1..quo(-d, 2)]), 2 - jacobi(d,2)) +h(-163) +h(-499) +h(-1832) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/intlf.input.pamphlet b/src/input/intlf.input.pamphlet new file mode 100644 index 00000000..562d58ed --- /dev/null +++ b/src/input/intlf.input.pamphlet @@ -0,0 +1,27 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input intlf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)cl all +exp(-x**2) * erf(x) / (erf(x)**3 - erf(x)**2 - erf(x) + 1) +integrate(%, x) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/intmix.input.pamphlet b/src/input/intmix.input.pamphlet new file mode 100644 index 00000000..750f0a88 --- /dev/null +++ b/src/input/intmix.input.pamphlet @@ -0,0 +1,36 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input intmix.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +-- some examples of mixed functions. +)cl all +(x + 1) / (x * (x + log x)**(3/2)) - 1/(x * log(x)**2) +integrate(%, x) +-- this one requires solving a risch d.e. over an elliptic curve +((5*x**4+2*x-2)/x**2 * (1+1/sqrt(x**3+1))+x/sqrt(x**3+1)) * exp(x*sqrt(x**3+1)) +integrate(%, x) +-- this one does not have an elementary integral +log(1 + exp x)**(1/3) / (1 + log(1 + exp x)) +integrate(%, x) + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/intmix2.input.pamphlet b/src/input/intmix2.input.pamphlet new file mode 100644 index 00000000..da34b109 --- /dev/null +++ b/src/input/intmix2.input.pamphlet @@ -0,0 +1,25 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input intmix2.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- some examples of mixed functions. +)cl all +(x + 1) / (x * (x + log x)**(3/2)) +integrate(%, x) +-- this one does not have an elementary integral +log(1 + exp x)**(1/3) / (1 + log(1 + exp x)) +integrate(%, x) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/intrf.input.pamphlet b/src/input/intrf.input.pamphlet new file mode 100644 index 00000000..31e37a5d --- /dev/null +++ b/src/input/intrf.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input intrf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)clear all +-- some integration of rational functions +x + y/x +integrate(%,x) +-- we need not factor the denominator +(x+1)**2/((x+1)**6+1) +integrate(%,x) +(2*x**2+4)**4/(x**2-2)**5 +integrate(%,x) +x**5/(x**4+x**2+1)**2 +integrate(%,x) +1/(x**2 + a) +integrate(%,x) +x**2/(x**4-a**2) +integrate(%,x) +x/(1-x**3) +integrate(%,x) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/ipftest.input.pamphlet b/src/input/ipftest.input.pamphlet new file mode 100644 index 00000000..7ef4427b --- /dev/null +++ b/src/input/ipftest.input.pamphlet @@ -0,0 +1,32 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ipftest.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> + +gf2 := PF 2 +a : gf2 := primitiveElement()$gf2 +order a +primitive? a +createPrimitivePoly(2)$FFPOLY(gf2) +createPrimitivePoly(4)$FFPOLY(gf2) +createPrimitivePoly(12)$FFPOLY(gf2) +createPrimitivePoly(5)$FFPOLY(PF 3) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/is.input.pamphlet b/src/input/is.input.pamphlet new file mode 100644 index 00000000..4f451c22 --- /dev/null +++ b/src/input/is.input.pamphlet @@ -0,0 +1,51 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input is.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- This is the 3n + 1 function: f(n) = n/2 if n is even, +-- 3n + 1 otherwise +-- +-- It can obviously be coded as +-- f n == +-- even? n => n quo 2 +-- 3 * n + 1 + +-- but we code using the pattern matching syntax: +-- f n == +-- n is 2*m% => m% +-- 3 * n + 1 + +-- The 'integer' is to return an integer instead of a polynomial +f n == + not empty?(u := Is(n, 2*m%)) => integer eval(m%, u) + 3 * n + 1 + +)set stream showall on + +-- The function g generates the stream of the repeated applications of f +g(n:INT):STREAM(INT) == generate(f, n) + +-- There is a conjecture that g(n) gets into the cycle (1 4 2) +-- for every n +s := g 27 +extend(s, 150) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/isprime.input.pamphlet b/src/input/isprime.input.pamphlet new file mode 100644 index 00000000..5d852177 --- /dev/null +++ b/src/input/isprime.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input isprime.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +--The first two (2152302898747 and 3474749660383) are the only strong +--pseudoprimes bases 2,3,5,7,11 less than 10^13: the remaining three +--are the only Carmichael numbers less than 10^16 with this property. +n := 6763*10627*29947 +prime?(n) +factor(n) +n := 1303*16927*157543 +prime?(n) +factor(n) +n := 3739*18691*153259 +prime?(n) +factor(n) +n := 46411*232051*417691 +prime?(n) +factor(n) +n := 21319*106591*3005839 +prime?(n) +factor(n) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/kafile.input.pamphlet b/src/input/kafile.input.pamphlet new file mode 100644 index 00000000..2297fc24 --- /dev/null +++ b/src/input/kafile.input.pamphlet @@ -0,0 +1,43 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input KAFILE.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from KeyedAccessFileXmpPage +)clear all + +ey: KeyedAccessFile(Integer) := open("/tmp/editor.year", "output") +ey."Char" := 1986 +ey."Caviness" := 1985 +ey."Fitch" := 1984 +ey."Char" +ey("Char") +ey "Char" +search("Char", ey) +search("Smith", ey) +remove!("Char", ey) +keys ey +#ey +KE := Record(key: String, entry: Integer) +reopen!(ey, "output") +write!(ey, ["van Hulzen", 1983]$KE) +write!(ey, ["Calmet", 1982]$KE) +write!(ey, ["Wang", 1981]$KE) +close! ey +keys ey +members ey +)system rm -r /tmp/editor.year +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/kernel.input.pamphlet b/src/input/kernel.input.pamphlet new file mode 100644 index 00000000..3652da8a --- /dev/null +++ b/src/input/kernel.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input KERNEL.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from KernelXmpPage +)clear all + +x :: Expression Integer +kernel x +sin(x) + cos(x) +kernels % +sin(x)**2 + sin(x) + cos(x) +kernels % +kernels(1 :: Expression Integer) +mainKernel(cos(x) + tan(x)) +height kernel x +height mainKernel(sin x) +height mainKernel(sin cos x) +height mainKernel(sin cos (tan x + sin x)) +operator mainKernel(sin cos (tan x + sin x)) +name mainKernel(sin cos (tan x + sin x)) +f := operator 'f +e := f(x, y, 10) +is?(e, f) +is?(e, 'f) +argument mainKernel e +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/knot.input.pamphlet b/src/input/knot.input.pamphlet new file mode 100644 index 00000000..073e649d --- /dev/null +++ b/src/input/knot.input.pamphlet @@ -0,0 +1,40 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input knot.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)cl all + +-- Create a (p,q) torus-knot with radius around the curve of r. + +torusKnot(p,q,r) == + a := 1 + b := 1 + ab := a+b + fac := 2*ab/(1.1*ab-sin(q*t)) + Title := concat("Torus Knot of Type (", concat(p::String, + concat(",", concat(q::String, ")")))) + Curve := curve(a*fac*cos(p*t), a*fac*sin(p*t), b*fac*cos(q*t)) + r = 0 => draw(Curve, t=0..2*%pi, title == Title) + draw(Curve, t=0..2*%pi, tubeRadius == r, title == Title) + +torusKnot(2, 3, 0.3) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/knot2.input.pamphlet b/src/input/knot2.input.pamphlet new file mode 100644 index 00000000..17c24b7c --- /dev/null +++ b/src/input/knot2.input.pamphlet @@ -0,0 +1,46 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input knot2.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +)cl all + +-- see how long this all takes +)set messages time on + +-- this is the color function, nothing elaborate for now +f(x:SF):SF == x + +-------------------------------------------------------------- +-- Creation of the knot!!! -- +-- only p/q is really used, but p and q correspond to -- +-- the factors in the notes deriving these knotty things -- +-- see the notes for detail...too involved to explain here -- +-------------------------------------------------------------- + +[p,q] := [3,5] +PQ := p/q + +l := lcm(p, q) quo p +maxRange := (odd? l => l * %pi::SF; 2 * l * %pi::SF) +theRange := 0..maxRange + +-- create the knot +knot:TUBE := tubePlot(sin t * cos(PQ*t),cos t * cos(PQ*t),cos t * sin(PQ*t), + f, theRange, 0.1::SF, 6, "open" ) + +-- make a viewport out of it +makeViewport3D(knot, concat ["knot",p::String,q::String])$VIEW3D +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/knownbugs.input.pamphlet b/src/input/knownbugs.input.pamphlet new file mode 100644 index 00000000..6bb993d6 --- /dev/null +++ b/src/input/knownbugs.input.pamphlet @@ -0,0 +1,105 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input knownbugs.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{bugs} +\subsection{bug1: round} +\begin{verbatim} +20030618000 by Bill Page <bill.page1@sympatico.ca> +version: Tuesday June 17, 2003 at 18:27:07 +status: open +\end{verbatim} +This returns -5.0 +but should return -4.0 +<<bug1>>= +round(-3.77623) +@ +\subsection{bug2: truncate} +\begin{verbatim} +20030618001 by Bill Page <bill.page1@sympatico.ca> +version: Tuesday June 17, 2003 at 18:27:07 +status: open +\end{verbatim} +This returns -10.0 +but should return -9.0 +<<bug2>>= +truncate(-9.654) +@ +\subsection{bug3 fractionPart} +\begin{verbatim} +20030618002 by Bill Page <bill.page1@sympatico.ca> +version: Tuesday June 17, 2003 at 18:27:07 +status: open +\end{verbatim} +This returns 0.22377 +but should return -0.77623 +<<bug3>>= +fractionPart(-3.77623) +@ +\subsection{bug4: Using local database} +\begin{verbatim} +20030619000 by Bill Page <bill.page1@sympatico.ca> +version: Tuesday June 17, 2003 at 18:27:07 +status: closed +\end{verbatim} +Create a file called axiom.input in your home directory. +Add a line that reads: +\begin{verbatim} +)set message autoload off +\end{verbatim} +Next time you start axiom and type a+1 you should no longer +get algebra load messages. +<<bug4>>= +--20030619000 by Bill Page <bill.page1@sympatico.ca> +-- Using local database msg is missing a newline +@ +\subsection{bug5: axiom issues 2 prompts} +\begin{verbatim} +20030619001 by Bill Page <bill.page1@sympatico.ca> +version: Tuesday June 17, 2003 at 18:27:07 +status: open +\end{verbatim} +<<bug5>>= +--20030619001 by Bill Page <bill.page1@sympatico.ca> +-- axiom issues 2 prompts on startup +@ +\subsection{bug6: turn off loading messages} +\begin{verbatim} +20030619002 by Bill Page <bill.page1@sympatico.ca> +version: Tuesday June 17, 2003 at 18:27:07 +status: closed +\end{verbatim} +<<bug6>>= +--20030619002 by Bill Page <bill.page1@sympatico.ca> +)set message autoload off +@ +\subsection{bug7: axiom.input should have a period prefix} +\begin{verbatim} +20030619003 by Bill Page <bill.page1@sympatico.ca> +version: Tuesday June 17, 2003 at 18:27:07 +status: closed +\end{verbatim} +<<bug6>>= +--20030619002 by Bill Page <bill.page1@sympatico.ca> +)set message autoload off +@ +<<*>>= +<<bug1>> +<<bug2>> +<<bug3>> +<<bug4>> +<<bug5>> +<<bug6>> +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/kovacic.input.pamphlet b/src/input/kovacic.input.pamphlet new file mode 100644 index 00000000..7ddd2eba --- /dev/null +++ b/src/input/kovacic.input.pamphlet @@ -0,0 +1,53 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input kovacic.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +y := operator y + +--I've added case 2 of Kovacic's algorithm for version 1.5 +--(version 1.0 had case 1 only, version 2.0 will have case 3). +--For order 2 equations, we can now find those solutions whose +--logarithmic derivative is an algebraic function of degree 2 +--(version 1.0 found the solutions whose logarithmic derivatives +--were rational functions). +--Here is an example of an equation that we can solve in 1.5 and not in 1.0: + +eq := 2*x**3 * differentiate(y x,x,2) + 3*x**2 * differentiate(y x,x) - 2 * y x + + +solve(eq,y,x).basis + +--(should be:) +-- +-- 2 +-- - ---- +-- +-+ +-- \|x 1 +-- (3) [%e ,--------] +-- 2 +-- - ---- +-- +-+ +-- \|x +-- %e +-- Type: List Expression Integer + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/kuipers.input.pamphlet b/src/input/kuipers.input.pamphlet new file mode 100644 index 00000000..b9a5847f --- /dev/null +++ b/src/input/kuipers.input.pamphlet @@ -0,0 +1,518 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{Quaternions and Rotation Sequences} +\author{Timothy Daly} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{Rotations in 3-space} +Orthogonal groups are used in Quantum Field Theory. Conway highlights +4 kinds of orthogonal groups. First is the General Orthogonal group +$GO_n$ which is the set of all isometries of n-dimensional Euclidean +space $R^n$ that fix the origin. This would imply rotations and +reflections but not translations. + +The determinant of any element in $GO_n$ is $+1$ or $-1$. Reflections +have a determinant of $-1$. The elements of determinant $+1$ +(rotations) form a subgroup of index 2, the Special Orthogonal group +$SO_n$. The product of any two reflections forms a rotation so +grouping reflections in pairs generates $SO_n$. + +Conway also defines two groups derived from $GO_n$ and $SO_n$. From +$GO_n$ we get the Projective General Orthogonal group. From $SO_n$ we +get the Projective Special Orthogonal group. Annoyingly, he's +introduced these groups without explaining them. And based their +definition on an undefined $\alpha$. + +It is a consequence of the existence of complex numbers that $SO_2$ +and $PSO_2$ are commutative; of the existence of quaternions that +$PSO_4$ is equivalent to $PSO_3 \times PSO_3$; and of the existence of +octonions that <img alt=$PSO_8$ has a "triality" automorphism of order 3. + +Now we move back to Kuipers, Chapter 3 "Rotations in 3-space" + +Rotation matrices are unique. Euler angle rotations are not. +Eigenvalues of rotation matrices are always $+1$ plus a pair of +complex conjugates. The trace of a square matrix is the sum of the +elements on the diagonal. + +The following code are the steps in the tracking example starting on p60. + +First we define a rotation around the X axis by a rotation angle $a$. + +<<spadcommand>>= +R1:=matrix([[cos a, sin a, 0],[-sin a, cos a, 0],[0, 0, 1]]) + +@ + +\begin{verbatim} + + cos(a) sin(a) 0+ + | | + (1) |- sin(a) cos(a) 0| + | | + + 0 0 1+ + + Type: Matrix Expression Integer +\end{verbatim} + +Next we define a rotation around the Y axis by a rotation angle of $b$. + +<<spadcommand>>= +R2:=matrix([[cos b, 0, -sin b],[0, 1, 0],[sin b, 0, cos b]]) + +@ + +\begin{verbatim} + +cos(b) 0 - sin(b)+ + | | + (2) | 0 1 0 | + | | + +sin(b) 0 cos(b) + + + Type: Matrix Expression Integer +\end{verbatim} + +Then we compose them (order is important) to form the single rotation +equivalent to first rotating around $X$, then around the new, +displaced $Y$. + +<<spadcommand>>= +R:=R2*R1 + +@ + +\begin{verbatim} + +cos(a)cos(b) cos(b)sin(a) - sin(b)+ + | | + (3) | - sin(a) cos(a) 0 | + | | + +cos(a)sin(b) sin(a)sin(b) cos(b) + + + Type: Matrix Expression Integer +\end{verbatim} + +To find the axis of this single rotation we define the vector $V$ + +<<spadcommand>>= +V:=matrix([[x1],[y1],[z1]]) +@ + +\begin{verbatim} + +x1+ + | | + (4) |y1| + | | + +z1+ + + Type: Matrix Polynomial Integer +\end{verbatim} + +And this is the equation we need to solve. Since we rotate around the +vector $V$ it is unchanged when operated on by the rotation $R$, or in +equation form we get + +<<spadcommand>>= +E:=R*V=V + +@ + +\begin{verbatim} + +- z1 sin(b) + y1 cos(b)sin(a) + x1 cos(a)cos(b)+ +x1+ + | | | | + (5) | - x1 sin(a) + y1 cos(a) |= |y1| + | | | | + + (y1 sin(a) + x1 cos(a))sin(b) + z1 cos(b) + +z1+ + + Type: Equation Matrix Expression Integer +\end{verbatim} + +We can subtract the right hand side from the left hand side thus + +<<spadcommand>>= +F:=lhs(E)-rhs(E) + +@ + +\begin{verbatim} + +- z1 sin(b) + y1 cos(b)sin(a) + x1 cos(a)cos(b) - x1+ + | | + (6) | - x1 sin(a) + y1 cos(a) - y1 | + | | + + (y1 sin(a) + x1 cos(a))sin(b) + z1 cos(b) - z1 + + + Type: Matrix Expression Integer +\end{verbatim} + +and form the equation setting the result to zero. This has two solutions. +The trivial solution is when $V$ is zero. +We solve for the nontrivial solution. + +<<spadcommand>>= +G:=F=matrix([[0],[0],[0]]) + +@ + +\begin{verbatim} + +- z1 sin(b) + y1 cos(b)sin(a) + x1 cos(a)cos(b) - x1+ +0+ + | | | | + (7) | - x1 sin(a) + y1 cos(a) - y1 |= |0| + | | | | + + (y1 sin(a) + x1 cos(a))sin(b) + z1 cos(b) - z1 + +0+ + + Type: Equation Matrix Expression Integer +\end{verbatim} + + +If we pick out the second equation + +<<spadcommand>>= +H:=elt(F,2,1) + +@ + +\begin{verbatim} + (8) - x1 sin(a) + y1 cos(a) - y1 + + Type: Expression Integer +\end{verbatim} + +and let x1 = k + +<<spadcommand>>= +x1:=k + +@ + +\begin{verbatim} + (9) k + + Type: Variable k +\end{verbatim} + +and substitute this into the second equation + +<<spadcommand>>= +J:=subst(H,'x1=k) + +@ + +\begin{verbatim} + (10) - k sin(a) + y1 cos(a) - y1 + + Type: Expression Integer +\end{verbatim} + +we can solve this equation for y1. + +<<spadcommand>>= +L:=solve(J,y1) + +@ + +\begin{verbatim} + k sin(a) + (11) [y1= ----------] + cos(a) - 1 + + Type: List Equation Expression Integer +\end{verbatim} + +and we can assign the solution to the variable y1 + +<<spadcommand>>= +y1:=rhs(first(solve(J,y1))) + +@ + +\begin{verbatim} + k sin(a) + (12) ---------- + cos(a) - 1 + + Type: Expression Integer +\end{verbatim} + +Now we turn our attention to the third equation + +<<spadcommand>>= +H1:=elt(F,3,1) + +@ + +\begin{verbatim} + (13) (y1 sin(a) + x1 cos(a))sin(b) + z1 cos(b) - z1 + + Type: Expression Integer +\end{verbatim} + +and substitute the known values for x1 and y1 + +<<spadcommand>>= +J1:=subst(H1,['x1=x1, 'y1=y1]) + +@ + +\begin{verbatim} + (14) + 2 2 + (k sin(a) + k cos(a) - k cos(a))sin(b) + (z1 cos(a) - z1)cos(b) + + + - z1 cos(a) + z1 + / + cos(a) - 1 + + Type: Expression Integer +\end{verbatim} + +and then solve for z1, assigning it to the variable z1 + + +<<spadcommand>>= +z1:=simplify(rhs(first(solve(J1,z1)))) + +@ + +\begin{verbatim} + k sin(b) + (15) ---------- + cos(b) - 1 + + Type: Expression Integer +\end{verbatim} + +So the axis of rotation is + +<<spadcommand>>= +[x1,y1,z1] + +@ + +\begin{verbatim} + k sin(a) k sin(b) + (16) [k,----------,----------] + cos(a) - 1 cos(b) - 1 + + Type: List Expression Integer +\end{verbatim} + +We can choose a specific value of $k = -1$ so that $y1$ becomes + +<<spadcommand>>= +y1:=eval(y1,[k=-1]) + +@ + +\begin{verbatim} + sin(a) + (17) - ---------- + cos(a) - 1 + + Type: Expression Integer +\end{verbatim} + +and $z1$ becomes + +<<spadcommand>>= +z1:=eval(z1,[k=-1]) + +@ + +\begin{verbatim} + sin(b) + (18) - ---------- + cos(b) - 1 + + Type: Expression Integer +\end{verbatim} + +So the axis of rotation is + +<<spadcommand>>= +[x1,y1,z1] + +@ + +\begin{verbatim} + sin(a) sin(b) + (19) [k,- ----------,- ----------] + cos(a) - 1 cos(b) - 1 + + Type: List Expression Integer +\end{verbatim} + +We need the trace of the matrix which is only defined for square matrices. +So we create a new version of the R matrix as a square matrix $RSQ$ + +<<spadcommand>>= +RSQ:SQMATRIX(3,EXPR(INT)):=R + +@ + +\begin{verbatim} + +cos(a)cos(b) cos(b)sin(a) - sin(b)+ + | | + (20) | - sin(a) cos(a) 0 | + | | + +cos(a)sin(b) sin(a)sin(b) cos(b) + + + Type: SquareMatrix(3,Expression Integer) +\end{verbatim} + +Now we compute the trace + +<<spadcommand>>= +TR:=trace(RSQ) + +@ + +\begin{verbatim} + (21) (cos(a) + 1)cos(b) + cos(a) + + Type: Expression Integer +\end{verbatim} + +and we can obtain the angle of rotation by equating the trace to 1-2*cos(c) + +<<spadcommand>>= +TREQ:=TR=1+2*cos(c) + +@ + +\begin{verbatim} + (22) (cos(a) + 1)cos(b) + cos(a)= 2cos(c) + 1 + + Type: Equation Expression Integer +\end{verbatim} + +which we can solve for c + +<<spadcommand>>= +c:=rhs(first(solve(TREQ,c))) + +@ + +\begin{verbatim} + (cos(a) + 1)cos(b) + cos(a) - 1 + (23) acos(-------------------------------) + 2 + + Type: Expression Integer +\end{verbatim} + +assuming $k=-1$, heading $a=\pi/6$, and elevation $b=\pi/3$ we can +compute numeric values for the axis of rotation thus. First a numeric +$x1$ + +<<spadcommand>>= +x1v:=eval(x1,k=-1) + +@ + +\begin{verbatim} + (24) - 1 + + Type: Polynomial Integer +\end{verbatim} + +then a numeric y1 + +<<spadcommand>>= +y1v:=numeric(eval(y1,[a=%pi/6])) + +@ + +\begin{verbatim} + (25) 3.7320508075 688772936 + + Type: Float +\end{verbatim} + +then a numeric z1 + +<<spadcommand>>= +z1v:=numeric(eval(z1,[k=-1,b=%pi/3])) + +@ + +\begin{verbatim} + (26) 1.7320508075 688772935 + + Type: Float +\end{verbatim} + +giving us the vector for the axis of rotation + +<<spadcommand>>= +[x1v, y1v, z1v] + +@ + +\begin{verbatim} + (27) [- 1.0,3.7320508075 688772936,1.7320508075 688772935] + + Type: List Polynomial Float +\end{verbatim} + +with a rotation angle (in radians) given by + +<<spadcommand>>= +c1v:=numeric(eval(c,[a=%pi/6,b=%pi/3])) + +@ + +\begin{verbatim} + (28) 1.1598041770 494147762 + + Type: Float +\end{verbatim} + +in degrees this is + +<<spadcommand>>= +c1v*180/%pi + +@ + +\begin{verbatim} + (29) 66.4518844065 75160021 + + Type: Float +\end{verbatim} + +We can evaluate the combined rotation matrix under our assumed values + +<<spadcommand>>= +rv:=eval(R,[a=%pi/6,b=%pi/3]) + +@ + +\begin{verbatim} + + +-+ +-++ + |\|3 1 \|3 | + |---- - - ----| + | 4 4 2 | + | | + | +-+ | + (30) | 1 \|3 | + |- - ---- 0 | + | 2 2 | + | | + | +-+ | + | 3 \|3 1 | + | - ---- - | + + 4 4 2 + + + Type: Matrix Expression Integer +\end{verbatim} +<<*>>= +<<spadcommand>> +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/laplace.input.pamphlet b/src/input/laplace.input.pamphlet new file mode 100644 index 00000000..07b072a2 --- /dev/null +++ b/src/input/laplace.input.pamphlet @@ -0,0 +1,59 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input laplace.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +-- some laplace transforms + +)cl all +f n == t**(n-1)*exp(-a*t)/factorial(n-1) + +-- L(f n) is 1/(s+a)^n +f 2 +laplace(%, t, s) +f 5 +laplace(%, t, s) +sin(a*t) - a*t*cos(a*t) +laplace(%, t, s) +(cosh(a*t) - cos(a*t))/(2*a**2) +laplace(%, t, s) +exp(-a*t) * sin(b*t) / b**2 +laplace(%, t, s) +sin(a*t) * cosh(a*t) - cos(a*t) * sinh(a*t) +laplace(%, t, s) +(exp(a*t) - exp(b*t))/t +laplace(%, t, s) +2/t * (1 - cosh(a*t)) +laplace(%, t, s) +2/t * (1 - cos(a*t)) +laplace(%, t, s) +(cos(a*t) - cos(b*t))/t +laplace(%, t, s) +-- we handle some very limited form of special functions +a*Ci(b*t) + c*Si(d*t) +laplace(%, t, s) +exp(a*t+b)*Ei(c*t) +laplace(%, t, s) +-- we keep unknown transforms as formal transform in the answer +sin(a*t) - a*t*cos(a*t) + exp(t**2) +laplace(%, t, s) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/leg.input.pamphlet b/src/input/leg.input.pamphlet new file mode 100644 index 00000000..b495050a --- /dev/null +++ b/src/input/leg.input.pamphlet @@ -0,0 +1,30 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input leg.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- Legendre Polynomials +)clear all +p(n | n=0) == 1 +p(n | n=1) == x +p(n | n>1) == ((2*n-1)*x*p(n-1)-(n-1)*p(n-2))/n +p 3 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/lexp.input.pamphlet b/src/input/lexp.input.pamphlet new file mode 100644 index 00000000..f8af5761 --- /dev/null +++ b/src/input/lexp.input.pamphlet @@ -0,0 +1,33 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input LEXP.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +)cl all + + a: Symbol := 'a + b: Symbol := 'b + coef := Fraction(Integer) + group := LieExponentials(Symbol, coef, 3) + lpoly := LiePolynomial(Symbol, coef) + poly := XPBWPolynomial(Symbol, coef) + ea := exp(a::lpoly)$group + eb := exp(b::lpoly)$group + g: group := ea*eb + g :: poly + log(g)$group + g1: group := inv(g) + g*g1 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/lextripk.input.pamphlet b/src/input/lextripk.input.pamphlet new file mode 100644 index 00000000..8ce0cdd1 --- /dev/null +++ b/src/input/lextripk.input.pamphlet @@ -0,0 +1,42 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input LEXTRIPK.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +)cl all + +R := Integer +ls : List Symbol := [a,b,c,d,e,f] +V := OVAR(ls) +P := NSMP(R, V) +p1: P := a*b*c*d*e*f - 1 +p2: P := a*b*c*d*e +a*b*c*d*f +a*b*c*e*f +a*b*d*e*f +a*c*d*e*f +b*c*d*e*f +p3: P := a*b*c*d + a*b*c*f + a*b*e*f + a*d*e*f + b*c*d*e + c*d*e*f +p4: P := a*b*c + a*b*f + a*e*f + b*c*d + c*d*e + d*e*f +p5: P := a*b + a*f + b*c + c*d + d*e + e*f +p6: P := a + b + c + d + e + f +lp := [p1, p2, p3, p4, p5, p6] +lextripack := LEXTRIPK(R,ls) +lg := groebner(lp)$lextripack +lexTriangular(lg,false)$lextripack +lts := lexTriangular(lg,true)$lextripack +[[init(p) for p in (ts :: List(P))] for ts in lts] +squareFreeLexTriangular(lg,true)$lextripack +reduce(+,[degree(ts) for ts in lts]) +ls2 : List Symbol := concat(ls,new()$Symbol) +zdpack := ZDSOLVE(R,ls,ls2) +concat [univariateSolve(ts)$zdpack for ts in lts] +concat [realSolve(ts)$zdpack for ts in lts] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/lib.input.pamphlet b/src/input/lib.input.pamphlet new file mode 100644 index 00000000..c8266340 --- /dev/null +++ b/src/input/lib.input.pamphlet @@ -0,0 +1,30 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input LIB.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from LibraryXmpPage +)clear all + +stuff := library "/tmp/Neat.stuff" +stuff.int := 32**2 +stuff."poly" := x**2 + 1 +stuff.str := "Hello" +keys stuff +stuff.poly +stuff("poly") +)system rm -rf /tmp/Neat.stuff +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/limit.input.pamphlet b/src/input/limit.input.pamphlet new file mode 100644 index 00000000..68a1a2fb --- /dev/null +++ b/src/input/limit.input.pamphlet @@ -0,0 +1,42 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input limit.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +)clear all +-- The returned limit seems to be wrong: +f := exp(n) * (sin(1/n + exp(-n)) - sin(1/n)) + +-- - n +-- n n %e + 1 n 1 +-- (1) %e sin(-----------) - %e sin(-) +-- n n +-- Type: Expression Integer +limit(f,n=%plusInfinity) + +-- (2) 0 +-- Type: Union(OrderedCompletion Expression Integer,...) + +--I think that the correct limit is 1, not 0. + +-- manuel + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/linalg.input.pamphlet b/src/input/linalg.input.pamphlet new file mode 100644 index 00000000..c39e5c77 --- /dev/null +++ b/src/input/linalg.input.pamphlet @@ -0,0 +1,116 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input linalg.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page MatrixMoreFunctionsPage +)clear all + +m1 := matrix([[1,-2,1],[4,2,-4]]) +m2 := matrix([[0,1,2],[2,3,4],[3,4,5]]) +m3 := matrix([[1,2,3],[2,4,6]]) +m1 + m3 +100 * m1 +m1 * m2 +-m1 + m3 * m2 +m2 * m1 +v := vector([1,0,1]) +m3 * v +m5 : MATRIX POLY INT := new(4,4,1) +vars : LIST POLY INT := [x,y,z,u] +for i in 1..4 repeat for j in 1..3 repeat m5(i,j + 1) := (vars.i)**j +m5 +trace(m5) +det := determinant(m5) +factor(det) +m6 := matrix([[1,2,1],[-2,3,4],[-1,5,6]]) +m6inv := inverse(m6) +m6 * m6inv +m7 := matrix([[1,2,1],[-2,3,4],[-1,5,5]]) +inverse(m7) +determinant(m7) +m8 : SQMATRIX(2,INT) := matrix([[1,2],[2,3]]) +m9 : SQMATRIX(2,INT) := matrix([[1,1],[0,1]]) +m8 ** 2 +m9 ** 3 +mm : SQMATRIX(2,SQMATRIX(2,INT)) := matrix([[1,m8],[m9,0]]) +100 * mm +m8 * mm +mm * mm +p : POLY SQMATRIX(2,INT) := m8 * x**2 + m9 * x + m8 * m9 +100 * p +m8 * p +p * p + +-- Input for page MatrixCanonicalFormsPage +)clear all + +m1 := matrix([[0,4,1],[5,3,-7],[-5,5,9]]) +rank(m1) +rowEchelon(m1) +nullSpace(m1) +t := eigenMatrix(m1) +inverse(t) * m1 * t + +-- Input for page MatrixBasicFunctionsPage +)clear all + +m1 := matrix([[1,2,3,4],[2,3,4,5],[3,4,5,6],[4,5,6,7]]) +m2 := matrix([[1,0,2],[20,30,10],[0,200,100]]) +(m3,m4) : MATRIX PF 7 +m3 := matrix([[1,0,1],[5,0,1]]) +m4 := matrix([[1],[2],[5],[6]]) +m2(1,1) +m2(1,1) := 99 +m2 +row(m2,2) +setRow!(m2,2,vector [66,77,88]) +r := column(m2,1) +setColumn!(m2,2,r) +nrows(m1) +m5 : MATRIX INT := new(12,12,0) +for i in 2..nrows(m5) repeat m5(i-1,i):= 1 +m5 +d : MATRIX INT := diagonalMatrix([1,2,3,2,1]) +m6 := matrix([[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14]]) +m7 := subMatrix(m6,1,3,2,4) +horizConcat(m6,m7) +vertConcat(m6,subMatrix(m6,1,1,1,5)) +transpose(m6) +setsubMatrix(m6,1,3,1,3,transpose(subMatrix(m6,1,3,1,3))) +m6 +m8 := matrix([[1,2],[3,4]]) +m9 := m8 +m10 := copy(m8) +m8(1,1) := 1000000 +m8 +m9 +m10 + +-- Input for page EigenPage +)clear all + +m1 : MATRIX FRAC INT := [[1,2,1],[2,1,-2],[1,-2,4]] +leig := eigenvalues(m1) +eigenvector(first(leig),m1) +eigenvectors(m1) +radicalEigenvectors(m1) +eigenMatrix(m1) +m2 : MATRIX FRAC INT := [[-5,-2],[18,7]] +eigenMatrix(m2) +m3 : MATRIX FRAC INT := [[1,2],[2,1]] +orthonormalBasis(m3) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/lindep.input.pamphlet b/src/input/lindep.input.pamphlet new file mode 100644 index 00000000..4623b09e --- /dev/null +++ b/src/input/lindep.input.pamphlet @@ -0,0 +1,45 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input lindep.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)cl all +v(i:INT):DIRPROD(5, FRAC INT) == + directProduct vector [i / (i + j) for j in 0..4] +-- Create several elements of Q^5 +V := vector [v i for i in 1..6] +-- Are they linearly dependent over Z? +linearlyDependentOverZ? V +-- Get the linear dependence relation over Z explicitly +linearDependenceOverZ V +-- the Vi's are linearly dependent, express V.2 in terms of the others +solveLinearlyOverQ(delete(V, 2), V.2) +w(i:INT):SQMATRIX(2, INT) == + squareMatrix matrix [[i, i + 1], [i - 1, -i]] +-- Create several elements of Z(2) +W := vector [w i for i in 1..3] +-- Are they linearly dependent over Z? +linearlyDependentOverZ? W +-- Get the linear dependence relation over Z explicitly +linearDependenceOverZ W +-- the Wi's are linearly dependent, express W.2 in terms of the others +solveLinearlyOverQ(delete(W, 2), W.2) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/liss1.input.pamphlet b/src/input/liss1.input.pamphlet new file mode 100644 index 00000000..e9718fd2 --- /dev/null +++ b/src/input/liss1.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input liss1.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- @(#)liss1.input 1.1 89/09/07 20:55:03 +draw(curve(9*sin(3*t/4),8*sin(t)),t = -4*%pi..4*%pi, [title "Lissajous curve"]) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/liss2.input.pamphlet b/src/input/liss2.input.pamphlet new file mode 100644 index 00000000..593779a3 --- /dev/null +++ b/src/input/liss2.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input liss2.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- @(#)liss2.input 1.1 89/09/07 20:55:05 +draw(curve(-9*sin(4*t/5),8*sin(t)),t = -5*%pi..5*%pi, [title "Lissajous curve"]) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/list.input.pamphlet b/src/input/list.input.pamphlet new file mode 100644 index 00000000..0487c9d3 --- /dev/null +++ b/src/input/list.input.pamphlet @@ -0,0 +1,75 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input LIST.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from ListXmpPage +)clear all + + +-- Input generated from ugxListCreatePage +)clear all + +[2, 4, 5, 6] +[1] +list(1) +append([1,2,3],[5,6,7]) +cons(10,[9,8,7]) + +-- Input generated from ugxListAccessPage +)clear all + +empty? [x+1] +([] = nil)@Boolean +k := [4,3,7,3,8,5,9,2] +first k +k.first +k.1 +k(1) +n := #k +last k +k.last +k.(#k) + +-- Input generated from ugxListChangePage +)clear all + +k := [4,3,7,3,8,5,9,2] +k.1 := 999 +k +k := [1,2] +m := cons(0,k) +m.2 := 99 +m +k + +-- Input generated from ugxListOtherPage +)clear all + +k := [1,2,3] +rest k +removeDuplicates [4,3,4,3,5,3,4] +reverse [1,2,3,4,5,6] +member?(1/2,[3/4,5/6,1/2]) +member?(1/12,[3/4,5/6,1/2]) + +-- Input generated from ugxListDotPage +)clear all + +[1..3,10,20..23] +expand [1..3,10,20..23] +expand [1..] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/lode.input.pamphlet b/src/input/lode.input.pamphlet new file mode 100644 index 00000000..364f7202 --- /dev/null +++ b/src/input/lode.input.pamphlet @@ -0,0 +1,66 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input lode.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> +-------------------------------- lode.input --------------------------- + +)cl all +-- this will be the unknown +y := operator y + +-- homogeneous equation with constant coefficients +deq := differentiate(y x, x, 2) + differentiate(y x, x) + y x +solve(deq, y, x).basis + +-- initial value problem: y'' + y = 0, y(0) = y'(0) = 1 +deq := differentiate(y x, x, 2) + y x +solve(deq, y, x = 0, [1, 1]) + +-- same with a non-constant right-hand side +solve(deq = sin x, y, x) + +-- some inhomogenuous equations with rational coefficients +deq := x**3 * differentiate(y x, x, 3) + x**2 * differentiate(y x, x, 2) - _ +2 * x * differentiate(y x, x) + 2 * y x = 2 * x**4 +solve(deq, y, x) +-- same with initial conditions +solve(deq, y, x = 1, [b, 0, a]) + +-- third order equation with nontrivial singularities +deq := (x**9 + x**3) * differentiate(y x, x, 3) + _ +18 * x**8 * differentiate(y x, x,2) - 90 * x * differentiate(y x, x) - _ +30 * (11*x**6-3) * y x +solve(deq, y, x).basis + +-- third order equation on a curve of genus 0 +deq := (2*x+2)* differentiate(y x, x, 3) + 3* differentiate(y x, x, 2) + _ +(2*x**2+2*x)* differentiate(y x,x) - sqrt(x+1) * y x = 2 * x**2 + x - 1 +solve(deq, y, x).particular + +-- this equation is irreducible over the rational functions +deq := 2*x**3*differentiate(y x,x,2) + 3*x**2*differentiate(y x,x) - 2*y x +solve(deq,y,x).basis + + + + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/lodesys.input.pamphlet b/src/input/lodesys.input.pamphlet new file mode 100644 index 00000000..8feaf0b4 --- /dev/null +++ b/src/input/lodesys.input.pamphlet @@ -0,0 +1,57 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input lodesys.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +-- There are 2 different ways to input a homogeneous 1st order system of +-- linear ordinary differential equations of the form dy/dt = M y +-- where y is a vector of unknown functions of t. +-- the first is simply solve(M, t) which will be understood to be +-- a differential system: +M := matrix [[ 1+4*t, -5*t, 7*t, -8*t, 8*t, -6*t],_ + [ -10*t, 1+9*t, -14*t, 16*t, -16*t, 12*t],_ + [ -5*t, 5*t, 1-8*t, 8*t, -8*t, 6*t],_ + [ 10*t, -10*t, 14*t,1-17*t, 16*t, -12*t],_ + [ 5*t, -5*t, 7*t, -8*t, 1+7*t, -6*t],_ + [ -5*t, 5*t, -7*t, 8*t, -8*t, 1+5*t]] +-- the original system in Barkatou's AAECC paper is t^2 dy/dt = M*y +sol := solve(inv(t**2) * M, t) +-- verify the solutions +[t**2 * map(h +-> D(h, t), v) - M * v for v in sol] +-- the second way is to type each equation using a separate operator for +-- each unknown: +x := operator x +y := operator y +sys := [D(x t, t) = x t + sqrt 3 * y t, D(y t, t) = sqrt 3 * x t - y t] +solve(sys, [x, y], t).basis +-- Similarly there are 2 different ways to input the inhomogeneous system +-- dy/dt = M y + v where v is a given vector of functions. +-- the first is solve(M, v, t): +v := vector [1, (-29*t + 19)/5, -1, t + 1, - 2*t + 3, -1] +-- get a particular solution to t^2 dy/dt = M y + v +solp := solve(inv(t**2) * M, inv(t**2) * v, t).particular +-- verify the particular solution +t**2 * map(h +-> D(h, t), solp) - M * solp - v +-- the second way is by listing the equations: +z := operator z +sys := [D(x t, t) = y t + z t + t, D(y t, t) = x t + z t, D(z t, t) = x t + y t] +solve(sys, [x, y, z], t).particular +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/lodo.input.pamphlet b/src/input/lodo.input.pamphlet new file mode 100644 index 00000000..e19d23dc --- /dev/null +++ b/src/input/lodo.input.pamphlet @@ -0,0 +1,137 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input lodo.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> +---------------------------------- lodo.input ----------------------------- + +-- LODO2(M,A) is the domain of linear ordinary differential operators over +-- an A-module M, where A is a differential ring. This includes the +-- cases of operators which are polynomials in D acting upon scalars or +-- vectors depending on a single variable. The coefficients of the +-- operator polynomials can be integers, rational functions, matrices +-- or elements of other domains. + +------------------------------------------------------------------------ +-- Differential operators with constant coefficients +------------------------------------------------------------------------ +)clear all +RN:=FRAC INT +Dx: LODO2(RN, UP(x,RN)) + +Dx := D() -- definition of an operator +a := Dx + 1 +b := a + 1/2*Dx**2 - 1/2 + +p: UP(x,RN) := 4*x**2 + 2/3 -- something to work on + +a p -- application of an operator to a polynomial +(a*b) p = a b p -- multiplication is defined by this identity +c := (1/9)*b*(a + b)**2 -- exponentiation follows from multiplication +(a**2 - 3/4*b + c) (p + 1) -- general application of operator expressions + +------------------------------------------------------------------------ +-- Differential operators with rational function coefficients +------------------------------------------------------------------------ +)clear all +RFZ := FRAC UP(x,INT) +(Dx, a, b): LODO1 RFZ + +Dx := D() +b := 3*x**2*Dx**2 + 2*Dx + 1/x +a := b*(5*x*Dx + 7) +p: RFZ := x**2 + 1/x**2 + +(a*b - b*a) p -- operator multiplication is not commutative + +-- When the coefficients of the operator polynomials come from a field +-- it is possible to define left and right division of the operators. +-- This allows the computation of left and right gcd's via remainder +-- sequences, and also the computation of left and right lcm's. + +leftDivide(a,b) -- result is the quotient/remainder pair +a - (b * %.quotient + %.remainder) +rightDivide(a,b) +a - (%.quotient * b + %.remainder) + +-- A GCD doesn't necessarily divide a and b on both sides. +e := leftGcd(a,b) +leftRemainder(a, e) -- remainder from left division +rightRemainder(a, e) -- remainder from right division + +-- An LCM is not necessarily divisible from both sides. +f := rightLcm(a,b) +leftRemainder(f, b) +rightRemainder(f, b) -- the remainder is non-zero + +------------------------------------------------------------------------ +-- +-- Problem: find the first few coefficients of exp(x)/x**i in +-- Dop phi +-- where +-- Dop := D**3 + G/x**2 * D + H/x**3 - 1 +-- phi := sum(s[i]*exp(x)/x**i, i = 0..) +------------------------------------------------------------------------ +)clear all +Dx: LODO(EXPR INT, f +-> D(f, x)) +Dx := D() +Dop:= Dx**3 + G/x**2*Dx + H/x**3 - 1 +n == 3 +phi == reduce(+,[subscript(s,[i])*exp(x)/x**i for i in 0..n]) +phi1 == Dop(phi) / exp x +phi2 == phi1 *x**(n+3) +phi3 == retract(phi2)@(POLY INT) +pans == phi3 ::UP(x,POLY INT) +pans1 == [coefficient(pans, (n+3-i) :: NNI) for i in 2..n+1] +leq == solve(pans1,[subscript(s,[i]) for i in 1..n]) +leq +n==4 +leq +n==7 +leq + +------------------------------------------------------------------------ +-- Differential operators with matrix coefficients acting on vectors. +------------------------------------------------------------------------ +)clear all +PZ := UP(x,INT); Vect := DPMM(3, PZ, SQMATRIX(3,PZ), PZ); +Modo := LODO2(SQMATRIX(3,PZ), Vect); + +p := directProduct([3*x**2 + 1, 2*x, 7*x**3 + 2*x]::(VECTOR(PZ)))@Vect +m := [[x**2, 1, 0], [1, x**4, 0], [0, 0, 4*x**2]]::(SQMATRIX(3,PZ)) + +-- Vect is a left SM(3,PZ)-module +q: Vect := m * p + +-- Operator combination and application +Dx: Modo := D() +a: Modo := 1*Dx + m +b: Modo := m*Dx + 1 + +a*b +a p +b p +(a+b) (p + q) + + + + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/lodo1.input.pamphlet b/src/input/lodo1.input.pamphlet new file mode 100644 index 00000000..c7b45068 --- /dev/null +++ b/src/input/lodo1.input.pamphlet @@ -0,0 +1,47 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input LODO1.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + + +-- Input generated from LinearOrdinaryDifferentialOperatorOneXmpPage +)clear all + + +-- Input generated from ugxLinearOrdinaryDifferentialOperatorOneRatPage +)clear all + +RFZ := Fraction UnivariatePolynomial('x, Integer) +x : RFZ := 'x +Dx : LODO1 RFZ := D() +b : LODO1 RFZ := 3*x**2*Dx**2 + 2*Dx + 1/x +a : LODO1 RFZ := b*(5*x*Dx + 7) +p := x**2 + 1/x**2 +(a*b - b*a) p +ld := leftDivide(a,b) +a = b * ld.quotient + ld.remainder +rd := rightDivide(a,b) +a = rd.quotient * b + rd.remainder +rightQuotient(a,b) +rightRemainder(a,b) +leftExactQuotient(a,b) +e := leftGcd(a,b) +leftRemainder(a, e) +rightRemainder(a, e) +f := rightLcm(a,b) +rightRemainder(f, b) +leftRemainder(f, b) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/lodo2.input.pamphlet b/src/input/lodo2.input.pamphlet new file mode 100644 index 00000000..6a26f83e --- /dev/null +++ b/src/input/lodo2.input.pamphlet @@ -0,0 +1,56 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input LODO2.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from LinearOrdinaryDifferentialOperatorTwoXmpPage +)clear all + + +-- Input generated from ugxLinearOrdinaryDifferentialOperatorTwoConstPage +)clear all + +Q := Fraction Integer +PQ := UnivariatePolynomial('x, Q) +x: PQ := 'x +Dx: LODO2(Q, PQ) := D() +a := Dx + 1 +b := a + 1/2*Dx**2 - 1/2 +p := 4*x**2 + 2/3 +a p +(a * b) p = a b p +c := (1/9)*b*(a + b)**2 +(a**2 - 3/4*b + c) (p + 1) + +-- Input generated from ugxLinearOrdinaryDifferentialOperatorTwoMatrixPage +)clear all + +PZ := UnivariatePolynomial(x,Integer) +x:PZ := 'x +Mat := SquareMatrix(3,PZ) +Vect := DPMM(3, PZ, Mat, PZ); +Modo := LODO2(Mat, Vect); +m:Mat := matrix [[x**2,1,0],[1,x**4,0],[0,0,4*x**2]] +p:Vect := directProduct [3*x**2+1,2*x,7*x**3+2*x] +q: Vect := m * p +Dx : Modo := D() +a : Modo := Dx + m +b : Modo := m*Dx + 1 +c := a*b +a p +b p +(a + b + c) (p + q) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/lodo3.input.pamphlet b/src/input/lodo3.input.pamphlet new file mode 100644 index 00000000..e3e608b7 --- /dev/null +++ b/src/input/lodo3.input.pamphlet @@ -0,0 +1,42 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input LODO.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from LinearOrdinaryDifferentialOperatorXmpPage +)clear all + + +-- Input generated from ugxLinearOrdinaryDifferentialOperatorSeriesPage +)clear all + +Dx: LODO(EXPR INT, f +-> D(f, x)) +Dx := D() +Dop:= Dx**3 + G/x**2*Dx + H/x**3 - 1 +n == 3 +phi == reduce(+,[subscript(s,[i])*exp(x)/x**i for i in 0..n]) +phi1 == Dop(phi) / exp x +phi2 == phi1 *x**(n+3) +phi3 == retract(phi2)@(POLY INT) +pans == phi3 ::UP(x,POLY INT) +pans1 == [coefficient(pans, (n+3-i) :: NNI) for i in 2..n+1] +leq == solve(pans1,[subscript(s,[i]) for i in 1..n]) +leq +n==4 +leq +n==7 +leq +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/lodof.input.pamphlet b/src/input/lodof.input.pamphlet new file mode 100644 index 00000000..6b47eef9 --- /dev/null +++ b/src/input/lodof.input.pamphlet @@ -0,0 +1,60 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input lodof.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> +--------------------------------- lodof.input ----------------------------- + +)cl all +)expose LODOF +P := UP(t, AN) +Q := FRAC P +L := LODO1 Q +d := D()$L +t := t::P::Q + +-- reducible order 2 operator (1-1) +op := d**2 + t * d + 1 +factor op + +-- irreducible order 2 operator +op := 2*t**3 * d**2 + 3*t**2 * d - 2 +factor op + +-- reducible order 3 operator (1-2) +op := 2*t**3 * d**3 - (2*t**4 - 9*t**2) * d**2 - (3*t**3 - 6*t + 2) * d + 2*t +factor op + +-- reducible order 3 operator (1-1-1) +op := (t**9 + t**3) * d**3 + 18 * t**8 * d**2 - 90 * t * d - 30 * (11*t**6-3) +factor op + +-- irreducible order 3 operator +op := d**3 + 2 * d**2 + 5 / t * d + 7 / t**2 +factor op + +-- reducible order 6 operator (1-1-1-1-1-1) +--op := t**6*d**6+20*t**5*d**5+122*t**4*d**4+258*t**3*d**3+156*t**2*d**2+8*t*d-8 +--factor op + + + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/loop.input.pamphlet b/src/input/loop.input.pamphlet new file mode 100644 index 00000000..42b0ac84 --- /dev/null +++ b/src/input/loop.input.pamphlet @@ -0,0 +1,59 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input loop.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page BasicLoops +)clear all + +p := 2**(2**3) + 1 +repeat if prime?(p := p + 1) then leave +p +repeat if prime?(p := p + 1) then leave p + +-- Input for page NestedLoops +)clear all + +for i in 1..2 repeat for j in 3..4 repeat print [i,j] +i := 1 +while i < 3 repeat (for j in 3..4 repeat print [i,j]; i := i + 1) + +-- Input for page ParallelLoops +)clear all + +for i in 1..5 for j in 11..20 repeat print [i,j] +for i in 1..5 for j in 11.. | even? j repeat print [i,j] +for i in 1.. for j in 11.. | even? j while i < 6 repeat print [i,j] + +-- Input for page Loops +)clear all + +i := 2 +repeat (print (i := 2**i; if i > 10 then leave)) +for j in 1..5 repeat print (i := j**i) +while i < 1000 repeat print (i := 2**i) +for i in 1.. while i < 1000 repeat print [j,": ",i := 2**i] +for j in 1..4 repeat for i in 2..4 repeat print [i,"**",j," = ",i**j] + +-- Input for page ForLoops +)clear all + +for i in 0..10 repeat print (i**3) +for i in 0..10 by 2 repeat print (i**3) +for i in 10..0 by -2 repeat print (i**3) +for i in 0..10 | even? i repeat print (i**3) +for i in 0.. by 2 repeat (i**3) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/lpoly.input.pamphlet b/src/input/lpoly.input.pamphlet new file mode 100644 index 00000000..d3b8f6ae --- /dev/null +++ b/src/input/lpoly.input.pamphlet @@ -0,0 +1,48 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input LPOLY.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +)cl all + +RN := Fraction Integer +Lpoly := LiePolynomial(Symbol,RN) +Dpoly := XDPOLY(Symbol,RN) +Lword := LyndonWord Symbol +a:Symbol := 'a +b:Symbol := 'b +c:Symbol := 'c +aa: Lpoly := a +bb: Lpoly := b +cc: Lpoly := c +p : Lpoly := [aa,bb] +q : Lpoly := [p,bb] +liste : List Lword := LyndonWordsList([a,b], 4) +r: Lpoly := p + q + 3*LiePoly(liste.4)$Lpoly +s:Lpoly := [p,r] +t:Lpoly := s + 2*LiePoly(liste.3) - 5*LiePoly(liste.5) +degree t +mirror t +Jacobi(p: Lpoly, q: Lpoly, r: Lpoly): Lpoly == [[p,q]$Lpoly, r] + [[q,r]$Lpoly, p] + [[r,p]$Lpoly, q] +test: Lpoly := Jacobi(a,b,b) +test: Lpoly := Jacobi(p,q,r) +test: Lpoly := Jacobi(r,s,t) +eval(p, a, p)$Lpoly +eval(p, [a,b], [2*bb, 3*aa])$Lpoly +r: Lpoly := [p,c] +r1: Lpoly := eval(r, [a,b,c], [bb, cc, aa])$Lpoly +r2: Lpoly := eval(r, [a,b,c], [cc, aa, bb])$Lpoly +r + r1 + r2 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/lump.input.pamphlet b/src/input/lump.input.pamphlet new file mode 100644 index 00000000..39b542c3 --- /dev/null +++ b/src/input/lump.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input lump.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- @(#)lump.input 1.1 89/09/07 20:55:06 +draw(sin(2 * x**2 + 3 * y**2)/(x**2 + y**2),x = -3..3,y = -3..3) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/lupfact.input.pamphlet b/src/input/lupfact.input.pamphlet new file mode 100644 index 00000000..85ffa25c --- /dev/null +++ b/src/input/lupfact.input.pamphlet @@ -0,0 +1,146 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input lupfact.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- This file contains some functions that compute LUP factorizations of +-- matrices over a field. The main function to call is lupFactor. It +-- accepts one argument, which should be a non-singular square matrix. +-- If the matrix is not square, "failed" will be returned. If the matrix +-- is non-singular, a 'cannot coerce "failed"' error will be displayed. +-- lupFactor returns a Union(List Matrix field,"failed") object. Coerce +-- this to a List Matrix field before you try to use it. See the comment +-- before the definition of lupFactor for the reference for the +-- algorithm. + +)clear all + +-- state the field here + +field := Fraction Integer + +-- next computes a permutation matrix for mult on the right + +permMat: (INT, INT, INT) -> Matrix field + +permMat(dim, i, j) == + m : Matrix field := + diagonalMatrix [(if i = k or j = k then 0 else 1) for k in 1..dim] + m(i,j) := 1 + m(j,i) := 1 + m + +-- find first col in first row that is nonzero or returns 0 + +nonZeroCol: Matrix field -> INT + +nonZeroCol(m) == + foundit := false + col := 1 + for i in 1..ncols(m) while not foundit repeat + for j in 1..nrows(m) while not foundit repeat + if not(m(j,i) = 0) then + col := i + foundit := true + col + +-- this embeds the given square matrix in a larger square matrix +-- where the extra space is filled with 1s on the diagonal, 0 elsewhere. + +embedMatrix: (Matrix field,NNI,NNI) -> Matrix field + +embedMatrix(m, oldDim, newDim) == + n := diagonalMatrix([1 for i in 1..newDim])$(Matrix(field)) + setsubMatrix!(n,1,1,m) + n + +-- following implements algorithm in "The Design and Analysis of +-- Computer Algorithms" by Aho, Hopcroft and Ullman + +lupFactorEngine: (Matrix field, INT, INT) -> List Matrix field + +lupFactorEngine(a, m, p) == + m = 1 => + l : Matrix field := diagonalMatrix [1] + pm : Matrix field := permMat(p,1,nonZeroCol a) + [l,a*pm,pm] + m2 : NNI := m quo 2 + b : Matrix field := subMatrix(a,1,m2,1,p) + c : Matrix field := subMatrix(a,m2+1,m,1,p) + lup := lupFactorEngine(b,m2,p) + l1 := lup.1 + u1 := lup.2 + pm1 := lup.3 + d : Matrix field := c * (inverse(pm1) :: Matrix(field)) + e : Matrix field := subMatrix(u1,1,m2,1,m2) + f : Matrix field := subMatrix(d,1,m2,1,m2) + g : Matrix field := d - f * (inverse(e) :: Matrix(field)) * u1 + pmin2 : NNI := p - m2 + g' : Matrix field := subMatrix(g,1,nrows(g),p - pmin2 + 1,p) + lup := lupFactorEngine(g',m2,pmin2) + l2 := lup.1 + u2 := lup.2 + pm2 := lup.3 + pm3 := horizConcat(zero(pmin2,m2)$(Matrix field), pm2) + pm3 := vertConcat(horizConcat(diagonalMatrix [1 for i in 1..m2], + zero(m2,pmin2)$(Matrix field)),pm3) + h : Matrix field := u1 * (inverse(pm3) :: Matrix(field)) + l : Matrix field := horizConcat(l1, zero(m2,m2)$(Matrix field)) + l := vertConcat(l,horizConcat(f * (inverse(e) :: Matrix(field)), l2)) + u : Matrix field := horizConcat(zero(m2,m2)$(Matrix field), u2) + u := vertConcat(h,u) + pm := pm3 * pm1 + [l,u,pm] + +-- next computes floor of log base 2 of an integer + +intLog2: NNI -> NNI + +intLog2 n == if n = 1 then 0 else 1 + intLog2(n quo 2) + +-- here is the function to call + +lupFactor: Matrix field -> Union(List Matrix field,"failed") + +lupFactor m == + not((r := nrows m) = ncols m) => + messagePrint("Matrix must be square")$OUTFORM + "failed" + ilog := intLog2(2) + not(r = 2 ** ilog) => + m := embedMatrix(m,r,(n := 2 ** (ilog + 1))) + l := lupFactorEngine(m,n,n) + [subMatrix(l.1,1,r,1,r),subMatrix(l.2,1,r,1,r), + subMatrix(l.3,1,r,1,r)] + lupFactorEngine(m,r,r) + +-- Example from Aho, et al. + +m : Matrix field := zero(4,4) +for i in 4..1 by -1 repeat m(5-i,i) := i +m + +lupFactor m + +-- Example where the dimension does not start out a power of 2 + +m := [[1,2,3],[2,3,1],[3,1,2]] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/lword.input.pamphlet b/src/input/lword.input.pamphlet new file mode 100644 index 00000000..d117bfc7 --- /dev/null +++ b/src/input/lword.input.pamphlet @@ -0,0 +1,42 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input LWORD.input} +\author{Michel Petitot} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +)cl all + +a:Symbol :='a +b:Symbol :='b +c:Symbol :='c +lword:= LyndonWord(Symbol) +magma := Magma(Symbol) +word := OrderedFreeMonoid(Symbol) +LyndonWordsList1([a,b,c],3)$lword +LyndonWordsList([a,b,c],3)$lword +lw := LyndonWordsList([a,b],5)$lword +w1 : word := lw.4 :: word +w2 : word := lw.5 :: word +factor(a::word)$lword +factor(w1*w2)$lword +factor(w2*w2)$lword +factor(w2*w1)$lword +lyndon?(w1)$lword +lyndon?(w1*w2)$lword +lyndon?(w2*w1)$lword +lyndonIfCan(w1)$lword +lyndonIfCan(w2*w1)$lword +lyndon(w1)$lword +lyndon(w1*w2)$lword +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/macbug.input.pamphlet b/src/input/macbug.input.pamphlet new file mode 100644 index 00000000..80e6514a --- /dev/null +++ b/src/input/macbug.input.pamphlet @@ -0,0 +1,54 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input macbug.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +-- \xtc{ +-- Macros can be parameterized and so can be used for many different +-- kinds of objects. +-- }{ +macro ff(x) == x**2 + 1 +-- } +-- \xtc{ +-- Apply it to a number, a symbol, or an expression. +-- }{ +ff z +-- } +-- \xtc{ +-- Macros can also be nested, but you will get an error message if you +-- run out of space because of an infinite nesting loop. +-- }{ +macro gg(x) == ff(2*x - 2/3) +-- } +-- \xtc{ +-- This new macro is fine as it does not produce a loop. +-- }{ +gg(1/w) +-- } +-- % +-- \xtc{ +-- This however will loop since \spad{gg} is +-- defined in terms of \spad{ff}. +-- % risk not using a free g on next line +-- }{ +macro ff(x) == gg(-x) +-- } +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/macros.input.pamphlet b/src/input/macros.input.pamphlet new file mode 100644 index 00000000..cc9f9d12 --- /dev/null +++ b/src/input/macros.input.pamphlet @@ -0,0 +1,31 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input macros.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- Input for page Macros +)clear all + +macro I == Integer +macro M(R) == Matrix(R) +macro p(n) == x < n +macro q(i,j) == if x < i then i else j +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/magma.input.pamphlet b/src/input/magma.input.pamphlet new file mode 100644 index 00000000..c4ecc934 --- /dev/null +++ b/src/input/magma.input.pamphlet @@ -0,0 +1,42 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input MAGMA.input} +\author{Michel Petitot} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +)cl all + +x:Symbol :='x +y:Symbol :='y +z:Symbol :='z +word := OrderedFreeMonoid(Symbol) +tree := Magma(Symbol) +a:tree := x*x +b:tree := y*y +c:tree := a*b +left c +right c +length c +c::word +a < b +a < c +b < c +first c +rest c +rest rest c +ax:tree := a*x +xa:tree := x*a +xa < ax +lexico(xa,ax) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/mapleok.input.pamphlet b/src/input/mapleok.input.pamphlet new file mode 100644 index 00000000..d6db7823 --- /dev/null +++ b/src/input/mapleok.input.pamphlet @@ -0,0 +1,5972 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input mapleok.input} +\author{Timothy Daly} +\maketitle +\begin{abstract} +A set of test results that fail for Maple was published as a database +on the web by Vladimir Bondarenko. We looked at these equations in +detail, redesigned and rewrote them for Axiom where the equations +could be applied, and ran them thru the Axiom system. These are the +set of results that give answers in Axiom along with a summary of +the tests. +\end{abstract} +\eject +\tableofcontents +\eject +\section{Result} + +I've been working for some time to construct a Computer Algebra +Test Suite (CATS). The idea came about because it is clear that +there is a lack of time and attention on cross-platform testing. +We should have available a range of problems with associated +math theory and verified results that every computer algebra +system can use for testing purposes. To this end I've been +collecting test suites from various computer algebra systems and +running them thru Axiom. The lastest collection is the Maple bug +list posted by Vladimir. + +Of course there is no common syntax and so one of the problems +is that every integral has to be hand-written to match the likely +semantics of the original. This is a time consuming effort. +pFurthermore there is no general mechanism for collecting results +(although I have been looking at automating regression testing +in Axiom) so result collection and summary are also hand operations. +Nevertheless, the process has completed the first phase of testing +and I've attached some summary statistics. Detailed results will +be included with the next release of Axiom. + +For the next phase I've built a special purpose version of Axiom +with instrumentation in all of the integration routines. I plan to +classify each integral and associate it with the code as part of +the literate documentation. This will give us a basis for finding +bugs and corner cases. It will also give us working regression +test cases. + + +\subsection{Breakdown by category} + +There were 4865 integrals tested. Of these + +\begin{itemize} +\item (5 0.10\%) Missing Functions +\item (1206 24.78\%) Undefined Special Functions or untranslated functions +\item (84 1.72\%) Mismatched signatures of existing functions +\item (158 3.25\%) Badly Behaved Integrals +\item (7 0.14\%) Axiom Internal Errors +\item (279 5.73\%) Risch Algorithm Boundary Cases +\item (2331 47.91\%) Failed results +\item (490 10.07\%) Successful Results +\item (305 6.27\%) Indeterminate Results +\end{itemize} + +Of the 4865 integrals the first three cases would not run. That +leaves 3570 tests. Of these there were 3097 (73.38\%) integrals +that had a potential pole in the path of integration making them +rather more difficult to compute. + +We further break down the results. The number in parentheses is +the number of integrals of this class. One observation is that a +large number of these integrals involve the signum function. Axiom +does not have an integrable form of this function. Frankly, I'm not +sure how to integrate functions involving signum. It is hardly a +surprise that Maple gets these wrong. + +On some of the functions I've given example integrals that exhibit +the behavior of their category. + +Axiom has a robust implementation of the Risch algorithm done by +Barry Trager and Manuel Bronstein. Still, there are some corner +cases that are not implemented. We collected these under a +separate category so they will be useful for people who want to +investigate extending the algorithms. It is hardly a surprise that +Maple finds these hard to do. + +These tests have uncovered 3 internal errors involving a total of +6 of the integrals. These will be investigated and fixed in a future +release. + +Testing continues on the results that did not complete. Raising the +maximum time limit to 10 minutes has generated additional results. + + +\subsection{Missing Functions} + +These are apparently bogus function names. + +\begin{itemize} +\item (1) f +\item (1) op +\item (1) product +\item (2) elt +\end{itemize} + +\subsection{Undefined Special Functions or Untranslated Functions} + +Maple has these functios in different forms than Axiom. Some of the special +functions have equivalent Axiom representations but Maple is much stronger +in special functions. Axiom has single-argument forms of some of these +functions but the translations were not clear. + +\begin{itemize} +\item (2) airyAi -- 2 argument form +\item (1) airyBi -- 2 argument form +\item (2) argument +\item (57) atan -- 2 argument form +\item (26) ceil +\item (2) chebyshevT -- with fractional first argument +\item (1) chebyshevU -- with fractional first argument +\item (5) conjugate +\item (8) Chi +\item (78) csgn +\item (19) Dirac +\item (11) Ei +\item (2) EllipticE +\item (9) EllipticK +\item (4) EllipticPi +\item (1) erfc +\item (23) floor +\item (3) frac +\item (30) FresnelC +\item (3) Fresnelf +\item (1) Fresnelg +\item (26) FresnelS +\item (3) GegenbauerC +\item (6) HankelH1 +\item (8) HankelH2 +\item (22) Heaviside +\item (2) hermiteH -- with fractional first argument +\item (1) hypergeom +\item (4) KelvinKei +\item (4) KelvinKer +\item (4) KummerU +\item (3) LambertW +\item (2) legendreP -- having 3 arguments +\item (4) LegendreQ +\item (15) LerchPhi +\item (2) MeijerG +\item (31) polylog +\item (34) Psi +\item (1) Re +\item (1) RootOf +\item (25) round +\item (2) Shi +\item (3) Ssi +\item (669) signum +\item (11) StruveH +\item (10) StruveL +\item (12) trunc +\item (13) Zeta +\end{itemize} + +\subsection{Mismatched Signatures Of Existing Functions} + +Axiom's integration routines return a Union of several types. +In order to use the result in various other operations one branch +of the Union needs to be chosen. I have not done that here so these +are listed as though they were special functions with a missing +signature. + +\begin{itemize} +\item (1) + +\item (7) * +\item (1) / +\item (1) log +\item (73) integrate +\item (1) abs +\end{itemize} + + +\subsection{Badly Behaved Integrals} + +\begin{itemize} +\item (158) integrate: pole in path of integration +\end{itemize} + +\begin{verbatim} +integrate(legendreP(0, z)/(z^2+3*z), z= 0..3,"noPole") +\end{verbatim} + + +\subsection{Axiom Internal Errors} + +\begin{itemize} +\item (1) internal error +\end{itemize} + +\begin{verbatim} + >> Error detected within library code: + (construct (= left 0) (= right 2)) + is not a valid isolation interval for + (+ (+ (- (** ? 4)) (* 2 (** ? 2))) -1) +\end{verbatim} + +\begin{verbatim} +in961:=integrate(log(z-1)*z/(z^2-1)^2, z= 1..%plusInfinity) +\end{verbatim} + + +\begin{itemize} +\item (4) Cannot take first of an empty list +\end{itemize} + +\begin{verbatim} +integrate(sin(z)*csc(z)*(1-1/(%i*z)^(1/2))^(1/2), z= 0..1,"noPole") +\end{verbatim} + + +\begin{itemize} +\item (2) The function * with signature hashcode is missing from domain + Polynomial(OrderedCompletion (Integer)) +\end{itemize} + +\begin{verbatim} +integrate(a^z, z= 0..I*%plusInfinity) +integrate((1*z-3)/(2+(0*z-4)^2), z= %minusInfinity..1+I*%plusInfinity) +\end{verbatim} + + +\subsection{(279) Risch Algorithm Boundary Cases} + +\begin{itemize} +\item (3) PFO::possibleOrder: more than 1 algebraic constant +\end{itemize} + +\begin{verbatim} +integrate(tan(z)/sqrt(sin(z+%pi/4)), z= 0..1,"noPole") +\end{verbatim} + + +\begin{itemize} +\item (1) Not integrable (provided residues have no relations) +\end{itemize} + +\begin{verbatim} +integrate(((z^3-1)/(1+z))^(1/2)/z^2, z= 1..%plusInfinity,"noPole") +\end{verbatim} + + +\begin{itemize} +\item (35) integrate: implementation incomplete (non-algebraic residues) +\end{itemize} + +\begin{verbatim} +integrate(-(1-(I*z)^(1/2)/(1-I*z))^(1/2), z= -1..1,"noPole") +\end{verbatim} + + +\begin{itemize} +\item (177) integrate: implementation incomplete (constant residues) +\end{itemize} + +\begin{verbatim} +integrate(sin(z)^2*(1+z^(1/2))^(1/2), z= 0..1,"noPole") +\end{verbatim} + + +\begin{itemize} +\item (22) Imaginary part is nonzero. Cannot retract. +\end{itemize} + +\begin{verbatim} +integrate(sqrt(sin(2*z))/sqrt(cos(2*z)),z) +\end{verbatim} + + +\begin{itemize} +\item (29) Function not supported by Risch d.e. +\end{itemize} + +\begin{verbatim} +integrate(exp(-I*(I*z)^(1/2))/abs(z)^2, z= 0..1,"noPole") +\end{verbatim} + + +\begin{itemize} +\item (12) integrate: implementation incomplete (residue poly has multiple + non-linear factors) +\end{itemize} + +\begin{verbatim} +integrate(tanh(z)^(4/3), z = -1..1,"noPole") +\end{verbatim} + + +\begin{itemize} +\item (0) integralBasis: possible wild ramification +\end{itemize} + + +\subsection{(2331) Failed Results} + +\begin{itemize} +\item (2033) "failed" +\end{itemize} + +\begin{verbatim} +integrate(log(2-z^2)/(1-z^3), z= 0..1) +\end{verbatim} + + +\begin{itemize} +\item (56) Sorry - cannot handle that integrand yet +\end{itemize} + +\begin{verbatim} +integrate(erf((I*z)^(1/3)), z= -1..1,"noPole") +\end{verbatim} + + +\begin{itemize} +\item (242) failed - cannot handle that integrand +\end{itemize} + +\begin{verbatim} +integrate(sin(1/z)+(1-1/z^4)^(1/2), z= 0..%pi,"noPole") +\end{verbatim} + +\subsection{(490) Successful Results} + +\subsection{(305) Indeterminate Results} + +There were some integrals that Axiom failed to complete given +the bounds on the allowed CPU time (about 10 minutes of execution). +Further effort will be applied to try to resolve these cases. + +It may be that some portion of the integration algorithm either has +an infinite loop or has non-polynomial time behavior. We will attempt +to investigate both possibilities. + +Tim + +<<*>>= +)set mes auto off +)set break resume +in1012a:=integrate(log(abs(z^3-1))/(1+z)^2, z= 0..%plusInfinity,"noPole") +-- +-+ +-- %pi\|3 +-- (4) ------- +-- 3 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in101a:=integrate((sqrt(z)^I)^I, z= 0..1,"noPole") +-- 2 +-- (2) ------ +-- 2 +-- I + 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + + +in106a:=integrate(((I+z)^I)^I, z= 0..1,"noPole") +-- +-- 2 2 +-- I log(I + 1) I log(I) +-- (I + 1)%e - I %e +-- (3) ------------------------------------ +-- 2 +-- I + 1 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) +-- + +in108a:=integrate(sqrt((1 + cos(z))*(1 + sin(z))),z=0..%plusInfinity,"noPole") +-- +-- + infinity +-- + +in119a:=integrate(log(1/z+sqrt(1+1/z)), z=0..1,"noPole") +-- +-+ +-+ +-+ +-- 3log(2\|2 + 3) + 2log(\|2 + 1) - 3log(- 2\|2 + 3) +-- + +-- +-+ +-+ +-+ +-- +-+ (- 32\|2 - 30)\|5 + 48\|2 + 102 +-+ +-- \|5 log(----------------------------------) - log(4)\|5 +-- +-+ +-- 2\|2 + 3 +-- / +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in120a:=integrate(1/(1+1/z^6), z=0..%plusInfinity) +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) +-- + +in1029a:=integrate((I*z/(I*z+1))^(1/2), z= 0..%plusInfinity,"noPole") +-- +-- + infinity + +in1030a:=integrate(I*z/(I*z+1), z= 0..%plusInfinity,"noPole") +-- +-- + infinity + +in1066a:=integrate(acoth(z)*real(z), z= 0..1,"noPole") +-- 1 +-- (6) - +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1067a:=integrate(acoth(z)*z^(1/2), z= 0..1,"noPole") +-- - 2log(2) - %pi + 8 +-- (8) ------------------- +-- 6 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1076a:=integrate(sin(z)*(1-cos(z)/(1-sin(z)^2)^(1/2))^2, z= 0..1,"noPole") +-- - 4cos(1) + 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + + +in1084a:=integrate(atan(sin(z))+atan(1/sin(z)), z= 0..1,"noPole") +-- %pi +-- - --- +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1107a:=integrate(-log(z)/(-1+z^(1/2))^3, z= 0..1/2*I,"noPole") +-- +-- +-+ +-- +-+ +-+ \|I +-- ((2I + 12)\|I + (- 6I - 4)\|2 )log(----) +-- +-+ +-- \|2 +-- + +-- +-+ +-+ +-- +-+ +-+ - 4\|I + (I + 2)\|2 +-- ((- I - 6)\|I + (3I + 2)\|2 )log(---------------------) +-- +-+ +-- 2\|2 +-- + +-- 2 2 +-- I +-+ +-+ I +-+ +-- (- 3log(--) + 2I + 4)\|I + (I + 1)\|2 log(--) - 4I\|2 +-- 4 4 +-- / +-- +-+ +-+ +-- (I + 6)\|I + (- 3I - 2)\|2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1108a:=integrate(log(z)/(-1+z^(1/2))^3, z= 0..1/2*I,"noPole") +-- +-- +-+ +-- +-+ +-+ \|I +-- ((- 2I - 12)\|I + (6I + 4)\|2 )log(----) +-- +-+ +-- \|2 +-- + +-- +-+ +-+ +-- +-+ +-+ - 4\|I + (I + 2)\|2 +-- ((I + 6)\|I + (- 3I - 2)\|2 )log(---------------------) +-- +-+ +-- 2\|2 +-- + +-- 2 2 +-- I +-+ +-+ I +-+ +-- (3log(--) - 2I - 4)\|I + (- I - 1)\|2 log(--) + 4I\|2 +-- 4 4 +-- / +-- +-+ +-+ +-- (I + 6)\|I + (- 3I - 2)\|2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1112a:=integrate((1-1/z)^(1/2), z= %pi..2*%pi,"noPole") +-- +-- +--------+ +-------+ +-- |2%pi - 1 |%pi - 1 +-- - 2log( |-------- + 1) + 2log( |------- + 1) +-- \| 2%pi \| %pi +-- + +-- +-------+ +--------+ +-- |%pi - 1 |2%pi - 1 +-- - 2%pi |------- + 2%pi - 1 - 4%pi |-------- + 4%pi - 1 +-- \| %pi \| 2%pi +-- - log(---------------------------) + log(----------------------------) +-- %pi 2%pi +-- + +-- +--------+ +-------+ +-- |2%pi - 1 |%pi - 1 +-- 8%pi |-------- - 4%pi |------- +-- \| 2%pi \| %pi +-- / +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + + +in1114a:=integrate(-z-(1/2*2^(1/2)+1/2*I*2^(1/2))*z^(1/2), z= 1..%plusInfinity,"noPole") +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +------------------------------------------------------ +in1118:=integrate(acot(z), z= 0..1/2*I) +-- +-- 2 +-- I + 4 4I +-- 2log(------) + I atan(------) +-- 4 2 +-- I - 4 +-- ----------------------------- +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +------------------------------------------------------ +in1120a:=integrate((z^2)^(1/2), z= 1..2,"noPole") +-- +-- 3 +-- (29) - +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +------------------------------------------------------ +in1130a:=integrate(3^log(z), z= -I..I,"noPole") +-- +-- +-- log(3)log(I) log(3)log(- I) +-- I %e + I %e +-- (45) ------------------------------------- +-- log(3) + 1 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) +-- + +------------------------------------------------------ +in1149:=integrate(imag(z)*z^(1/6), z= -I..I) +-- +-- (49) 0 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1149:=integrate(imag(z)*z^(1/6), z= -%i..%i) +-- +-- (64) 0 +-- Type: Union(f1: OrderedCompletion Expression Complex Integer,...) + +in1150a:=integrate(1/z^(1/2), z= -I..I,"noPole") +-- +-- +-+ +---+ +-- (51) 2\|I - 2\|- I +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1150c:=integrate(1/z^(1/2), z= -%i..%i,"noPole") +-- +-- +--+ +----+ +-- (66) 2\|%i - 2\|- %i +-- Type: Union(f1: OrderedCompletion Expression Complex Integer,...) + +in1161:=integrate(hermiteH(1, z), z= -I..I) +-- +-- (76) 0 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) +-- + +in1161a:=integrate(hermiteH(1, z), z= -%i..%i) +-- +-- +-- (77) 0 +-- Type: Union(f1: OrderedCompletion Expression Complex Integer,...) + +in1160:=integrate(HermiteH(2, z), z= -%i..%i) +-- 20%i +-- - ---- +-- 3 +-- Type: Union(f1: OrderedCompletion Expression Complex Integer,...) + +in1162:=integrate(laguerreL(1, z), z= -I..I) +-- +-- (78) 2I +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1162:=integrate(laguerreL(1, z), z= -%i..%i) +-- +-- (79) 2%i +-- Type: Union(f1: OrderedCompletion Expression Complex Integer,...) + +in1163:=integrate(legendreP(3, z), z= -I..I) +-- +-- (80) 0 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1163:=integrate(legendreP(3, z), z= -%i..%i) +-- +-- (81) 0 +-- Type: Union(f1: OrderedCompletion Expression Complex Integer,...) + + +in1164:=integrate(legendreP(2, z), z= -I..I) +-- +-- 3 +-- (82) I - I +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1164:=integrate(legendreP(2, z), z= -%i..%i) +-- +-- (83) - 2%i +-- Type: Union(f1: OrderedCompletion Expression Complex Integer,...) +-- + +in1167a:=integrate((z^2)^(1/6), z= -3..-1,"noPole") +-- +-- 3+---+ 3+---+ +-- - 3\|- 1 + 9\|- 3 +-- (85) ------------------- +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1180:=integrate(z^(1/3)/(z^2+1), z= 0..10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) +-- +-- potentialPole +-- +in1180:=integrate(z^(1/3)/(z^2+1), z= 0..10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,"noPole") +-- +-- 3 +-- * +-- log +-- 999999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99999999999999999999999999999999999999999999999999999999999999_ +-- 99998000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 000000000000000000000000000 +-- * +-- 3+--+2 +-- \|10 +-- + +-- 300000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000000_ +-- 000000000000000000000000000000000000000000000 +-- * +-- 3+--+ +-- \|10 +-- + +-- - +-- 19999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999999999_ +-- 9999999999999999999999999999999999999999999999999999999 +-- + +-- - +-- 12 +-- * +-- log +-- 100000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000_ +-- 00000000000000000000000000000000000000000000000000000000000_ +-- 00000000000 +-- * +-- 3+--+2 +-- \|10 +-- + +-- 1 +-- + +-- +-+ +-- 12\|3 +-- * +-- atan +-- 2000000000000000000000000000000000000000000000000000000000000_ +-- 000000000000000000000000000000000000000000000000000000000000_ +-- 000000000000000000000000000000000000000000000000000000000000_ +-- 000000000000000000000000000000000000000000000000000000000000_ +-- 000000000000000000000000000000000000000000000000000000000000_ +-- 000000000000000000000000000000000000000000000000000000000000_ +-- 000000000000000000000000000000000000000000000000000000000000_ +-- 000000000000000000000000000000000000000000000000000000000000_ +-- 000000000000000000000000000000000000000000000000000000000000_ +-- 000000000000000000000000000000000000000000000000000000000000_ +-- 000000000000000000000000000000000000000000000000000000000000_ +-- 000000000000000000000000000000000000000000000000000000000000_ +-- 000000000000000000000000000000000000000000000000000000000000_ +-- 000000000000000000000000000000000000000000000000000000000000_ +-- 000000000000000000000000000000000000000000000000000000000000_ +-- 000000000000000000000000000000000000000000000000000000000000_ +-- 000000000000000000000000000000000000000000000000000000 +-- * +-- 3+--+2 +-- \|10 +-- + +-- - 1 +-- / +-- +-+ +-- \|3 +-- + +-- +-+ +-- 2%pi\|3 +-- / +-- 24 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1183a:=integrate(csc(z), z= 1-I..1+I,"noPole") +-- +-- 2 2 +-- sin(I + 1) sin(I - 1) +-- log(-----------------------------) - log(-----------------------------) +-- 2 2 +-- cos(I + 1) + 2cos(I + 1) + 1 cos(I - 1) + 2cos(I - 1) + 1 +-- ----------------------------------------------------------------------- +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1185a:=integrate((z+1)^(1/2)/(1+z^4), z= 0..1,"noPole") +-- +-- ROOT +-- +-----------------------------------------+ +-- | 2 2 +-+ +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 - 4\|2 %%CZ1 +-- + +-- +-+ +-- - 4\|2 %%CZ0 +-- / +-- +-+ +-- 2\|2 +-- * +-- log +-- +-+ +-+ +-+ +-+ +-- ((24576\|2 %%CZ0 - 768\|2 )%%CZ1 - 768\|2 %%CZ0 - 48\|2 ) +-- * +-- +-----------------------------------------+ +-- | 2 2 +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- 2 2 +-- (196608%%CZ0 - 6144)%%CZ1 + (196608%%CZ0 + 384)%%CZ1 +-- + +-- 2 +-- - 6144%%CZ0 + 384%%CZ0 + 48 +-- * +-- ROOT +-- +-----------------------------------------+ +-- | 2 2 +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- +-+ +-+ +-- - 4\|2 %%CZ1 - 4\|2 %%CZ0 +-- / +-- +-+ +-- 2\|2 +-- + +-- ((- 3072%%CZ0 + 384)%%CZ1 + 384%%CZ0 - 12) +-- * +-- +-----------------------------------------+ +-- | 2 2 +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- +-+ +-+ 2 +-- (- 12288\|2 %%CZ0 + 1536\|2 )%%CZ1 +-- + +-- +-+ 2 +-+ +-+ 2 +-+ +-- (- 12288\|2 %%CZ0 + 48\|2 )%%CZ1 + 1536\|2 %%CZ0 + 48\|2 %%CZ0 +-- + +-- +-+ +-- 60\|2 +-- / +-- +-+ +-- \|2 +-- + +-- - +-- ROOT +-- +-----------------------------------------+ +-- | 2 2 +-+ +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 - 4\|2 %%CZ1 +-- + +-- +-+ +-- - 4\|2 %%CZ0 +-- / +-- +-+ +-- 2\|2 +-- * +-- log +-- ((24576%%CZ0 - 768)%%CZ1 - 768%%CZ0 - 48) +-- * +-- +-----------------------------------------+ +-- | 2 2 +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- +-+ +-+ 2 +-- (98304\|2 %%CZ0 - 3072\|2 )%%CZ1 +-- + +-- +-+ 2 +-+ +-+ 2 +-- (98304\|2 %%CZ0 + 192\|2 )%%CZ1 - 3072\|2 %%CZ0 +-- + +-- +-+ +-+ +-- 192\|2 %%CZ0 + 24\|2 +-- * +-- ROOT +-- +-----------------------------------------+ +-- | 2 2 +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- +-+ +-+ +-- - 4\|2 %%CZ1 - 4\|2 %%CZ0 +-- / +-- +-+ +-- 2\|2 +-- + +-- ((- 3072%%CZ0 + 384)%%CZ1 + 384%%CZ0 - 12) +-- * +-- +-----------------------------------------+ +-- | 2 2 +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- +-+ +-+ 2 +-- (- 12288\|2 %%CZ0 + 1536\|2 )%%CZ1 +-- + +-- +-+ 2 +-+ +-+ 2 +-- (- 12288\|2 %%CZ0 + 48\|2 )%%CZ1 + 1536\|2 %%CZ0 +-- + +-- +-+ +-+ +-- 48\|2 %%CZ0 + 42\|2 +-- / +-- +-+ +-- \|2 +-- + +-- - +-- ROOT +-- +-----------------------------------------+ +-- | 2 2 +-+ +-- - \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 - 4\|2 %%CZ1 +-- + +-- +-+ +-- - 4\|2 %%CZ0 +-- / +-- +-+ +-- 2\|2 +-- * +-- log +-- +-+ +-+ +-+ +-- (24576\|2 %%CZ0 - 768\|2 )%%CZ1 - 768\|2 %%CZ0 +-- + +-- +-+ +-- - 48\|2 +-- * +-- +-----------------------------------------+ +-- | 2 2 +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- 2 +-- (- 196608%%CZ0 + 6144)%%CZ1 +-- + +-- 2 2 +-- (- 196608%%CZ0 - 384)%%CZ1 + 6144%%CZ0 - 384%%CZ0 - 48 +-- * +-- ROOT +-- +-----------------------------------------+ +-- | 2 2 +-- - \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- +-+ +-+ +-- - 4\|2 %%CZ1 - 4\|2 %%CZ0 +-- / +-- +-+ +-- 2\|2 +-- + +-- ((3072%%CZ0 - 384)%%CZ1 - 384%%CZ0 + 12) +-- * +-- +-----------------------------------------+ +-- | 2 2 +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- +-+ +-+ 2 +-- (- 12288\|2 %%CZ0 + 1536\|2 )%%CZ1 +-- + +-- +-+ 2 +-+ +-+ 2 +-- (- 12288\|2 %%CZ0 + 48\|2 )%%CZ1 + 1536\|2 %%CZ0 +-- + +-- +-+ +-+ +-- 48\|2 %%CZ0 + 60\|2 +-- / +-- +-+ +-- \|2 +-- + +-- ROOT +-- +-----------------------------------------+ +-- | 2 2 +-+ +-- - \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 - 4\|2 %%CZ1 +-- + +-- +-+ +-- - 4\|2 %%CZ0 +-- / +-- +-+ +-- 2\|2 +-- * +-- log +-- ((24576%%CZ0 - 768)%%CZ1 - 768%%CZ0 - 48) +-- * +-- +-----------------------------------------+ +-- | 2 2 +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- +-+ +-+ 2 +-- (- 98304\|2 %%CZ0 + 3072\|2 )%%CZ1 +-- + +-- +-+ 2 +-+ +-+ 2 +-- (- 98304\|2 %%CZ0 - 192\|2 )%%CZ1 + 3072\|2 %%CZ0 +-- + +-- +-+ +-+ +-- - 192\|2 %%CZ0 - 24\|2 +-- * +-- ROOT +-- +-----------------------------------------+ +-- | 2 2 +-- - \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- +-+ +-+ +-- - 4\|2 %%CZ1 - 4\|2 %%CZ0 +-- / +-- +-+ +-- 2\|2 +-- + +-- ((3072%%CZ0 - 384)%%CZ1 - 384%%CZ0 + 12) +-- * +-- +-----------------------------------------+ +-- | 2 2 +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- +-+ +-+ 2 +-- (- 12288\|2 %%CZ0 + 1536\|2 )%%CZ1 +-- + +-- +-+ 2 +-+ +-+ 2 +-+ +-- (- 12288\|2 %%CZ0 + 48\|2 )%%CZ1 + 1536\|2 %%CZ0 + 48\|2 %%CZ0 +-- + +-- +-+ +-- 42\|2 +-- / +-- +-+ +-- \|2 +-- + +-- - +-- ROOT +-- +-----------------------------------------+ +-- | 2 2 +-+ +-- - \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 - 4\|2 %%CZ1 +-- + +-- +-+ +-- - 4\|2 %%CZ0 +-- / +-- +-+ +-- 2\|2 +-- * +-- log +-- ((- 24576%%CZ0 + 768)%%CZ1 + 768%%CZ0 + 48) +-- * +-- +-----------------------------------------+ +-- | 2 2 +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- +-+ +-+ 2 +-- (98304\|2 %%CZ0 - 3072\|2 )%%CZ1 +-- + +-- +-+ 2 +-+ +-+ 2 +-- (98304\|2 %%CZ0 + 192\|2 )%%CZ1 - 3072\|2 %%CZ0 +-- + +-- +-+ +-+ +-- 192\|2 %%CZ0 + 24\|2 +-- * +-- ROOT +-- +-----------------------------------------+ +-- | 2 2 +-- - \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- +-+ +-+ +-- - 4\|2 %%CZ1 - 4\|2 %%CZ0 +-- / +-- +-+ +-- 2\|2 +-- + +-- ((3072%%CZ0 - 384)%%CZ1 - 384%%CZ0 + 12) +-- * +-- +-----------------------------------------+ +-- | 2 2 +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- +-+ +-+ 2 +-- (- 12288\|2 %%CZ0 + 1536\|2 )%%CZ1 +-- + +-- +-+ 2 +-+ +-+ 2 +-- (- 12288\|2 %%CZ0 + 48\|2 )%%CZ1 + 1536\|2 %%CZ0 +-- + +-- +-+ +-+ +-- 48\|2 %%CZ0 + 42\|2 +-- / +-- +-+ +-- \|2 +-- + +-- ROOT +-- +-----------------------------------------+ +-- | 2 2 +-+ +-- - \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 - 4\|2 %%CZ1 +-- + +-- +-+ +-- - 4\|2 %%CZ0 +-- / +-- +-+ +-- 2\|2 +-- * +-- log +-- +-+ +-+ +-+ +-- (- 24576\|2 %%CZ0 + 768\|2 )%%CZ1 + 768\|2 %%CZ0 +-- + +-- +-+ +-- 48\|2 +-- * +-- +-----------------------------------------+ +-- | 2 2 +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- 2 2 +-- (196608%%CZ0 - 6144)%%CZ1 + (196608%%CZ0 + 384)%%CZ1 +-- + +-- 2 +-- - 6144%%CZ0 + 384%%CZ0 + 48 +-- * +-- ROOT +-- +-----------------------------------------+ +-- | 2 2 +-- - \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- +-+ +-+ +-- - 4\|2 %%CZ1 - 4\|2 %%CZ0 +-- / +-- +-+ +-- 2\|2 +-- + +-- ((3072%%CZ0 - 384)%%CZ1 - 384%%CZ0 + 12) +-- * +-- +-----------------------------------------+ +-- | 2 2 +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- +-+ +-+ 2 +-- (- 12288\|2 %%CZ0 + 1536\|2 )%%CZ1 +-- + +-- +-+ 2 +-+ +-+ 2 +-+ +-- (- 12288\|2 %%CZ0 + 48\|2 )%%CZ1 + 1536\|2 %%CZ0 + 48\|2 %%CZ0 +-- + +-- +-+ +-- 60\|2 +-- / +-- +-+ +-- \|2 +-- + +-- ROOT +-- +-----------------------------------------+ +-- | 2 2 +-+ +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 - 4\|2 %%CZ1 +-- + +-- +-+ +-- - 4\|2 %%CZ0 +-- / +-- +-+ +-- 2\|2 +-- * +-- log +-- ((- 24576%%CZ0 + 768)%%CZ1 + 768%%CZ0 + 48) +-- * +-- +-----------------------------------------+ +-- | 2 2 +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- +-+ +-+ 2 +-- (- 98304\|2 %%CZ0 + 3072\|2 )%%CZ1 +-- + +-- +-+ 2 +-+ +-+ 2 +-- (- 98304\|2 %%CZ0 - 192\|2 )%%CZ1 + 3072\|2 %%CZ0 +-- + +-- +-+ +-+ +-- - 192\|2 %%CZ0 - 24\|2 +-- * +-- ROOT +-- +-----------------------------------------+ +-- | 2 2 +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- +-+ +-+ +-- - 4\|2 %%CZ1 - 4\|2 %%CZ0 +-- / +-- +-+ +-- 2\|2 +-- + +-- ((- 3072%%CZ0 + 384)%%CZ1 + 384%%CZ0 - 12) +-- * +-- +-----------------------------------------+ +-- | 2 2 +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- +-+ +-+ 2 +-- (- 12288\|2 %%CZ0 + 1536\|2 )%%CZ1 +-- + +-- +-+ 2 +-+ +-+ 2 +-+ +-- (- 12288\|2 %%CZ0 + 48\|2 )%%CZ1 + 1536\|2 %%CZ0 + 48\|2 %%CZ0 +-- + +-- +-+ +-- 42\|2 +-- / +-- +-+ +-- \|2 +-- + +-- - +-- ROOT +-- +-----------------------------------------+ +-- | 2 2 +-+ +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 - 4\|2 %%CZ1 +-- + +-- +-+ +-- - 4\|2 %%CZ0 +-- / +-- +-+ +-- 2\|2 +-- * +-- log +-- +-+ +-+ +-+ +-- (- 24576\|2 %%CZ0 + 768\|2 )%%CZ1 + 768\|2 %%CZ0 +-- + +-- +-+ +-- 48\|2 +-- * +-- +-----------------------------------------+ +-- | 2 2 +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- 2 +-- (- 196608%%CZ0 + 6144)%%CZ1 +-- + +-- 2 2 +-- (- 196608%%CZ0 - 384)%%CZ1 + 6144%%CZ0 - 384%%CZ0 - 48 +-- * +-- ROOT +-- +-----------------------------------------+ +-- | 2 2 +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- +-+ +-+ +-- - 4\|2 %%CZ1 - 4\|2 %%CZ0 +-- / +-- +-+ +-- 2\|2 +-- + +-- ((- 3072%%CZ0 + 384)%%CZ1 + 384%%CZ0 - 12) +-- * +-- +-----------------------------------------+ +-- | 2 2 +-- \|- 96%%CZ1 - 64%%CZ0 %%CZ1 - 96%%CZ0 - 1 +-- + +-- +-+ +-+ 2 +-- (- 12288\|2 %%CZ0 + 1536\|2 )%%CZ1 +-- + +-- +-+ 2 +-+ +-+ 2 +-- (- 12288\|2 %%CZ0 + 48\|2 )%%CZ1 + 1536\|2 %%CZ0 +-- + +-- +-+ +-+ +-- 48\|2 %%CZ0 + 60\|2 +-- / +-- +-+ +-- \|2 +-- + +-- - +-- +------+ +-- \|4%%CZ1 +-- * +-- log +-- +-+ +-+ 2 +-- (98304\|2 %%CZ0 - 3072\|2 )%%CZ1 +-- + +-- +-+ 2 +-+ +-+ 3 +-- (98304\|2 %%CZ0 + 192\|2 )%%CZ1 + 98304\|2 %%CZ0 +-- + +-- +-+ +-+ +-- 768\|2 %%CZ0 - 36\|2 +-- * +-- +------+ +-- \|4%%CZ1 +-- + +-- 2 2 +-- (12288%%CZ0 - 1536)%%CZ1 + (12288%%CZ0 - 48)%%CZ1 +-- + +-- 3 +-- 12288%%CZ0 + 96%%CZ0 + 18 +-- + +-- +------+ +-- \|4%%CZ1 +-- * +-- log +-- 2 2 +-- (98304%%CZ0 - 3072)%%CZ1 + (98304%%CZ0 + 192)%%CZ1 +-- + +-- 3 +-- 98304%%CZ0 + 768%%CZ0 - 36 +-- * +-- +------+ +-- \|4%%CZ1 +-- + +-- 2 2 3 +-- (12288%%CZ0 - 1536)%%CZ1 + (12288%%CZ0 - 48)%%CZ1 + 12288%%CZ0 +-- + +-- 96%%CZ0 + 9 +-- + +-- - +-- +------+ +-- \|4%%CZ1 +-- * +-- log +-- 2 2 +-- (- 98304%%CZ0 + 3072)%%CZ1 + (- 98304%%CZ0 - 192)%%CZ1 +-- + +-- 3 +-- - 98304%%CZ0 - 768%%CZ0 + 36 +-- * +-- +------+ +-- \|4%%CZ1 +-- + +-- 2 2 +-- (12288%%CZ0 - 1536)%%CZ1 + (12288%%CZ0 - 48)%%CZ1 +-- + +-- 3 +-- 12288%%CZ0 + 96%%CZ0 + 9 +-- + +-- +------+ +-- \|4%%CZ1 +-- * +-- log +-- +-+ +-+ 2 +-- (- 98304\|2 %%CZ0 + 3072\|2 )%%CZ1 +-- + +-- +-+ 2 +-+ +-+ 3 +-- (- 98304\|2 %%CZ0 - 192\|2 )%%CZ1 - 98304\|2 %%CZ0 +-- + +-- +-+ +-+ +-- - 768\|2 %%CZ0 + 36\|2 +-- * +-- +------+ +-- \|4%%CZ1 +-- + +-- 2 2 3 +-- (12288%%CZ0 - 1536)%%CZ1 + (12288%%CZ0 - 48)%%CZ1 + 12288%%CZ0 +-- + +-- 96%%CZ0 + 18 +-- + +-- +------+ +-- \|4%%CZ0 +-- * +-- log +-- +-+ 3 +-+ 2 +-+ +-+ +-- (98304\|2 %%CZ0 + 3072\|2 %%CZ0 + 576\|2 %%CZ0 - 60\|2 ) +-- * +-- +------+ +-- \|4%%CZ0 +-- + +-- 3 2 +-- - 12288%%CZ0 - 1536%%CZ0 - 144%%CZ0 + 30 +-- + +-- - +-- +------+ +-- \|4%%CZ0 +-- * +-- log +-- 3 2 +------+ +-- (98304%%CZ0 + 3072%%CZ0 + 576%%CZ0 - 60)\|4%%CZ0 +-- + +-- 3 2 +-- - 12288%%CZ0 - 1536%%CZ0 - 144%%CZ0 + 21 +-- + +-- +------+ +-- \|4%%CZ0 +-- * +-- log +-- 3 2 +------+ +-- (- 98304%%CZ0 - 3072%%CZ0 - 576%%CZ0 + 60)\|4%%CZ0 +-- + +-- 3 2 +-- - 12288%%CZ0 - 1536%%CZ0 - 144%%CZ0 + 21 +-- + +-- - +-- +------+ +-- \|4%%CZ0 +-- * +-- log +-- +-+ 3 +-+ 2 +-+ +-+ +-- (- 98304\|2 %%CZ0 - 3072\|2 %%CZ0 - 576\|2 %%CZ0 + 60\|2 ) +-- * +-- +------+ +-- \|4%%CZ0 +-- + +-- 3 2 +-- - 12288%%CZ0 - 1536%%CZ0 - 144%%CZ0 + 30 +-- / +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) +-- +-- + +in1186a:=integrate((z^2+z)^(1/2)/(1+z^2)^2, z= 0..1,"noPole") +-- +-- (105) +-- +-+ 4+-+ %pi +-- (17\|2 - 24)\|2 cos(---) +-- 8 +-- * +-- log +-- %pi 4 +-+4+-+3 %pi 3 +-- 2sin(---) + 2\|2 \|2 sin(---) +-- 8 8 +-- + +-- %pi 2 +-+4+-+3 %pi 4+-+2 %pi 2 +-- (4cos(---) - 2\|2 \|2 cos(---) + 4\|2 )sin(---) +-- 8 8 8 +-- + +-- +-+4+-+3 %pi 2 4+-+2 %pi +-+4+-+ %pi +-- (2\|2 \|2 cos(---) - 4\|2 cos(---) + 2\|2 \|2 )sin(---) +-- 8 8 8 +-- + +-- %pi 4 +-+4+-+3 %pi 3 4+-+2 %pi 2 +-- 2cos(---) - 2\|2 \|2 cos(---) + 4\|2 cos(---) +-- 8 8 8 +-- + +-- +-+4+-+ %pi +-- - 2\|2 \|2 cos(---) + 1 +-- 8 +-- + +-- +-+ 4+-+ %pi +-- (- 17\|2 + 24)\|2 cos(---) +-- 8 +-- * +-- log +-- %pi 4 4+-+3 %pi 3 +-- 2sin(---) + 4\|2 sin(---) +-- 8 8 +-- + +-- %pi 2 +-+ 4+-+3 %pi +-+ 4+-+2 +-- (4cos(---) + (- 4\|2 + 4)\|2 cos(---) + (- 4\|2 + 12)\|2 ) +-- 8 8 +-- * +-- %pi 2 +-- sin(---) +-- 8 +-- + +-- 4+-+3 %pi 2 +-+ 4+-+2 %pi +-- 4\|2 cos(---) + (- 8\|2 + 8)\|2 cos(---) +-- 8 8 +-- + +-- +-+ 4+-+ +-- (- 8\|2 + 16)\|2 +-- * +-- %pi +-- sin(---) +-- 8 +-- + +-- %pi 4 +-+ 4+-+3 %pi 3 +-- 2cos(---) + (- 4\|2 + 4)\|2 cos(---) +-- 8 8 +-- + +-- +-+ 4+-+2 %pi 2 +-+ 4+-+ %pi +-- (- 12\|2 + 20)\|2 cos(---) + (- 24\|2 + 32)\|2 cos(---) +-- 8 8 +-- + +-- +-+ +-- - 16\|2 + 24 +-- + +-- +-+ 4+-+ %pi +-- (17\|2 - 24)\|2 cos(---) +-- 8 +-- * +-- log +-- %pi 4 4+-+3 %pi 3 +-- 2sin(---) - 4\|2 sin(---) +-- 8 8 +-- + +-- %pi 2 +-+ 4+-+3 %pi +-+ 4+-+2 +-- (4cos(---) + (4\|2 - 4)\|2 cos(---) + (- 4\|2 + 12)\|2 ) +-- 8 8 +-- * +-- %pi 2 +-- sin(---) +-- 8 +-- + +-- 4+-+3 %pi 2 +-+ 4+-+2 %pi +-- - 4\|2 cos(---) + (- 8\|2 + 8)\|2 cos(---) +-- 8 8 +-- + +-- +-+ 4+-+ +-- (8\|2 - 16)\|2 +-- * +-- %pi +-- sin(---) +-- 8 +-- + +-- %pi 4 +-+ 4+-+3 %pi 3 +-- 2cos(---) + (4\|2 - 4)\|2 cos(---) +-- 8 8 +-- + +-- +-+ 4+-+2 %pi 2 +-+ 4+-+ %pi +-+ +-- (- 12\|2 + 20)\|2 cos(---) + (24\|2 - 32)\|2 cos(---) - 16\|2 +-- 8 8 +-- + +-- 24 +-- + +-- +-+ 4+-+ %pi +-- (- 17\|2 + 24)\|2 cos(---) +-- 8 +-- * +-- log +-- %pi 4 +-+4+-+3 %pi 3 +-- 2sin(---) - 2\|2 \|2 sin(---) +-- 8 8 +-- + +-- %pi 2 +-+4+-+3 %pi 4+-+2 %pi 2 +-- (4cos(---) + 2\|2 \|2 cos(---) + 4\|2 )sin(---) +-- 8 8 8 +-- + +-- +-+4+-+3 %pi 2 4+-+2 %pi +-+4+-+ %pi +-- (- 2\|2 \|2 cos(---) - 4\|2 cos(---) - 2\|2 \|2 )sin(---) +-- 8 8 8 +-- + +-- %pi 4 +-+4+-+3 %pi 3 4+-+2 %pi 2 +-- 2cos(---) + 2\|2 \|2 cos(---) + 4\|2 cos(---) +-- 8 8 8 +-- + +-- +-+4+-+ %pi +-- 2\|2 \|2 cos(---) + 1 +-- 8 +-- + +-- 4+-+ %pi 4+-+ %pi +-+ +-- \|2 sin(---) - \|2 cos(---) + \|2 +-- +-+ 4+-+ %pi 8 8 +-- (68\|2 - 96)\|2 sin(---)atan(--------------------------------------) +-- 8 4+-+ %pi 4+-+ %pi +-+ +-- \|2 sin(---) + \|2 cos(---) - \|2 + 2 +-- 8 8 +-- + +-- 4+-+ %pi 4+-+ %pi +-+ +-- \|2 sin(---) - \|2 cos(---) + \|2 +-- +-+ 4+-+ %pi 8 8 +-- (- 68\|2 + 96)\|2 sin(---)atan(----------------------------------) +-- 8 4+-+ %pi 4+-+ %pi +-- \|2 sin(---) + \|2 cos(---) +-- 8 8 +-- + +-- 4+-+ %pi 4+-+ %pi +-+ +-- \|2 sin(---) - \|2 cos(---) - \|2 +-- +-+ 4+-+ %pi 8 8 +-- (68\|2 - 96)\|2 sin(---)atan(----------------------------------) +-- 8 4+-+ %pi 4+-+ %pi +-- \|2 sin(---) + \|2 cos(---) +-- 8 8 +-- + +-- 4+-+ %pi 4+-+ %pi +-+ +-- \|2 sin(---) - \|2 cos(---) - \|2 +-- +-+ 4+-+ %pi 8 8 +-- (- 68\|2 + 96)\|2 sin(---)atan(--------------------------------------) +-- 8 4+-+ %pi 4+-+ %pi +-+ +-- \|2 sin(---) + \|2 cos(---) + \|2 - 2 +-- 8 8 +-- + +-- +-+ +-- - 136\|2 + 192 +-- / +-- +-+ +-- 384\|2 - 544 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1190a:=integrate(sin(z)^2*tan(z)^(1/2), z= 0..1,"noPole") +-- +-- +------+ +-- 3 4 2 |sin(1) +-- ((96cos(1) + 24cos(1))sin(1) - 96cos(1) + 120cos(1) ) |------ +-- \|cos(1) +-- + +-- 4 2 +-+ +-- (- 48cos(1)sin(1) + 96cos(1) - 96cos(1) - 3)\|2 +-- * +-- log +-- 2 2 3 2 +-- (- 16cos(1) sin(1) + (- 16cos(1) - 4cos(1))sin(1) - 4cos(1) ) +-- * +-- +------+ +-- +-+ |sin(1) +-- \|2 |------ +-- \|cos(1) +-- + +-- 3 2 2 3 +-- 8cos(1)sin(1) + 32cos(1) sin(1) + (8cos(1) + 8cos(1))sin(1) + 1 +-- + +-- +------+ +-- 3 4 2 |sin(1) +-- ((96cos(1) + 24cos(1))sin(1) - 96cos(1) + 120cos(1) ) |------ +-- \|cos(1) +-- + +-- 4 2 +-+ +-- (- 48cos(1)sin(1) + 96cos(1) - 96cos(1) - 3)\|2 +-- * +-- log +-- 2 2 3 +-- - 64cos(1) sin(1) + (- 64cos(1) - 16cos(1))sin(1) +-- + +-- 2 +-- - 16cos(1) +-- * +-- +------+ +-- +-+ |sin(1) +-- \|2 |------ +-- \|cos(1) +-- + +-- 3 2 2 3 +-- 32cos(1)sin(1) + 128cos(1) sin(1) + (32cos(1) + 32cos(1))sin(1) +-- + +-- 4 +-- + +-- +------+ +-- 3 4 2 |sin(1) +-- ((384cos(1) + 96cos(1))sin(1) - 384cos(1) + 480cos(1) ) |------ +-- \|cos(1) +-- + +-- 4 2 +-+ +-- (- 192cos(1)sin(1) + 384cos(1) - 384cos(1) - 12)\|2 +-- * +-- +------+ +-- |sin(1) 2 +-+ +-- 2cos(1)sin(1) |------ + (- cos(1)sin(1) + cos(1) - 1)\|2 +-- \|cos(1) +-- atan(-----------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 2cos(1) |------ + (- cos(1)sin(1) - cos(1) )\|2 +-- \|cos(1) +-- + +-- +------+ +-- 3 4 2 |sin(1) +-- ((- 384cos(1) - 96cos(1))sin(1) + 384cos(1) - 480cos(1) ) |------ +-- \|cos(1) +-- + +-- 4 2 +-+ +-- (192cos(1)sin(1) - 384cos(1) + 384cos(1) + 12)\|2 +-- * +-- +------+ +-- |sin(1) 2 +-+ +-- 4cos(1)sin(1) |------ + (- 2cos(1)sin(1) + 2cos(1) - 1)\|2 +-- \|cos(1) +-- atan(-------------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 4cos(1) |------ + (- 2cos(1)sin(1) - 2cos(1) + 1)\|2 +-- \|cos(1) +-- + +-- +------+ +-- 3 4 2 |sin(1) +-- ((- 384cos(1) - 96cos(1))sin(1) + 384cos(1) - 480cos(1) ) |------ +-- \|cos(1) +-- + +-- 4 2 +-+ +-- (192cos(1)sin(1) - 384cos(1) + 384cos(1) + 12)\|2 +-- * +-- +------+ +-- |sin(1) 2 +-+ +-- 2cos(1)sin(1) |------ + (- cos(1)sin(1) + cos(1) )\|2 +-- \|cos(1) +-- atan(-------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 2cos(1) |------ + (- cos(1)sin(1) - cos(1) + 1)\|2 +-- \|cos(1) +-- + +-- 3 5 +-- (- 96cos(1) - 24cos(1))log(4) - 1024cos(1) +-- + +-- 3 +-- (96%pi + 1024)cos(1) + (24%pi + 32)cos(1) +-- * +-- sin(1) +-- + +-- 4 2 4 +-- (96cos(1) - 120cos(1) )log(4) + (- 96%pi - 512)cos(1) +-- + +-- 2 +-- (120%pi + 512)cos(1) +-- * +-- +------+ +-- |sin(1) +-- |------ +-- \|cos(1) +-- + +-- 5 3 +-- (48cos(1)log(4) + 512cos(1) - 384cos(1) + (- 48%pi - 128)cos(1)) +-- * +-- sin(1) +-- + +-- 4 2 6 +-- (- 96cos(1) + 96cos(1) + 3)log(4) - 512cos(1) +-- + +-- 4 2 +-- (96%pi + 1152)cos(1) + (- 96%pi - 640)cos(1) - 3%pi +-- * +-- +-+ +-- \|2 +-- / +-- 3 4 2 +-+ +-- ((1024cos(1) + 256cos(1))sin(1) - 1024cos(1) + 1280cos(1) )\|2 +-- * +-- +------+ +-- |sin(1) +-- |------ +-- \|cos(1) +-- + +-- 4 2 +-- - 1024cos(1)sin(1) + 2048cos(1) - 2048cos(1) - 64 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1191a:=integrate(sin(z)^2/tan(z)^(1/2), z= 0..1,"noPole") +-- +-- +------+ +-- 3 4 2 |sin(1) +-- ((- 32cos(1) - 8cos(1))sin(1) + 32cos(1) - 40cos(1) ) |------ +-- \|cos(1) +-- + +-- 4 2 +-+ +-- (16cos(1)sin(1) - 32cos(1) + 32cos(1) + 1)\|2 +-- * +-- log +-- 2 2 3 2 +-- (- 16cos(1) sin(1) + (- 16cos(1) - 4cos(1))sin(1) - 4cos(1) ) +-- * +-- +------+ +-- +-+ |sin(1) +-- \|2 |------ +-- \|cos(1) +-- + +-- 3 2 2 3 +-- 8cos(1)sin(1) + 32cos(1) sin(1) + (8cos(1) + 8cos(1))sin(1) + 1 +-- + +-- +------+ +-- 3 4 2 |sin(1) +-- ((- 32cos(1) - 8cos(1))sin(1) + 32cos(1) - 40cos(1) ) |------ +-- \|cos(1) +-- + +-- 4 2 +-+ +-- (16cos(1)sin(1) - 32cos(1) + 32cos(1) + 1)\|2 +-- * +-- log +-- 2 2 3 +-- - 64cos(1) sin(1) + (- 64cos(1) - 16cos(1))sin(1) +-- + +-- 2 +-- - 16cos(1) +-- * +-- +------+ +-- +-+ |sin(1) +-- \|2 |------ +-- \|cos(1) +-- + +-- 3 2 2 3 +-- 32cos(1)sin(1) + 128cos(1) sin(1) + (32cos(1) + 32cos(1))sin(1) +-- + +-- 4 +-- + +-- +------+ +-- 3 4 2 |sin(1) +-- ((128cos(1) + 32cos(1))sin(1) - 128cos(1) + 160cos(1) ) |------ +-- \|cos(1) +-- + +-- 4 2 +-+ +-- (- 64cos(1)sin(1) + 128cos(1) - 128cos(1) - 4)\|2 +-- * +-- +------+ +-- |sin(1) 2 +-+ +-- 2cos(1)sin(1) |------ + (- cos(1)sin(1) + cos(1) - 1)\|2 +-- \|cos(1) +-- atan(-----------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 2cos(1) |------ + (- cos(1)sin(1) - cos(1) )\|2 +-- \|cos(1) +-- + +-- +------+ +-- 3 4 2 |sin(1) +-- ((- 128cos(1) - 32cos(1))sin(1) + 128cos(1) - 160cos(1) ) |------ +-- \|cos(1) +-- + +-- 4 2 +-+ +-- (64cos(1)sin(1) - 128cos(1) + 128cos(1) + 4)\|2 +-- * +-- +------+ +-- |sin(1) 2 +-+ +-- 4cos(1)sin(1) |------ + (- 2cos(1)sin(1) + 2cos(1) - 1)\|2 +-- \|cos(1) +-- atan(-------------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 4cos(1) |------ + (- 2cos(1)sin(1) - 2cos(1) + 1)\|2 +-- \|cos(1) +-- + +-- +------+ +-- 3 4 2 |sin(1) +-- ((- 128cos(1) - 32cos(1))sin(1) + 128cos(1) - 160cos(1) ) |------ +-- \|cos(1) +-- + +-- 4 2 +-+ +-- (64cos(1)sin(1) - 128cos(1) + 128cos(1) + 4)\|2 +-- * +-- +------+ +-- |sin(1) 2 +-+ +-- 2cos(1)sin(1) |------ + (- cos(1)sin(1) + cos(1) )\|2 +-- \|cos(1) +-- atan(-------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 2cos(1) |------ + (- cos(1)sin(1) - cos(1) + 1)\|2 +-- \|cos(1) +-- + +-- 3 3 +-- ((32cos(1) + 8cos(1))log(4) + (32%pi + 512)cos(1) + 8%pi cos(1)) +-- * +-- sin(1) +-- + +-- 4 2 6 +-- (- 32cos(1) + 40cos(1) )log(4) - 1024cos(1) +-- + +-- 4 2 +-- (- 32%pi + 1024)cos(1) + (40%pi + 32)cos(1) +-- * +-- +------+ +-- |sin(1) +-- |------ +-- \|cos(1) +-- + +-- 5 3 +-- (- 16cos(1)log(4) + 512cos(1) - 640cos(1) - 16%pi cos(1))sin(1) +-- + +-- 4 2 6 4 +-- (32cos(1) - 32cos(1) - 1)log(4) + 512cos(1) + (32%pi - 384)cos(1) +-- + +-- 2 +-- (- 32%pi - 128)cos(1) - %pi +-- * +-- +-+ +-- \|2 +-- / +-- 3 4 2 +-+ +-- ((1024cos(1) + 256cos(1))sin(1) - 1024cos(1) + 1280cos(1) )\|2 +-- * +-- +------+ +-- |sin(1) +-- |------ +-- \|cos(1) +-- + +-- 4 2 +-- - 1024cos(1)sin(1) + 2048cos(1) - 2048cos(1) - 64 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) +-- + +in1193a:=integrate(-sin(z)^2*cot(z-1), z= 0..1,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +------------------------------------------------------ +in1207:=integrate(sin(z)*cos(z)*tan(z)^(1/2), z= 0..1) +-- +-- potentialPole +-- +in1207a:=integrate(sin(z)*cos(z)*tan(z)^(1/2), z= 0..1,"noPole") +-- +-- +------+ +-- 3 4 2 |sin(1) +-- ((- 32cos(1) - 8cos(1))sin(1) + 32cos(1) - 40cos(1) ) |------ +-- \|cos(1) +-- + +-- 4 2 +-+ +-- (16cos(1)sin(1) - 32cos(1) + 32cos(1) + 1)\|2 +-- * +-- log +-- 2 2 3 2 +-- (- 16cos(1) sin(1) + (- 16cos(1) - 4cos(1))sin(1) - 4cos(1) ) +-- * +-- +------+ +-- +-+ |sin(1) +-- \|2 |------ +-- \|cos(1) +-- + +-- 3 2 2 3 +-- 8cos(1)sin(1) + 32cos(1) sin(1) + (8cos(1) + 8cos(1))sin(1) + 1 +-- + +-- +------+ +-- 3 4 2 |sin(1) +-- ((- 32cos(1) - 8cos(1))sin(1) + 32cos(1) - 40cos(1) ) |------ +-- \|cos(1) +-- + +-- 4 2 +-+ +-- (16cos(1)sin(1) - 32cos(1) + 32cos(1) + 1)\|2 +-- * +-- log +-- 2 2 3 +-- - 64cos(1) sin(1) + (- 64cos(1) - 16cos(1))sin(1) +-- + +-- 2 +-- - 16cos(1) +-- * +-- +------+ +-- +-+ |sin(1) +-- \|2 |------ +-- \|cos(1) +-- + +-- 3 2 2 3 +-- 32cos(1)sin(1) + 128cos(1) sin(1) + (32cos(1) + 32cos(1))sin(1) +-- + +-- 4 +-- + +-- +------+ +-- 3 4 2 |sin(1) +-- ((128cos(1) + 32cos(1))sin(1) - 128cos(1) + 160cos(1) ) |------ +-- \|cos(1) +-- + +-- 4 2 +-+ +-- (- 64cos(1)sin(1) + 128cos(1) - 128cos(1) - 4)\|2 +-- * +-- +------+ +-- |sin(1) 2 +-+ +-- 2cos(1)sin(1) |------ + (- cos(1)sin(1) + cos(1) - 1)\|2 +-- \|cos(1) +-- atan(-----------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 2cos(1) |------ + (- cos(1)sin(1) - cos(1) )\|2 +-- \|cos(1) +-- + +-- +------+ +-- 3 4 2 |sin(1) +-- ((- 128cos(1) - 32cos(1))sin(1) + 128cos(1) - 160cos(1) ) |------ +-- \|cos(1) +-- + +-- 4 2 +-+ +-- (64cos(1)sin(1) - 128cos(1) + 128cos(1) + 4)\|2 +-- * +-- +------+ +-- |sin(1) 2 +-+ +-- 4cos(1)sin(1) |------ + (- 2cos(1)sin(1) + 2cos(1) - 1)\|2 +-- \|cos(1) +-- atan(-------------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 4cos(1) |------ + (- 2cos(1)sin(1) - 2cos(1) + 1)\|2 +-- \|cos(1) +-- + +-- +------+ +-- 3 4 2 |sin(1) +-- ((- 128cos(1) - 32cos(1))sin(1) + 128cos(1) - 160cos(1) ) |------ +-- \|cos(1) +-- + +-- 4 2 +-+ +-- (64cos(1)sin(1) - 128cos(1) + 128cos(1) + 4)\|2 +-- * +-- +------+ +-- |sin(1) 2 +-+ +-- 2cos(1)sin(1) |------ + (- cos(1)sin(1) + cos(1) )\|2 +-- \|cos(1) +-- atan(-------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 2cos(1) |------ + (- cos(1)sin(1) - cos(1) + 1)\|2 +-- \|cos(1) +-- + +-- 3 3 +-- ((32cos(1) + 8cos(1))log(4) + (32%pi + 512)cos(1) + 8%pi cos(1)) +-- * +-- sin(1) +-- + +-- 4 2 6 +-- (- 32cos(1) + 40cos(1) )log(4) - 1024cos(1) +-- + +-- 4 2 +-- (- 32%pi + 1024)cos(1) + (40%pi + 32)cos(1) +-- * +-- +------+ +-- |sin(1) +-- |------ +-- \|cos(1) +-- + +-- 5 3 +-- (- 16cos(1)log(4) + 512cos(1) - 640cos(1) - 16%pi cos(1))sin(1) +-- + +-- 4 2 6 4 +-- (32cos(1) - 32cos(1) - 1)log(4) + 512cos(1) + (32%pi - 384)cos(1) +-- + +-- 2 +-- (- 32%pi - 128)cos(1) - %pi +-- * +-- +-+ +-- \|2 +-- / +-- 3 4 2 +-+ +-- ((1024cos(1) + 256cos(1))sin(1) - 1024cos(1) + 1280cos(1) )\|2 +-- * +-- +------+ +-- |sin(1) +-- |------ +-- \|cos(1) +-- + +-- 4 2 +-- - 1024cos(1)sin(1) + 2048cos(1) - 2048cos(1) - 64 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1210a:=integrate(-sin(z)*cos(z)*cot(z-1), z= 0..1,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1214a:=integrate(-sin(z)*tan(z)*csc(z-1), z= 0..1,"noPole") +-- +-- 1 2 1 2 +-- 4cos(-) sin(-) +-- 2 2 +-- * +-- log +-- 1 4 1 2 1 2 1 4 2 +-- (sin(-) - 2cos(-) sin(-) + cos(-) )sin(1) +-- 2 2 2 2 +-- + +-- 1 1 3 1 3 1 +-- (4cos(-)cos(1)sin(-) - 4cos(-) cos(1)sin(-))sin(1) +-- 2 2 2 2 +-- + +-- 1 2 2 1 2 +-- 4cos(-) cos(1) sin(-) +-- 2 2 +-- / +-- 1 4 2 1 4 1 4 +-- cos(-) cos(1) + 2cos(-) cos(1) + cos(-) +-- 2 2 2 +-- + +-- 1 2 +-- sin(-) +-- 1 2 1 2 2 +-- - 4cos(-) sin(-) log(-------) +-- 2 2 1 2 +-- cos(-) +-- 2 +-- + +-- 2 +-- 1 4 1 2 1 2 1 4 4cos(1) +-- (- sin(-) - 2cos(-) sin(-) - cos(-) )log(---------------------) +-- 2 2 2 2 2 +-- cos(1) + 2cos(1) + 1 +-- + +-- 1 4 1 2 1 2 1 4 4 +-- (sin(-) - 2cos(-) sin(-) + cos(-) )log(---------------------) +-- 2 2 2 2 2 +-- cos(1) + 2cos(1) + 1 +-- + +-- 1 1 3 1 3 1 +-- - 4cos(-)sin(-) + 4cos(-) sin(-) +-- 2 2 2 2 +-- / +-- 1 4 1 4 +-- 2sin(-) - 2cos(-) +-- 2 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1217a:=integrate(sin(z)*sec(z)*tan(z)^(1/2), z= 0..1,"noPole") +-- +-- +------+ +-- |sin(1) +-+ +-- (2cos(1) |------ + (- sin(1) - cos(1))\|2 ) +-- \|cos(1) +-- * +-- log +-- 2 2 3 2 +-- (- 16cos(1) sin(1) + (- 16cos(1) - 4cos(1))sin(1) - 4cos(1) ) +-- * +-- +------+ +-- +-+ |sin(1) +-- \|2 |------ +-- \|cos(1) +-- + +-- 3 2 2 3 +-- 8cos(1)sin(1) + 32cos(1) sin(1) + (8cos(1) + 8cos(1))sin(1) + 1 +-- + +-- +------+ +-- |sin(1) +-+ +-- (2cos(1) |------ + (- sin(1) - cos(1))\|2 ) +-- \|cos(1) +-- * +-- log +-- 2 2 3 +-- - 64cos(1) sin(1) + (- 64cos(1) - 16cos(1))sin(1) +-- + +-- 2 +-- - 16cos(1) +-- * +-- +------+ +-- +-+ |sin(1) +-- \|2 |------ +-- \|cos(1) +-- + +-- 3 2 2 3 +-- 32cos(1)sin(1) + 128cos(1) sin(1) + (32cos(1) + 32cos(1))sin(1) +-- + +-- 4 +-- + +-- +------+ +-- |sin(1) +-+ +-- (- 8cos(1) |------ + (4sin(1) + 4cos(1))\|2 ) +-- \|cos(1) +-- * +-- +------+ +-- |sin(1) 2 +-+ +-- 2cos(1)sin(1) |------ + (- cos(1)sin(1) + cos(1) - 1)\|2 +-- \|cos(1) +-- atan(-----------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 2cos(1) |------ + (- cos(1)sin(1) - cos(1) )\|2 +-- \|cos(1) +-- + +-- +------+ +-- |sin(1) +-+ +-- (8cos(1) |------ + (- 4sin(1) - 4cos(1))\|2 ) +-- \|cos(1) +-- * +-- +------+ +-- |sin(1) 2 +-+ +-- 4cos(1)sin(1) |------ + (- 2cos(1)sin(1) + 2cos(1) - 1)\|2 +-- \|cos(1) +-- atan(-------------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 4cos(1) |------ + (- 2cos(1)sin(1) - 2cos(1) + 1)\|2 +-- \|cos(1) +-- + +-- +------+ +-- |sin(1) +-+ +-- (8cos(1) |------ + (- 4sin(1) - 4cos(1))\|2 ) +-- \|cos(1) +-- * +-- +------+ +-- |sin(1) 2 +-+ +-- 2cos(1)sin(1) |------ + (- cos(1)sin(1) + cos(1) )\|2 +-- \|cos(1) +-- atan(-------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 2cos(1) |------ + (- cos(1)sin(1) - cos(1) + 1)\|2 +-- \|cos(1) +-- + +-- +------+ +-- |sin(1) +-- (- 32sin(1) - 2cos(1)log(4) + (- 2%pi - 32)cos(1)) |------ +-- \|cos(1) +-- + +-- +-+ +-- ((log(4) + %pi + 32)sin(1) + cos(1)log(4) + %pi cos(1))\|2 +-- / +-- +------+ +-- +-+ |sin(1) +-- 16cos(1)\|2 |------ - 16sin(1) - 16cos(1) +-- \|cos(1) +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1218a:=integrate(sin(z)*sec(z)/tan(z)^(1/2), z= 0..1,"noPole") +-- +-- +-+ +-- 2\|2 +-- * +-- log +-- 2 2 3 2 +-- (- 16cos(1) sin(1) + (- 16cos(1) - 4cos(1))sin(1) - 4cos(1) ) +-- * +-- +------+ +-- +-+ |sin(1) +-- \|2 |------ +-- \|cos(1) +-- + +-- 3 2 2 3 +-- 8cos(1)sin(1) + 32cos(1) sin(1) + (8cos(1) + 8cos(1))sin(1) + 1 +-- + +-- +------+ +-- |sin(1) 2 +-+ +-- 2cos(1)sin(1) |------ + (- cos(1)sin(1) + cos(1) - 1)\|2 +-- +-+ \|cos(1) +-- 4\|2 atan(-----------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 2cos(1) |------ + (- cos(1)sin(1) - cos(1) )\|2 +-- \|cos(1) +-- + +-- - +-- +-+ +-- 4\|2 +-- * +-- +------+ +-- |sin(1) 2 +-+ +-- 4cos(1)sin(1) |------ + (- 2cos(1)sin(1) + 2cos(1) - 1)\|2 +-- \|cos(1) +-- atan(-------------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 4cos(1) |------ + (- 2cos(1)sin(1) - 2cos(1) + 1)\|2 +-- \|cos(1) +-- + +-- +------+ +-- |sin(1) 2 +-+ +-- 2cos(1)sin(1) |------ + (- cos(1)sin(1) + cos(1) )\|2 +-- +-+ \|cos(1) +-- - 4\|2 atan(-------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 2cos(1) |------ + (- cos(1)sin(1) - cos(1) + 1)\|2 +-- \|cos(1) +-- + +-- +-+ +-- %pi\|2 +-- / +-- 16 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1a:=integrate(log(abs(z^2-1))/(1+z)^2, z= 0..%plusInfinity,"noPole") +-- +-- 1 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in13:=integrate(cos(z)^2*sin(z)^n, z) +-- +-- z +-- ++ 2 n +-- | cos(%H) sin(%H) d%H +-- ++ +-- Type: Union(Expression Integer,...) + +in15ab:=integrate(log(sqrt(z)+z^5), z=0..a,"noPole") +-- +-- %pi +-- 6cos(---) +-- 9 +-- * +-- log +-- %pi 6 +-+ %pi %pi 5 %pi 2 %pi 4 +-- 2sin(---) + 4\|3 cos(---)sin(---) + 2cos(---) sin(---) +-- 9 9 9 9 9 +-- + +-- +-+ %pi 3 %pi 3 %pi 4 %pi 2 +-- 8\|3 cos(---) sin(---) + (- 2cos(---) + 2a)sin(---) +-- 9 9 9 9 +-- + +-- +-+ %pi 5 +-+ %pi %pi %pi 6 +-- (4\|3 cos(---) + 4a\|3 cos(---))sin(---) - 2cos(---) +-- 9 9 9 9 +-- + +-- %pi 2 +-- - 2a cos(---) +-- 9 +-- * +-- +-+ +-- \|a +-- + +-- %pi 8 %pi 2 %pi 6 %pi 4 %pi 4 +-- sin(---) + 4cos(---) sin(---) + (6cos(---) + 3a)sin(---) +-- 9 9 9 9 9 +-- + +-- +-+ %pi %pi 3 %pi 6 %pi 2 %pi 2 +-- 4a\|3 cos(---)sin(---) + (4cos(---) + 14a cos(---) )sin(---) +-- 9 9 9 9 9 +-- + +-- +-+ %pi 3 %pi %pi 8 %pi 4 2 +-- - 4a\|3 cos(---) sin(---) + cos(---) + 3a cos(---) + a +-- 9 9 9 9 +-- + +-- +-+ %pi %pi +-- (- 3\|3 sin(---) - 3cos(---)) +-- 9 9 +-- * +-- log +-- %pi 6 +-+ %pi %pi 5 %pi 2 %pi 4 +-- 2sin(---) - 4\|3 cos(---)sin(---) + 2cos(---) sin(---) +-- 9 9 9 9 9 +-- + +-- +-+ %pi 3 %pi 3 %pi 4 %pi 2 +-- - 8\|3 cos(---) sin(---) + (- 2cos(---) + 2a)sin(---) +-- 9 9 9 9 +-- + +-- +-+ %pi 5 +-+ %pi %pi %pi 6 +-- (- 4\|3 cos(---) - 4a\|3 cos(---))sin(---) - 2cos(---) +-- 9 9 9 9 +-- + +-- %pi 2 +-- - 2a cos(---) +-- 9 +-- * +-- +-+ +-- \|a +-- + +-- %pi 8 %pi 2 %pi 6 %pi 4 %pi 4 +-- sin(---) + 4cos(---) sin(---) + (6cos(---) + 3a)sin(---) +-- 9 9 9 9 9 +-- + +-- +-+ %pi %pi 3 %pi 6 %pi 2 %pi 2 +-- - 4a\|3 cos(---)sin(---) + (4cos(---) + 14a cos(---) )sin(---) +-- 9 9 9 9 9 +-- + +-- +-+ %pi 3 %pi %pi 8 %pi 4 2 +-- 4a\|3 cos(---) sin(---) + cos(---) + 3a cos(---) + a +-- 9 9 9 9 +-- + +-- 5 +-+ 10 +-+ +-- 6a log(2a \|a + a + a) - 12log(\|a + 1) +-- + +-- +-+ 2 +-- 3log((- 2a - 2)\|a + a + 3a + 1) +-- + +-- +-+ %pi %pi +-- (3\|3 sin(---) - 3cos(---)) +-- 9 9 +-- * +-- log +-- %pi 6 %pi 2 %pi 4 +-- - 4sin(---) - 4cos(---) sin(---) +-- 9 9 9 +-- + +-- %pi 4 %pi 2 %pi 6 %pi 2 +-- (4cos(---) - 4a)sin(---) + 4cos(---) + 4a cos(---) +-- 9 9 9 9 +-- * +-- +-+ +-- \|a +-- + +-- %pi 8 %pi 2 %pi 6 %pi 4 %pi 4 +-- sin(---) + 4cos(---) sin(---) + (6cos(---) + 6a)sin(---) +-- 9 9 9 9 9 +-- + +-- %pi 6 %pi 2 %pi 2 %pi 8 %pi 4 2 +-- (4cos(---) - 4a cos(---) )sin(---) + cos(---) + 6a cos(---) + a +-- 9 9 9 9 9 +-- + +-- %pi +-+ %pi +-- (12sin(---) - 12\|3 cos(---)) +-- 9 9 +-- * +-- +-+ %pi 2 %pi %pi +-+ %pi 2 +-- \|3 sin(---) + 2cos(---)sin(---) - \|3 cos(---) +-- 9 9 9 9 +-- atan(-------------------------------------------------) +-- %pi 2 +-+ %pi %pi %pi 2 +-- sin(---) - 2\|3 cos(---)sin(---) - cos(---) +-- 9 9 9 9 +-- + +-- +-+ +-+ +-+ +-- +-+ 2\|3 \|a - \|3 +-- 6\|3 atan(----------------) +-- +-+ +-- 2\|a - 2a + 1 +-- + +-- +-+ %pi 2 %pi %pi +-+ %pi 2 +-- \|3 sin(---) - 2cos(---)sin(---) - \|3 cos(---) +-- %pi 9 9 9 9 +-- 24sin(---)atan(-------------------------------------------------) +-- 9 %pi 2 +-+ %pi %pi %pi 2 +-- sin(---) + 2\|3 cos(---)sin(---) - cos(---) +-- 9 9 9 9 +-- + +-- %pi %pi +-- 2cos(---)sin(---) +-- %pi +-+ %pi 9 9 +-- (12sin(---) + 12\|3 cos(---))atan(---------------------) +-- 9 9 %pi 2 %pi 2 +-- sin(---) - cos(---) +-- 9 9 +-- + +-- %pi +-+ %pi +-- (- 12sin(---) + 12\|3 cos(---)) +-- 9 9 +-- * +-- +-+ %pi 2 %pi %pi +-+ %pi 2 +-- \|3 sin(---) + 2cos(---)sin(---) - \|3 cos(---) +-- 9 9 9 9 +-- atan(-----------------------------------------------------) +-- +-+ %pi 2 +-+ %pi %pi %pi 2 +-- 2\|a + sin(---) - 2\|3 cos(---)sin(---) - cos(---) +-- 9 9 9 9 +-- + +-- +-+ %pi 2 %pi %pi +-+ %pi 2 +-- \|3 sin(---) - 2cos(---)sin(---) - \|3 cos(---) +-- %pi 9 9 9 9 +-- - 24sin(---)atan(-----------------------------------------------------) +-- 9 +-+ %pi 2 +-+ %pi %pi %pi 2 +-- 2\|a + sin(---) + 2\|3 cos(---)sin(---) - cos(---) +-- 9 9 9 9 +-- + +-- %pi %pi +-- 2cos(---)sin(---) +-- %pi +-+ %pi 9 9 +-- (12sin(---) + 12\|3 cos(---))atan(----------------------------) +-- 9 9 +-+ %pi 2 %pi 2 +-- \|a - sin(---) + cos(---) +-- 9 9 +-- + +-- +-+ +-- 2%pi\|3 - 60a +-- / +-- 12 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in20a:=integrate(log(sin(z)^2+cos(z)^2), z= 0..1,"noPole") +-- +-- 0 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in126a:=integrate(atan(1/cot(z)), z= 0..2*%pi,"noPole") +-- +-- 2 +-- 2%pi +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in128a:=integrate(atan(sqrt(1-cos(z)^2)/(1+cos(z))), z= 0..1,"noPole") +-- +-- +-- 1 +-- - +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in134:=integrate(log(exp(z)), z= -I..I) +-- +-- 0 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) +-- + +in134a:=integrate(log(exp(z)), z= -%i..%i) +-- +-- 0 +-- Type: Union(f1: OrderedCompletion Expression Complex Integer,...) +-- + +in1221a:=integrate(sin(z)*csc(z)*acoth(1/z), z= 0..1,"noPole") +-- +-- log(4) +-- ------ +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1228a:=integrate(sin(z)*csc(z)*tan(z)^(1/2), z= 0..1,"noPole") +-- +-- +-+ +-- 2\|2 +-- * +-- log +-- 2 2 3 2 +-- (- 16cos(1) sin(1) + (- 16cos(1) - 4cos(1))sin(1) - 4cos(1) ) +-- * +-- +------+ +-- +-+ |sin(1) +-- \|2 |------ +-- \|cos(1) +-- + +-- 3 2 2 3 +-- 8cos(1)sin(1) + 32cos(1) sin(1) + (8cos(1) + 8cos(1))sin(1) + 1 +-- + +-- +------+ +-- |sin(1) 2 +-+ +-- 2cos(1)sin(1) |------ + (- cos(1)sin(1) + cos(1) - 1)\|2 +-- +-+ \|cos(1) +-- 4\|2 atan(-----------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 2cos(1) |------ + (- cos(1)sin(1) - cos(1) )\|2 +-- \|cos(1) +-- + +-- - +-- +-+ +-- 4\|2 +-- * +-- +------+ +-- |sin(1) 2 +-+ +-- 4cos(1)sin(1) |------ + (- 2cos(1)sin(1) + 2cos(1) - 1)\|2 +-- \|cos(1) +-- atan(-------------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 4cos(1) |------ + (- 2cos(1)sin(1) - 2cos(1) + 1)\|2 +-- \|cos(1) +-- + +-- +------+ +-- |sin(1) 2 +-+ +-- 2cos(1)sin(1) |------ + (- cos(1)sin(1) + cos(1) )\|2 +-- +-+ \|cos(1) +-- - 4\|2 atan(-------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 2cos(1) |------ + (- cos(1)sin(1) - cos(1) + 1)\|2 +-- \|cos(1) +-- + +-- +-+ +-- %pi\|2 +-- / +-- 16 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) +-- + +in1241a:=integrate(sin(z)*csc(z)*acoth(1/z), z= 0..1,"noPole") +-- +-- log(4) +-- ------ +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1248a:=integrate(sin(z)*csc(z)*tan(z)^(1/2), z= 0..1,"noPole") +-- +-- +-+ +-- 2\|2 +-- * +-- log +-- 2 2 3 2 +-- (- 16cos(1) sin(1) + (- 16cos(1) - 4cos(1))sin(1) - 4cos(1) ) +-- * +-- +------+ +-- +-+ |sin(1) +-- \|2 |------ +-- \|cos(1) +-- + +-- 3 2 2 3 +-- 8cos(1)sin(1) + 32cos(1) sin(1) + (8cos(1) + 8cos(1))sin(1) + 1 +-- + +-- +------+ +-- |sin(1) 2 +-+ +-- 2cos(1)sin(1) |------ + (- cos(1)sin(1) + cos(1) - 1)\|2 +-- +-+ \|cos(1) +-- 4\|2 atan(-----------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 2cos(1) |------ + (- cos(1)sin(1) - cos(1) )\|2 +-- \|cos(1) +-- + +-- - +-- +-+ +-- 4\|2 +-- * +-- +------+ +-- |sin(1) 2 +-+ +-- 4cos(1)sin(1) |------ + (- 2cos(1)sin(1) + 2cos(1) - 1)\|2 +-- \|cos(1) +-- atan(-------------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 4cos(1) |------ + (- 2cos(1)sin(1) - 2cos(1) + 1)\|2 +-- \|cos(1) +-- + +-- +------+ +-- |sin(1) 2 +-+ +-- 2cos(1)sin(1) |------ + (- cos(1)sin(1) + cos(1) )\|2 +-- +-+ \|cos(1) +-- - 4\|2 atan(-------------------------------------------------------) +-- +------+ +-- 2 |sin(1) 2 +-+ +-- 2cos(1) |------ + (- cos(1)sin(1) - cos(1) + 1)\|2 +-- \|cos(1) +-- + +-- +-+ +-- %pi\|2 +-- / +-- 16 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1261a:=integrate(1/(sin(z)+cos(2*z)), z= -1..1,"noPole") +-- +-- 2 2 +-- (- sin(1) + cos(1) + 2cos(1) + 1) +-- * +-- log +-- 2 2 +-- - 12sin(1) + (42cos(1) + 48)sin(1) - 36cos(1) - 84cos(1) +-- + +-- - 48 +-- * +-- +-+ +-- \|3 +-- + +-- 2 2 +-- 21sin(1) + (- 72cos(1) - 84)sin(1) + 63cos(1) + 144cos(1) + 84 +-- / +-- 2 +-- 4sin(1) - 4sin(1) + 1 +-- + +-- 2 2 +-- (sin(1) - cos(1) - 2cos(1) - 1) +-- * +-- log +-- 2 2 +-- - 12sin(1) + (- 42cos(1) - 48)sin(1) - 36cos(1) - 84cos(1) +-- + +-- - 48 +-- * +-- +-+ +-- \|3 +-- + +-- 2 2 +-- 21sin(1) + (72cos(1) + 84)sin(1) + 63cos(1) + 144cos(1) + 84 +-- / +-- 2 +-- 4sin(1) + 4sin(1) + 1 +-- + +-- +-+ +-- (- 4cos(1) - 4)sin(1)\|3 +-- / +-- 2 2 +-+ +-- (3sin(1) - 3cos(1) - 6cos(1) - 3)\|3 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1273a:=integrate((1/(z-I))^(1/2), z= 0..%plusInfinity,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1274a:=integrate(1/(1/(z-I))^(1/2), z= 0..%plusInfinity,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1278a:=integrate((1+1/(I*z)^(1/2))^(1/2), z= 0..%plusInfinity,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1284a:=integrate(log(1+2^(1/2)/z^(1/4)-1/z^(1/2)), z= 0..%plusInfinity,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1314a:=integrate(log(1-z)*atanh(z^(1/2)), z= 0..1,"noPole") +-- log(16) - 6 +-- ----------- +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1359a:=integrate((I*z)^(1/2)*(-I*z)^(1/2), z= %minusInfinity..%plusInfinity,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1376a:=integrate(z*acoth(z^(1/2)), z= 0..1,"noPole") +-- +-- 2 +-- - +-- 3 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1377a:=integrate(z*acoth(1-z), z= 0..1,"noPole") +-- +-- log(4) - 1 +-- ---------- +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1378a:=integrate(z*acoth(1-(1-z)^(1/2)), z= 0..1,"noPole") +-- +-- - 3log(4) + 5 +-- ------------- +-- 3 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1392a:=integrate(acoth(z^(1/2)), z= 0..1,"noPole") +-- +-- 1 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1397a:=integrate(1/(-1+z^(1/2))^(1/2), z= 1..2,"noPole") +-- +-- +--------+ +-- +-+ | +-+ +-- (4\|2 + 8)\|\|2 - 1 +-- ---------------------- +-- 3 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1398a:=integrate(acoth(1/z), z= 1..2,"noPole") +-- +-- 3log(9) - 2log(4) +-- ----------------- +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1399a:=integrate(acoth(1/z^(1/2)), z= 1..2,"noPole") +-- +-- +-+ +-- - 2\|2 - 3 +-+ +-- log(-----------) + 4\|2 - 4 +-- +-+ +-- 2\|2 - 3 +-- ---------------------------- +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in143a:=integrate(sqrt(1+z)/(1+z^2), z= 0..1,"noPole") +-- +-- 4+-+ %pi +-- \|2 cos(---) +-- 8 +-- * +-- log +-- %pi 4 +-+4+-+3 %pi 3 %pi 2 4+-+2 %pi 2 +-- 2sin(---) + 4\|2 \|2 sin(---) + (4cos(---) + 12\|2 )sin(---) +-- 8 8 8 8 +-- + +-- +-+4+-+3 %pi 2 +-+4+-+ %pi %pi 4 +-- (4\|2 \|2 cos(---) + 8\|2 \|2 )sin(---) + 2cos(---) +-- 8 8 8 +-- + +-- 4+-+2 %pi 2 +-- 4\|2 cos(---) + 4 +-- 8 +-- + +-- - +-- 4+-+ %pi +-- \|2 cos(---) +-- 8 +-- * +-- log +-- %pi 4 4+-+3 %pi 3 %pi 2 4+-+2 %pi 2 +-- 2sin(---) + 4\|2 sin(---) + (4cos(---) + 6\|2 )sin(---) +-- 8 8 8 8 +-- + +-- 4+-+3 %pi 2 4+-+ %pi %pi 4 +-- (4\|2 cos(---) + 4\|2 )sin(---) + 2cos(---) +-- 8 8 8 +-- + +-- 4+-+2 %pi 2 +-- 2\|2 cos(---) + 1 +-- 8 +-- + +-- 4+-+ %pi +-- \|2 cos(---) +-- 8 +-- * +-- log +-- %pi 4 4+-+3 %pi 3 %pi 2 4+-+2 %pi 2 +-- 2sin(---) - 4\|2 sin(---) + (4cos(---) + 6\|2 )sin(---) +-- 8 8 8 8 +-- + +-- 4+-+3 %pi 2 4+-+ %pi %pi 4 4+-+2 %pi 2 +-- (- 4\|2 cos(---) - 4\|2 )sin(---) + 2cos(---) + 2\|2 cos(---) +-- 8 8 8 8 +-- + +-- 1 +-- + +-- - +-- 4+-+ %pi +-- \|2 cos(---) +-- 8 +-- * +-- log +-- %pi 4 +-+4+-+3 %pi 3 +-- 2sin(---) - 4\|2 \|2 sin(---) +-- 8 8 +-- + +-- %pi 2 4+-+2 %pi 2 +-- (4cos(---) + 12\|2 )sin(---) +-- 8 8 +-- + +-- +-+4+-+3 %pi 2 +-+4+-+ %pi %pi 4 +-- (- 4\|2 \|2 cos(---) - 8\|2 \|2 )sin(---) + 2cos(---) +-- 8 8 8 +-- + +-- 4+-+2 %pi 2 +-- 4\|2 cos(---) + 4 +-- 8 +-- + +-- 4+-+ %pi +-- \|2 cos(---) +-- 4+-+ %pi 8 +-- - 4\|2 sin(---)atan(-------------------) +-- 8 4+-+ %pi +-+ +-- \|2 sin(---) - \|2 +-- 8 +-- + +-- 4+-+ %pi 4+-+ %pi +-- \|2 cos(---) \|2 cos(---) +-- 4+-+ %pi 8 4+-+ %pi 8 +-- 4\|2 sin(---)atan(----------------) - 4\|2 sin(---)atan(----------------) +-- 8 4+-+ %pi 8 4+-+ %pi +-- \|2 sin(---) - 1 \|2 sin(---) + 1 +-- 8 8 +-- + +-- 4+-+ %pi +-- \|2 cos(---) +-- 4+-+ %pi 8 +-- 4\|2 sin(---)atan(-------------------) +-- 8 4+-+ %pi +-+ +-- \|2 sin(---) + \|2 +-- 8 +-- / +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in144:=integrate(1, z= I*infinity..%plusInfinity) +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in146a:=integrate(csc(z), z= 1-I..1+I,"noPole") +-- +-- 2 2 +-- sin(I + 1) sin(I - 1) +-- log(-----------------------------) - log(-----------------------------) +-- 2 2 +-- cos(I + 1) + 2cos(I + 1) + 1 cos(I - 1) + 2cos(I - 1) + 1 +-- ----------------------------------------------------------------------- +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in148:=integrate(min(1,z), z= 0..2) +-- +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in156a:=integrate(z^(2/3), z= 1..10,"noPole") +-- +-- 3+--+2 +-- 30\|10 - 3 +-- ------------ +-- 5 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in159a:=integrate(log(z)/z^2, z= -I..-1,"noPole") +-- +-- 2 +-- - log(I ) + 2I - 2 +-- ------------------ +-- 2I +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in160:=integrate((-z^2-z)^sin(z), z) +-- +-- z +-- ++ 2 sin(%R) +-- | (- %R - %R) d%R +-- ++ +-- Type: Union(Expression Integer,...) + +in1425a:=integrate(-(z^2+I*z+3)/(z^2+I*z+2), z= 0..%plusInfinity,"noPole") +-- +-- [- infinity,- infinity] +-- Type: Union(f2: List OrderedCompletion Expression Integer,...) + +in1426a:=integrate(-I/(1+I*z^3)*z^3, z= 0..%plusInfinity,"noPole") +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1428a:=integrate(-I/(1+I*z)*z, z= 0..%plusInfinity,"noPole") +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1432:=integrate(-(z+I)*(-1+1/(z+I)), z= 0..%plusInfinity) +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1433a:=integrate(-1/((I*z)^(1/2)-1)*(-2+(I*z)^(1/2)), z= 0..%plusInfinity,"noPole") +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1434a:=integrate(-(1+(I*z)^(1/2))/(I*z)^(1/2), z= 0..%plusInfinity,"noPole") +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1435a:=integrate(-1/(1+(I*z)^(1/2))*(I*z)^(1/2), z= 0..%plusInfinity,"noPole") +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1436a:=integrate(-((I*z)^(1/2)-1)/(-2+(I*z)^(1/2)), z= 0..%plusInfinity,"noPole") +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1440a:=integrate((1-(I*z)^(1/2))/(I*z)^(1/2), z= 0..%plusInfinity,"noPole") +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1460:=integrate(z^2+I*z+3, z= 0..%plusInfinity) +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1463a:=integrate(1-(I*z)^(1/2)/(1-I*z), z= 0..%plusInfinity,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1464a:=integrate(1+1/(I*z)^(1/2), z= 0..%plusInfinity,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2045:=integrate(atan(1/tan(z)), z= 0..2*Pi) +-- +-- 2 +-- - 3%pi +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1502a:=integrate(log(z)^2*log(-z), z= 0..%plusInfinity,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1512a:=integrate(log(z)*(1/(z-I))^(1/2), z= 1..%plusInfinity,"noPole") +-- +-- [ + infinity, + infinity] +-- Type: Union(f2: List OrderedCompletion Expression Integer,...) + +in1513a:=integrate(log(z)*(1/(z+I))^(1/2), z= 1..%plusInfinity,"noPole") +-- +-- [ + infinity, + infinity] +-- Type: Union(f2: List OrderedCompletion Expression Integer,...) + +in1514a:=integrate(log(z)/(I/(z-I))^(1/2), z= 1..%plusInfinity,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1563a:=integrate(log(1-z^3)*(I*z)^(1/2), z= 0..1,"noPole") +-- +-- 2 +-- 16I 2 +-+ +-- (log(----) - log(I ) + log(9) - 4)\|I +-- 9 +-- [--------------------------------------,- infinity] +-- 3 +-- Type: Union(f2: List OrderedCompletion Expression Integer,...) + +in161:=integrate((-z^2)^(1/3), z) +-- +----+ +-- 3| 2 +-- 3z\|- z +-- (81) --------- +-- 5 +-- Type: Union(Expression Integer,...) + +in163:=integrate(log(z)*abs(exp(z)/z), z) +-- +-- z %K +-- ++ %e +-- | log(%K)abs(----)d%K +-- ++ %K +-- Type: Union(Expression Integer,...) + +in166:=integrate((1+z)^z, z) +-- +-- z +-- ++ %K +-- | (%K + 1) d%K +-- ++ +-- Type: Union(Expression Integer,...) + +in179:=integrate(1/(1+(3*z+1)^2), z) +-- +-- atan(3z + 1) +-- ------------ +-- 3 +-- Type: Union(Expression Integer,...) + +in1636a:=integrate(-z/(z-1)/(1/(z-I))^(1/2), z= 0..1,"noPole") +-- +-- [ + infinity, +-- +-- +-------+ +---+ +-- +-----+ \|- I + 1 +-----+ \|- I +-- 6\|I - 1 log(- ----------) - 6\|I - 1 atan(--------) +-- +-----+ +-----+ +-- 2\|I - 1 \|I - 1 +-- + +-- +-------+ +---+ +-- (2I - 8)\|- I + 1 + (- 2I + 6)\|- I +-- / +-- 3 +-- ] +-- Type: Union(f2: List OrderedCompletion Expression Integer,...) +-- + +in1638a:=integrate(-z/(z-1)/(1-I*z)^(1/2), z= 0..1,"noPole") +-- +-- [ + infinity, +-- +-- +-------+ +-----+ +-----+ +-- \|- I + 1 \|I - 1 \|I - 1 +-- - 2I log(- ------------------) + 2I atan(--------) +-- 2I - 2 I - 1 +-- + +-- +-------+ +-----+ +-- (2\|- I + 1 - 2)\|I - 1 +-- / +-- +-----+ +-- I\|I - 1 +-- ] +-- Type: Union(f2: List OrderedCompletion Expression Integer,...) + +in1639a:=integrate(-z/(z-1)/(1-I*z^2)^(1/2), z= 0..1,"noPole") +-- +-- [ + infinity, +-- +-- +-----+ +-- \|I - 1 +-- * +-- log +-- 2 +---+ 2 +-------+ 2 +---+ +-- ((2I - 4I)\|- I + 4I - 2I)\|- I + 1 + (- 4I + 4I)\|- I +-- + +-- 3 2 +-- 2I - 5I + 2I +-- / +-- +-------+ +-- 2\|- I + 1 + I - 2 +-- + +-- +-------+ +-----+ +-----+ +-- +---+ (- \|- I + 1 - I + 1)\|I - 1 +---+ \|I - 1 +-- 4\|- I log(------------------------------) + 4\|- I atan(--------) +-- +-------+ I - 1 +-- (2I - 2)\|- I + 1 - 2I + 2 +-- + +-- +-----+ +-- - log(- I)\|I - 1 +-- / +-- +---+ +-----+ +-- 2\|- I \|I - 1 +-- , +-- + infinity, +-- +-- +-------+ +-----+ +-- +-+ (- \|- I + 1 - I + 1)\|I - 1 +-- 2\|I log(------------------------------) +-- +-------+ +-- (2I - 2)\|- I + 1 - 2I + 2 +-- + +-- +-------+ +-+ +-----+ +-- +-----+ (\|- I + 1 - 1)\|I +-+ \|I - 1 +-- 2\|I - 1 atan(--------------------) + 2\|I atan(--------) +-- I I - 1 +-- / +-- +-----+ +-+ +-- \|I - 1 \|I +-- ] +-- Type: Union(f2: List OrderedCompletion Expression Integer,...) + +in1712a:=integrate(-log(-z)*(-I*z)^(1/2), z= 0..1,"noPole") +-- +-- +---+ +-- 4\|- I +-- ------- +-- 9 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1720a:=integrate(-z^2/(z^2-1)*(1/(z-I))^(1/2), z= 0..1,"noPole") +-- +-- [ + infinity, +-- +-- +-----+ 2 +-------+ +---+ 3 2 +-- - \|I - 1 log((- 8I - 12I - 4)\|- I - 1 \|- I - 8I - 16I - 9I - 1) +-- + +-- +-----+ 2 +-------+ +-------+ 3 2 +-- \|I - 1 log((- 2I - 2I)\|- I - 1 \|- I + 1 - 2I - 2I + I + 1) +-- + +-- +-------+ +-----+ +-- +-------+ \|- I + 1 \|I - 1 +-- - 4\|- I - 1 log(- ------------------) +-- 2I - 2 +-- + +-- +---+ +-----+ +-- +-------+ \|- I \|I - 1 +-- 4\|- I - 1 atan(--------------) +-- I - 1 +-- + +-- +-------+ +-------+ +-------+ +---+ +-----+ +-- (- 8\|- I - 1 \|- I + 1 + 8\|- I - 1 \|- I )\|I - 1 +-- / +-- +-------+ +-----+ +-- 4\|- I - 1 \|I - 1 +-- , +-- + infinity, +-- +-- +-------+ +-----+ +-------+ +-----+ +-- +-----+ \|- I + 1 \|I - 1 +-----+ \|- I + 1 \|I + 1 +-- - \|I + 1 log(- ------------------) + \|I - 1 atan(------------------) +-- 2I - 2 I + 1 +-- + +-- +---+ +-----+ +---+ +-----+ +-- +-----+ \|- I \|I + 1 +-----+ \|- I \|I - 1 +-- - \|I - 1 atan(--------------) + \|I + 1 atan(--------------) +-- I + 1 I - 1 +-- + +-- +-------+ +---+ +-----+ +-----+ +-- (- 2\|- I + 1 + 2\|- I )\|I - 1 \|I + 1 +-- / +-- +-----+ +-----+ +-- \|I - 1 \|I + 1 +-- ] +-- Type: Union(f2: List OrderedCompletion Expression Integer,...) + +in1721a:=integrate(-z^2/(z^2-1)/(1/(z-I))^(1/2), z= 0..1,"noPole") +-- +-- [ + infinity, + infinity, +-- +-- +-------+ +-------+ +-------+ 2 +-- 3\|- I - 1 log(2I\|- I - 1 \|- I + 1 + 2I - 1) +-- + +-- +-------+ +-------+ +---+ 2 +-- - 3\|- I - 1 log((8I + 4)\|- I - 1 \|- I + 8I + 8I + 1) +-- + +-- +-------+ +---+ +-- +-----+ \|- I + 1 +-----+ \|- I +-- 12\|I - 1 log(- ----------) - 12\|I - 1 atan(--------) +-- +-----+ +-----+ +-- 2\|I - 1 \|I - 1 +-- + +-- +-------+ +---+ +-- (8I - 8)\|- I + 1 - 8I\|- I +-- / +-- 12 +-- , +-- +-- +-------+ +---+ +-- +-----+ \|- I + 1 +-----+ \|- I +-- 3\|I - 1 log(- ----------) - 3\|I - 1 atan(--------) +-- +-----+ +-----+ +-- 2\|I - 1 \|I - 1 +-- + +-- +-------+ +---+ +-- +-----+ \|- I + 1 +-----+ \|- I +-- - 3\|I + 1 atan(----------) + 3\|I + 1 atan(--------) +-- +-----+ +-----+ +-- \|I + 1 \|I + 1 +-- + +-- +-------+ +---+ +-- (2I - 2)\|- I + 1 - 2I\|- I +-- / +-- 3 +-- ] +-- Type: Union(f2: List OrderedCompletion Expression Integer,...) + +in1723a:=integrate(-z^2/(z^2-1)*(1+I/z)^(1/2), z= 0..1,"noPole") +-- +-- [ + infinity, + infinity, +-- +-- +-----+ +-- +-----+ +-+ +-------+ \|I + 1 +-- - 2I log(\|I + 1 + 1) + 2I log(\|I ) + 4\|- I - 1 log(- -----------) +-- +-------+ +-- 2\|- I - 1 +-- + +-- +-----+ +-- I log(- 2\|I + 1 + I + 2) +-- + +-- +-------+ +-------+ +-----+ 2 +-----+ +-- \|- I + 1 log(- 2\|- I + 1 \|I + 1 - I + 2) - 4\|I + 1 +-- + +-- 2 +-------+ +-------+ +-- - log(I )\|- I + 1 - 2%pi\|- I - 1 - I log(I) +-- / +-- 4 +-- , +-- +-- +-----+ +-- +-----+ +-+ +-------+ \|I + 1 +-- - 2I log(\|I + 1 + 1) + 2I log(\|I ) + 4\|- I - 1 log(- -----------) +-- +-------+ +-- 2\|- I - 1 +-- + +-- +-----+ +-- +-----+ +-----+ \|I - 1 +-----+ +-- I log(- 2\|I + 1 + I + 2) + 4\|I - 1 atan(--------) - 4\|I + 1 +-- +-----+ +-- \|I + 1 +-- + +-- +-------+ +-- - 2%pi\|- I - 1 - I log(I) +-- / +-- 4 +-- ] +-- Type: Union(f2: List OrderedCompletion Expression Integer,...) + +in1724a:=integrate(-z^2/(z^2-1)*(1-(I*z)^(1/2))^(1/2), z= 0..1,"noPole") +-- +-- +----------+ +-- +-+ | +-+ +-- (4\|I - 12I + 8)\|- \|I + 1 - 8 +-- ---------------------------------- +-- 15I +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1731:=integrate(-log(1-z^2)*atanh(z), z= 0..1) +-- +-- 2 +-- - log(4) + 4log(4) +-- ------------------- +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1793a:=integrate((1-z^(1/2))^(1/2)*acoth(z^(1/2)), z= 0..1,"noPole") +-- +-- +-+ +-+ +-- - 2\|2 log(12\|2 + 17) + 16 +-- ---------------------------- +-- 15 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1794a:=integrate((1-z^(1/2))^(1/2)*acoth(1-z^(1/2)), z= 0..1,"noPole") +-- +-- - 4log(2) - 8%pi + 32 +-- --------------------- +-- 15 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1796a:=integrate((1+(1-z)^(1/2))^(1/2), z= 0..1,"noPole") +-- +-- +-+ +-- 8\|2 + 8 +-- --------- +-- 15 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in183:=integrate(1/z, z= I..2*I) +-- +-- 2 2 +-- log(4I ) - log(I ) +-- ------------------ +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + + +in184:=integrate(exp(I*z), z= I..2*I) +-- +-- 2 2 +-- 2I I +-- %e - %e +-- (29) ------------ +-- I +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in184a:=integrate(exp(%i*z), z= %i..2*%i) +-- +-- 2 +-- %i %e - %i %e +-- (30) -------------- +-- 2 +-- %e %e +-- Type: Union(f1: OrderedCompletion Expression Complex Integer,...) + +in187a:=integrate(2^log(z), z= -I..I,"noPole") +-- +-- log(2)log(I) log(2)log(- I) +-- I %e + I %e +-- ------------------------------------- +-- log(2) + 1 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in187a:=integrate(2^log(z), z= -%i..%i,"noPole") +-- +-- log(%i)log(2) log(- %i)log(2) +-- %i %e + %i %e +-- ----------------------------------------- +-- log(2) + 1 +-- Type: Union(f1: OrderedCompletion Expression Complex Integer,...) + +in194a:=integrate(sqrt(z^2), z= 1..2,"noPole") +-- +-- 3 +-- (43) - +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1854a:=integrate(1/(z-1)/(1/(z-I))^(1/2), z= 0..1,"noPole") +-- +-- [- infinity, +-- +-- +-------+ +---+ +-- +-----+ \|- I + 1 +-----+ \|- I +-------+ +-- - 2\|I - 1 log(- ----------) + 2\|I - 1 atan(--------) + 2\|- I + 1 +-- +-----+ +-----+ +-- 2\|I - 1 \|I - 1 +-- + +-- +---+ +-- - 2\|- I +-- ] +-- Type: Union(f2: List OrderedCompletion Expression Integer,...) + +in1856a:=integrate(1/(z-1)/(1-I*z)^(1/2), z= 0..1,"noPole") +-- +-- +-------+ +-----+ +-----+ +-- \|- I + 1 \|I - 1 \|I - 1 +-- 2log(- ------------------) - 2atan(--------) +-- 2I - 2 I - 1 +-- [- infinity,--------------------------------------------] +-- +-----+ +-- \|I - 1 +-- Type: Union(f2: List OrderedCompletion Expression Integer,...) + +in1859a:=integrate(1/(z^2-1)*(1+1/z^3)^(1/2), z= 0..1,"noPole") +-- +-- +-------------------+ +-- | 2 +-- (- \|- 3%%EM0 - 2 + 6%i - %%EM0) +-- * +-- log +-- +--+ +--+ +-- ((8 + 72%i)\|%i + 10 + 8%i)%%EM0 + (- 2 - 18%i)\|%i + 2 +-- + +-- 18%i +-- * +-- +-------------------+ +-- | 2 +-- \|- 3%%EM0 - 2 + 6%i +-- + +-- +--+ 2 +-- ((- 8 - 72%i)\|%i - 10 - 8%i)%%EM0 +-- + +-- +--+ +--+ +-- ((- 2 - 18%i)\|%i + 2 + 18%i)%%EM0 + (- 128 - 4%i)\|%i - 68 +-- + +-- - 120%i +-- + +-- +-------------------+ +-- | 2 +-- (\|- 3%%EM0 - 2 + 6%i + %%EM0) +-- * +-- log +-- +-------------------+ +-- | 2 +-- ((10 + 8%i)%%EM0 + 2 + 18%i)\|- 3%%EM0 - 2 + 6%i +-- + +-- 2 +-- (- 10 - 8%i)%%EM0 + (2 + 18%i)%%EM0 - 50 - 40%i +-- + +-- +-------------------+ +-- | 2 +-- (- \|- 3%%EM0 - 2 + 6%i + %%EM0) +-- * +-- log +-- +-------------------+ +-- | 2 +-- ((- 10 - 8%i)%%EM0 - 2 - 18%i)\|- 3%%EM0 - 2 + 6%i +-- + +-- 2 +-- (- 10 - 8%i)%%EM0 + (2 + 18%i)%%EM0 - 50 - 40%i +-- + +-- +-------------------+ +-- | 2 +-- (\|- 3%%EM0 - 2 + 6%i - %%EM0) +-- * +-- log +-- +--+ +--+ +-- ((- 8 - 72%i)\|%i - 10 - 8%i)%%EM0 + (2 + 18%i)\|%i - 2 +-- + +-- - 18%i +-- * +-- +-------------------+ +-- | 2 +-- \|- 3%%EM0 - 2 + 6%i +-- + +-- +--+ 2 +-- ((- 8 - 72%i)\|%i - 10 - 8%i)%%EM0 +-- + +-- +--+ +--+ +-- ((- 2 - 18%i)\|%i + 2 + 18%i)%%EM0 + (- 128 - 4%i)\|%i - 68 +-- + +-- - 120%i +-- + +-- 2%%EM0 +-- * +-- log +-- +--+ 2 +-- ((72 - 8%i)\|%i + 8 - 10%i)%%EM0 +-- + +-- +--+ +--+ +-- ((18 - 2%i)\|%i - 18 + 2%i)%%EM0 + (22 - 48%i)\|%i - 71 + 17%i +-- + +-- 2 +-- - 2%%EM0 log((8 - 10%i)%%EM0 + (- 18 + 2%i)%%EM0 - 31 + 8%i) +-- / +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Complex Integer,...) + +in1863a:=integrate(1/(z^2-1)*(1/(z-I))^(1/2), z= 0..1,"noPole") +-- [- infinity, +-- +-- +-----+ 2 +-------+ +-------+ 3 2 +-- \|I - 1 log((2I + 2I)\|- I - 1 \|- I + 1 - 2I - 2I + I + 1) +-- + +-- +-----+ 2 +-------+ +---+ 3 2 +-- - \|I - 1 log((8I + 12I + 4)\|- I - 1 \|- I - 8I - 16I - 9I - 1) +-- + +-- +-------+ +-----+ +---+ +-----+ +-- +-------+ \|- I + 1 \|I - 1 +-------+ \|- I \|I - 1 +-- 4\|- I - 1 log(- ------------------) - 4\|- I - 1 atan(--------------) +-- 2I - 2 I - 1 +-- / +-- +-------+ +-----+ +-- 4\|- I - 1 \|I - 1 +-- , +-- - infinity, +-- +-- +-------+ +-----+ +-------+ +-----+ +-- +-----+ \|- I + 1 \|I - 1 +-----+ \|- I + 1 \|I + 1 +-- \|I + 1 log(- ------------------) - \|I - 1 atan(------------------) +-- 2I - 2 I + 1 +-- + +-- +---+ +-----+ +---+ +-----+ +-- +-----+ \|- I \|I + 1 +-----+ \|- I \|I - 1 +-- \|I - 1 atan(--------------) - \|I + 1 atan(--------------) +-- I + 1 I - 1 +-- / +-- +-----+ +-----+ +-- \|I - 1 \|I + 1 +-- ] +-- Type: Union(f2: List OrderedCompletion Expression Integer,...) + +in1864a:=integrate(1/(z^2-1)*((1+z)/(z-1))^(1/3), z= 0..1,"noPole") +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1866a:=integrate(1/(z^2-1)*(1-I/z)^(1/2), z= 0..1,"noPole") +-- [- infinity, +-- +-- +-----+ +-- +-----+ +-------+ +-----+ 2 +-----+ \|I - 1 +-- \|I + 1 log(2\|- I + 1 \|I + 1 - I + 2) + 4\|I - 1 log(- -----------) +-- +-------+ +-- 2\|- I + 1 +-- + +-- 2 +-----+ +-- - log(I )\|I + 1 +-- / +-- 4 +-- , +-- - infinity, +-- +-----+ +-------+ +-- +-----+ \|I - 1 +-------+ \|- I + 1 +-------+ +-- 2\|I - 1 log(- -----------) + 2\|- I - 1 atan(----------) - %pi\|- I - 1 +-- +-------+ +-------+ +-- 2\|- I + 1 \|- I - 1 +-- -------------------------------------------------------------------------] +-- 2 +-- Type: Union(f2: List OrderedCompletion Expression Integer,...) + +in1867a:=integrate(1/(z^2-1)*(1-(I*z)^(1/2))^(1/2), z= 0..1,"noPole") +-- 0 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1869a:=integrate(1/(z^2-1)*(1-1/(I*z)^(1/2))^(1/2), z= 0..1,"noPole") +-- 0 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1870a:=integrate(1/(z^2-1)/(1+(I*z)^(1/2))^(1/2), z= 0..1,"noPole") +-- 0 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1872a:=integrate(1/(z^2-1)/(I/(z+I))^(1/2), z= 0..1,"noPole") +-- +-- [ + infinity, + infinity, +-- +-- +-----+ +-----+ +-----+ +-- |I - 1 2 |I - 1 | I 2 +-- |----- log((2I + 2I) |----- |----- + 2I - 1) +-- \| I \| I \|I + 1 +-- + +-- +-----+ +-----+ +-- |I - 1 2 |I - 1 2 +-- - |----- log((8I - 4I) |----- + 8I - 8I + 1) +-- \| I \| I +-- + +-- +-----+ +-- | I +-- +-------+ (- I - 1) |----- +-------+ +-- |- I - 1 \|I + 1 |- I - 1 I + 1 +-- - 4 |------- log(----------------- + 4 |------- atan(-----------) +-- \| I +-------+ \| I +-------+ +-- |- I - 1 |- I - 1 +-- 2I |------- I |------- +-- \| I \| I +-- / +-- 4 +-- , +-- +-- +-----+ +-----+ +-- | I | I +-- +-------+ (- I - 1) |----- +-------+ (I - 1) |----- +-- |- I - 1 \|I + 1 |- I + 1 \|I + 1 +-- - |------- log(-----------------) + |------- atan(---------------) +-- \| I +-------+ \| I +-------+ +-- |- I - 1 |- I + 1 +-- 2I |------- I |------- +-- \| I \| I +-- + +-- +-------+ +-------+ +-- |- I - 1 I + 1 |- I + 1 I - 1 +-- |------- atan(-----------) - |------- atan(-----------) +-- \| I +-------+ \| I +-------+ +-- |- I - 1 |- I + 1 +-- I |------- I |------- +-- \| I \| I +-- ] +-- Type: Union(f2: List OrderedCompletion Expression Integer,...) + +in1933a:=integrate(atan(z)/z/(z*(1+z))^(1/2), z= 0..1,"noPole") +-- +-- +-+ 4+-+ %pi +-- (\|2 - 1)\|2 cos(---) +-- 8 +-- * +-- 4+-+2 %pi 2 4+-+3 4+-+ %pi 4+-+2 +-- log(4\|2 sin(---) + (4\|2 + 4\|2 )sin(---) + 2\|2 + 3) +-- 8 8 +-- + +-- +-+ 4+-+ %pi +-- (- \|2 + 1)\|2 cos(---) +-- 8 +-- * +-- 4+-+2 %pi 2 4+-+3 4+-+ %pi 4+-+2 +-- log(4\|2 sin(---) + (- 4\|2 - 4\|2 )sin(---) + 2\|2 + 3) +-- 8 8 +-- + +-- +-+ 4+-+ %pi +-- (- \|2 + 1)\|2 cos(---) +-- 8 +-- * +-- log +-- 4+-+2 %pi 2 +-- 4\|2 sin(---) +-- 8 +-- + +-- +-+ 4+-+2 %pi 4+-+3 +-+ 4+-+ %pi +-- ((- 8\|2 + 8)\|2 cos(---) + 4\|2 + (- 8\|2 + 16)\|2 )sin(---) +-- 8 8 +-- + +-- +-+ 4+-+2 %pi 2 +-- (- 8\|2 + 12)\|2 cos(---) +-- 8 +-- + +-- +-+ 4+-+3 +-+ 4+-+ %pi +-- ((- 4\|2 + 4)\|2 + (- 24\|2 + 32)\|2 )cos(---) +-- 8 +-- + +-- +-+ 4+-+2 +-+ +-- (- 4\|2 + 8)\|2 - 16\|2 + 26 +-- + +-- +-+ 4+-+ %pi +-- (\|2 - 1)\|2 cos(---) +-- 8 +-- * +-- log +-- 4+-+2 %pi 2 +-- 4\|2 sin(---) +-- 8 +-- + +-- +-+ 4+-+2 %pi 4+-+3 +-+ 4+-+ %pi +-- ((- 8\|2 + 8)\|2 cos(---) - 4\|2 + (8\|2 - 16)\|2 )sin(---) +-- 8 8 +-- + +-- +-+ 4+-+2 %pi 2 +-- (- 8\|2 + 12)\|2 cos(---) +-- 8 +-- + +-- +-+ 4+-+3 +-+ 4+-+ %pi +-- ((4\|2 - 4)\|2 + (24\|2 - 32)\|2 )cos(---) +-- 8 +-- + +-- +-+ 4+-+2 +-+ +-- (- 4\|2 + 8)\|2 - 16\|2 + 26 +-- + +-- 4+-+ %pi +-- \|2 sin(---) + 1 +-- +-+ 4+-+ %pi 8 +-- (4\|2 - 4)\|2 sin(---)atan(-----------------------) +-- 8 4+-+ %pi +-+ +-- \|2 cos(---) - \|2 + 1 +-- 8 +-- + +-- 4+-+ %pi +-- \|2 sin(---) + 1 +-- +-+ 4+-+ %pi 8 +-- (- 4\|2 + 4)\|2 sin(---)atan(----------------) +-- 8 4+-+ %pi +-- \|2 cos(---) +-- 8 +-- + +-- 4+-+ %pi +-- \|2 sin(---) - 1 +-- +-+ 4+-+ %pi 8 +-- (4\|2 - 4)\|2 sin(---)atan(----------------) +-- 8 4+-+ %pi +-- \|2 cos(---) +-- 8 +-- + +-- 4+-+ %pi +-- \|2 sin(---) - 1 +-- +-+ 4+-+ %pi 8 +-+ +-- (- 4\|2 + 4)\|2 sin(---)atan(-----------------------) + %pi\|2 - 2%pi +-- 8 4+-+ %pi +-+ +-- \|2 cos(---) + \|2 - 1 +-- 8 +-- / +-- +-+ +-- 2\|2 - 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1945a:=integrate(acoth((1-z)/(1+z)), z= 0..1,"noPole") +-- +-- 1 +-- - +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1946a:=integrate(acoth((1-z)/(1+z))*z, z= 0..1,"noPole") +-- +-- 1 +-- - +-- 8 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1947a:=integrate(acoth((1-z)/(1+z))*z^(1/2), z= 0..1,"noPole") +-- +-- 2 +-- - +-- 9 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1950a:=integrate(acoth((1-z)/(1+z))/(1-z)^(1/2), z= 0..1,"noPole") +-- +-- - log(4) - 2log(2) + 4 +-- ---------------------- +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1952a:=integrate(acoth((1-z)/(1+z))*(I*z)^(1/2), z= 0..1,"noPole") +-- +-- +-+ +-- 2\|I +-- ----- +-- 9 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in1954a:=integrate(acoth((1-z)/(1+z))/(I*z)^(1/2), z= 0..1,"noPole") +-- +-- +-+ +-- 2\|I +-- ----- +-- I +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in202a:=integrate(acsc(z), z= 0..1/2,"noPole") +-- +-- +-+ +-+ +-- +-+ 2\|2 \|3 +-+ +-- - 6\|2 atan(---------) - 3atan(4\|3 ) + 2%pi +-- 5 +-- -------------------------------------------- +-- 12 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in206a:=integrate(sqrt(1-1/z), z= %pi..2*%pi,"noPole") +-- +-- +--------+ +-------+ +-- |2%pi - 1 |%pi - 1 +-- - 2log( |-------- + 1) + 2log( |------- + 1) +-- \| 2%pi \| %pi +-- + +-- +-------+ +--------+ +-- |%pi - 1 |2%pi - 1 +-- - 2%pi |------- + 2%pi - 1 - 4%pi |-------- + 4%pi - 1 +-- \| %pi \| 2%pi +-- - log(---------------------------) + log(----------------------------) +-- %pi 2%pi +-- + +-- +--------+ +-------+ +-- |2%pi - 1 |%pi - 1 +-- 8%pi |-------- - 4%pi |------- +-- \| 2%pi \| %pi +-- / +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in211:=integrate(acos(sin(2*z))*cos(z), z= 0..4*%pi/3) +-- +-- +-+ +-- 13%pi\|3 + 36 +-- -------------- +-- 12 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in213a:=integrate(log(abs(1+1/(-z)^(1/3))), z= 0..1,"noPole") +-- +-- 3+---+2 3+---+ +-- 3+---+2 3+---+ \|- 1 + 2\|- 1 + 1 3+---+2 3+---+ +-- - log(\|- 1 + 2\|- 1 + 1) + log(---------------------) - \|- 1 + 2\|- 1 +-- 3+---+2 +-- \|- 1 +-- ---------------------------------------------------------------------------- +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in216a:=integrate(1/(1/z-1)^(1/3), z= 0..1,"noPole") +-- +-- 2%pi +-- ----- +-- +-+ +-- 3\|3 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2023a:=integrate((1-z)/(-1+z^(1/2)), z= 1..2,"noPole") +-- +-- +-+ +-- - 4\|2 - 1 +-- (33) ----------- +-- 3 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2024a:=integrate(log(1-1/z)+csc(z-1), z= 0..1,"noPole") +-- +-- (32) - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2032a:=integrate(acoth(z)/z^(1/2), z= 0..1,"noPole") +-- +-- - 2log(2) + %pi +-- (30) --------------- +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2040a:=integrate(log(1-1/z^4)+cot(z), z= -1..1,"noPole") +-- +-- (24) log(16) + log(4) + %pi +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2050a:=integrate(-csc(z-1)-1/z^(1/3), z= -1..1,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2051a:=integrate((z^2+I*z-1)^(1/2)*z, z= -1..1,"noPole") +-- +-- 7 5 3 +---+ 8 7 6 +-- (108I - 1776I - 7104I + 6912I)\|- I - 18I + 228I + 936I +-- + +-- 5 4 3 2 +-- - 1104I + 2208I - 7488I - 7296I + 2304I +-- * +-- +-+ +-- \|I +-- + +-- 8 7 6 5 4 3 2 +-- - 18I - 228I + 936I + 1104I + 2208I + 7488I - 7296I +-- + +-- - 2304I +-- * +-- +---+ +-- \|- I +-- + +-- 9 7 3 +-- 3I - 744I + 11904I - 768I +-- * +-- +---+ 2 +-- log((- 4I + 8)\|- I + I - 8I + 4) +-- + +-- 7 5 3 +---+ 8 7 6 +-- (- 108I + 1776I + 7104I - 6912I)\|- I + 18I - 228I - 936I +-- + +-- 5 4 3 2 +-- 1104I - 2208I + 7488I + 7296I - 2304I +-- * +-- +-+ +-- \|I +-- + +-- 8 7 6 5 4 3 2 +-- (18I + 228I - 936I - 1104I - 2208I - 7488I + 7296I + 2304I) +-- * +-- +---+ +-- \|- I +-- + +-- 9 7 3 +-- - 3I + 744I - 11904I + 768I +-- * +-- +-+ 2 +-- log((- 4I - 8)\|I + I + 8I + 4) +-- + +-- 6 4 2 +---+ 8 7 6 5 +-- (1728I - 10752I - 5120I )\|- I - 12I - 424I + 2736I + 6816I +-- + +-- 4 3 2 +-- - 6208I + 1152I - 3840I - 512I +-- * +-- +-+ +-- \|I +-- + +-- 8 7 6 5 4 3 2 +---+ +-- (12I - 424I - 2736I + 6816I + 6208I + 1152I + 3840I - 512I)\|- I +-- + +-- 8 6 4 2 +-- 144I - 6848I + 3840I + 3072I +-- / +-- 4 2 +---+ 5 4 3 2 +-- (3456I - 70656I + 55296)\|- I - 576I + 7296I + 32256I - 64512I +-- + +-- - 58368I + 18432 +-- * +-- +-+ +-- \|I +-- + +-- 5 4 3 2 +---+ 6 +-- (- 576I - 7296I + 32256I + 64512I - 58368I - 18432)\|- I + 96I +-- + +-- 4 2 +-- - 24192I + 96768I - 6144 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2053a:=integrate(atan(2*z-1), z= 0..infinity,"noPole") +-- +-- 4 3 2 +-- - log(4infinity - 8infinity + 8infinity - 4infinity + 1) +-- + +-- 2infinity - 1 +-- (- 4infinity + 2)atan(----------------------) - %pi +-- 2 +-- 2infinity - 2infinity +-- / +-- 8 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2054:=integrate(atan(1/z^(1/2))+1, z= -1..1) +-- +-- 4 3 2 +-- - log(4infinity - 8infinity + 8infinity - 4infinity + 1) +-- + +-- 2infinity - 1 +-- (- 4infinity + 2)atan(----------------------) - %pi +-- 2 +-- 2infinity - 2infinity +-- / +-- 8 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2056a:=integrate(z^(1/2)-acoth(1-z), z= 0..1,"noPole") +-- +-- - 3log(4) + 4 +-- ------------- +-- 6 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2058a:=integrate((z^2+I*z-3)^(1/2)+z, z= -1..1,"noPole") +-- +-- 4 2 +-------+ 5 4 3 2 +-- (- 16I - 128I + 768)\|- I - 2 + 4I - 24I - 32I - 320I +-- + +-- - 960I - 384 +-- * +-- +-----+ +-- \|I - 2 +-- + +-- 5 4 3 2 +-------+ 6 4 +-- (4I + 24I - 32I + 320I - 960I + 384)\|- I - 2 - I + 60I +-- + +-- 2 +-- 848I - 192 +-- * +-- +-------+ 2 +-- log((- 4I + 8)\|- I - 2 + I - 8I - 4) +-- + +-- 4 2 +-------+ 5 4 3 2 +-- (16I + 128I - 768)\|- I - 2 - 4I + 24I + 32I + 320I + 960I +-- + +-- 384 +-- * +-- +-----+ +-- \|I - 2 +-- + +-- 5 4 3 2 +-------+ 6 4 +-- (- 4I - 24I + 32I - 320I + 960I - 384)\|- I - 2 + I - 60I +-- + +-- 2 +-- - 848I + 192 +-- * +-- +-----+ 2 +-- log((- 4I - 8)\|I - 2 + I + 8I - 4) +-- + +-- 3 +-------+ 5 4 3 2 +-- (- 256I + 1024I)\|- I - 2 + 4I + 72I - 288I - 1088I + 64I +-- + +-- 1152 +-- * +-- +-----+ +-- \|I - 2 +-- + +-- 5 4 3 2 +-------+ 5 3 +-- (- 4I + 72I + 288I - 1088I - 64I + 1152)\|- I - 2 - 32I + 768I +-- + +-- - 2560I +-- / +-- 2 +-------+ 3 2 +-----+ +-- ((256I - 1024)\|- I - 2 - 64I + 384I + 1280I + 512)\|I - 2 +-- + +-- 3 2 +-------+ 4 2 +-- (- 64I - 384I + 1280I - 512)\|- I - 2 + 16I - 1152I + 256 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2068a:=integrate(1/(I*z)^(1/2)-csch(z), z= 0..1,"noPole") +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2071a:=integrate(1/(3+z)^3*acoth(z), z= -1..1,"noPole") +-- +-- - 3log(16) + 3log(4) - 2 +-- ------------------------ +-- 128 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2090a:=integrate(exp(z^(1/3))*(3+z)^9, z= -1..1,"noPole") +-- +-- 3+---+2 +-- 13467752003249079711273325865856\|- 1 +-- + +-- 3+---+ +-- - 27601768453337700619258203429120\|- 1 +-- + +-- 30944953633416008247597858726912 +-- * +-- 3+---+ +-- \|- 1 +-- %e +-- + +-- - 9746099248106233432776547720320%e +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2094a:=integrate(asinh(z)-acoth(z), z= -1..1,"noPole") +-- +-- +-+ +-+ +-- log(2\|2 + 3) + log(- 2\|2 + 3) +-- --------------------------------- +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2096a:=integrate(log(z)^2, z= %minusInfinity..%plusInfinity,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2098a:=integrate(1/z^(1/3)-z^2/(z-1)^2, z= -1..1,"noPole") +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2105a:=integrate(-1/(z^2-I*z+2)^(1/2)/z, z= 0..1,"noPole") +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2106a:=integrate(acos(z)+acoth(1-z), z= 0..1,"noPole") +-- +-- log(4) + 2 +-- ---------- +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2108a:=integrate((1-I/(1+I/z)^2)^(1/2), z= -1..1,"noPole") +-- +--[ +-- +-----------+ +----------+ +-- 2 | 2 3 2 | 2 +-- (I \|I - 3I + 1 - I + I )\|I + I + 1 +-- + +-- +-----------+ +-- 3 2 | 2 4 2 +-- (- I - I )\|I - 3I + 1 + I - I +-- * +-- log +-- 3 2 +-------+ 4 3 2 +-- ((4I - 4I + 2I - 2)\|- I + 1 - 2I + 4I - 6I + 4I) +-- * +-- +----------+ +-- | 2 +-- \|I + I + 1 +-- + +-- 4 3 2 +-------+ 5 4 3 2 +-- (- 4I + 2I - 2I + 4I)\|- I + 1 + 2I - 3I + 5I - 4I +-- + +-- 2I - 2 +-- / +-- +----------+ +-- | 2 2 +-- (2I + 2)\|I + I + 1 - 2I - 3I - 2 +-- + +-- +-----------+ +-- +---+ +-------+ | 2 2 +---+ +-------+ +-- (- I\|- I \|- I + 1 \|I - 3I + 1 + (I - I)\|- I \|- I + 1 ) +-- * +-- +----------+ +-- | 2 +-- \|I + I + 1 +-- + +-- +-----------+ +-- 2 +---+ +-------+ | 2 3 +---+ +-------+ +-- (I + I)\|- I \|- I + 1 \|I - 3I + 1 + (- I + I)\|- I \|- I + 1 +-- * +-- log +-- +-----------+ +-- 2 +---+ 3 2 | 2 +-- ((4I - 10I + 4)\|- I + 2I - 10I + 10I - 2)\|I - 3I + 1 +-- + +-- 3 2 +---+ 4 3 2 +-- (- 4I + 16I - 16I + 4)\|- I - 2I + 13I - 24I + 13I - 2 +-- / +-- +-----------+ +-- 3 2 | 2 4 3 2 +-- (2I - 6I + 6I - 2)\|I - 3I + 1 - 2I + 9I - 14I + 9I - 2 +-- + +-- +-----------+ +-- +---+ +-------+ | 2 2 +---+ +-------+ +-- (I\|- I \|- I + 1 \|I - 3I + 1 + (- I + I)\|- I \|- I + 1 ) +-- * +-- +----------+ +-- | 2 +-- \|I + I + 1 +-- + +-- +-----------+ +-- 2 +---+ +-------+ | 2 3 +---+ +-------+ +-- (- I - I)\|- I \|- I + 1 \|I - 3I + 1 + (I - I)\|- I \|- I + 1 +-- * +-- log +-- +----------+ +-- 2 +---+ 3 2 | 2 +-- ((- 4I - 6I - 4)\|- I + 2I + 2I + 2I + 2)\|I + I + 1 +-- + +-- 3 2 +---+ 4 3 2 +-- (4I + 8I + 8I + 4)\|- I - 2I - 3I - 4I - 3I - 2 +-- / +-- +----------+ +-- 3 2 | 2 4 3 2 +-- (2I + 6I + 6I + 2)\|I + I + 1 - 2I - 7I - 10I - 7I - 2 +-- + +-- +-----------+ +----------+ +-- 2 | 2 3 2 | 2 +-- (- I \|I - 3I + 1 + I - I )\|I + I + 1 +-- + +-- +-----------+ +-- 3 2 | 2 4 2 +-- (I + I )\|I - 3I + 1 - I + I +-- * +-- log +-- 3 2 +-------+ 4 3 2 +-- ((- 4I + 8I - 6I + 2)\|- I + 1 - 2I + 8I - 10I + 4I) +-- * +-- +-----------+ +-- | 2 +-- \|I - 3I + 1 +-- + +-- 4 3 2 +-------+ 5 4 3 2 +-- (4I - 14I + 14I - 4I)\|- I + 1 + 2I - 11I + 21I - 20I +-- + +-- 10I - 2 +-- / +-- +-----------+ +-- | 2 2 +-- (2I - 2)\|I - 3I + 1 - 2I + 5I - 2 +-- + +-- +-----------+ +----------+ +-- +-------+ | 2 +-------+ | 2 +-- (- 4\|- I + 1 \|I - 3I + 1 + (6I - 4)\|- I + 1 )\|I + I + 1 +-- + +-- +-----------+ +-- +-------+ | 2 2 +-------+ +-- (2I + 4)\|- I + 1 \|I - 3I + 1 + (- 4I - 4I + 4)\|- I + 1 +-- / +-- +-----------+ +----------+ +-- +-------+ | 2 +-------+ | 2 +-- (2\|- I + 1 \|I - 3I + 1 + (- 2I + 2)\|- I + 1 )\|I + I + 1 +-- + +-- +-----------+ +-- +-------+ | 2 2 +-------+ +-- (- 2I - 2)\|- I + 1 \|I - 3I + 1 + (2I - 2)\|- I + 1 +-- , +-- +-- +-----------+ +-- +---+ +-----+ | 2 2 +---+ +-----+ +-- (- I\|- I \|I - 1 \|I - 3I + 1 + (I - I)\|- I \|I - 1 ) +-- * +-- +----------+ +-- | 2 +-- \|I + I + 1 +-- + +-- +-----------+ +-- 2 +---+ +-----+ | 2 3 +---+ +-----+ +-- (I + I)\|- I \|I - 1 \|I - 3I + 1 + (- I + I)\|- I \|I - 1 +-- * +-- log +-- +-----------+ +-- 2 +---+ 3 2 | 2 +-- ((4I - 10I + 4)\|- I + 2I - 10I + 10I - 2)\|I - 3I + 1 +-- + +-- 3 2 +---+ 4 3 2 +-- (- 4I + 16I - 16I + 4)\|- I - 2I + 13I - 24I + 13I - 2 +-- / +-- +-----------+ +-- 3 2 | 2 4 3 2 +-- (2I - 6I + 6I - 2)\|I - 3I + 1 - 2I + 9I - 14I + 9I - 2 +-- + +-- +-----------+ +-- +---+ +-----+ | 2 2 +---+ +-----+ +-- (I\|- I \|I - 1 \|I - 3I + 1 + (- I + I)\|- I \|I - 1 ) +-- * +-- +----------+ +-- | 2 +-- \|I + I + 1 +-- + +-- +-----------+ +-- 2 +---+ +-----+ | 2 3 +---+ +-----+ +-- (- I - I)\|- I \|I - 1 \|I - 3I + 1 + (I - I)\|- I \|I - 1 +-- * +-- log +-- +----------+ +-- 2 +---+ 3 2 | 2 +-- ((- 4I - 6I - 4)\|- I + 2I + 2I + 2I + 2)\|I + I + 1 +-- + +-- 3 2 +---+ 4 3 2 +-- (4I + 8I + 8I + 4)\|- I - 2I - 3I - 4I - 3I - 2 +-- / +-- +----------+ +-- 3 2 | 2 4 3 2 +-- (2I + 6I + 6I + 2)\|I + I + 1 - 2I - 7I - 10I - 7I - 2 +-- + +-- +-----------+ +----------+ +-- 2 | 2 3 2 | 2 +-- (- 4I \|I - 3I + 1 + 4I - 4I )\|I + I + 1 +-- + +-- +-----------+ +-- 3 2 | 2 4 2 +-- (4I + 4I )\|I - 3I + 1 - 4I + 4I +-- * +-- +----------+ +-- +-----+ | 2 +-----+ +-- \|I - 1 \|I + I + 1 - I\|I - 1 +-- atan(---------------------------------) +-- I - 1 +-- + +-- +-----------+ +----------+ +-- 2 | 2 3 2 | 2 +-- (- 4I \|I - 3I + 1 + 4I - 4I )\|I + I + 1 +-- + +-- +-----------+ +-- 3 2 | 2 4 2 +-- (4I + 4I )\|I - 3I + 1 - 4I + 4I +-- * +-- +-----------+ +-- +-----+ | 2 +-----+ +-- \|I - 1 \|I - 3I + 1 - I\|I - 1 +-- atan(----------------------------------) +-- I - 1 +-- + +-- +-----------+ +----------+ +-- +-----+ | 2 +-----+ | 2 +-- (- 4\|I - 1 \|I - 3I + 1 + (6I - 4)\|I - 1 )\|I + I + 1 +-- + +-- +-----------+ +-- +-----+ | 2 2 +-----+ +-- (2I + 4)\|I - 1 \|I - 3I + 1 + (- 4I - 4I + 4)\|I - 1 +-- / +-- +-----------+ +----------+ +-- +-----+ | 2 +-----+ | 2 +-- (2\|I - 1 \|I - 3I + 1 + (- 2I + 2)\|I - 1 )\|I + I + 1 +-- + +-- +-----------+ +-- +-----+ | 2 2 +-----+ +-- (- 2I - 2)\|I - 1 \|I - 3I + 1 + (2I - 2)\|I - 1 +-- , +-- +-- +-----------+ +----------+ +-- 2 | 2 3 2 | 2 +-- (I \|I - 3I + 1 - I + I )\|I + I + 1 +-- + +-- +-----------+ +-- 3 2 | 2 4 2 +-- (- I - I )\|I - 3I + 1 + I - I +-- * +-- log +-- 3 2 +-------+ 4 3 2 +-- ((4I - 4I + 2I - 2)\|- I + 1 - 2I + 4I - 6I + 4I) +-- * +-- +----------+ +-- | 2 +-- \|I + I + 1 +-- + +-- 4 3 2 +-------+ 5 4 3 2 +-- (- 4I + 2I - 2I + 4I)\|- I + 1 + 2I - 3I + 5I - 4I +-- + +-- 2I - 2 +-- / +-- +----------+ +-- | 2 2 +-- (2I + 2)\|I + I + 1 - 2I - 3I - 2 +-- + +-- +-----------+ +----------+ +-- 2 | 2 3 2 | 2 +-- (- I \|I - 3I + 1 + I - I )\|I + I + 1 +-- + +-- +-----------+ +-- 3 2 | 2 4 2 +-- (I + I )\|I - 3I + 1 - I + I +-- * +-- log +-- 3 2 +-------+ 4 3 2 +-- ((- 4I + 8I - 6I + 2)\|- I + 1 - 2I + 8I - 10I + 4I) +-- * +-- +-----------+ +-- | 2 +-- \|I - 3I + 1 +-- + +-- 4 3 2 +-------+ 5 4 3 2 +-- (4I - 14I + 14I - 4I)\|- I + 1 + 2I - 11I + 21I - 20I +-- + +-- 10I - 2 +-- / +-- +-----------+ +-- | 2 2 +-- (2I - 2)\|I - 3I + 1 - 2I + 5I - 2 +-- + +-- +-----------+ +-- +-------+ +-+ | 2 2 +-------+ +-+ +-- (- 4I\|- I + 1 \|I \|I - 3I + 1 + (4I - 4I)\|- I + 1 \|I ) +-- * +-- +----------+ +-- | 2 +-- \|I + I + 1 +-- + +-- +-----------+ +-- 2 +-------+ +-+ | 2 3 +-------+ +-+ +-- (4I + 4I)\|- I + 1 \|I \|I - 3I + 1 + (- 4I + 4I)\|- I + 1 \|I +-- * +-- +-+ +-- \|I +-- atan(----------------------) +-- +-----------+ +-- | 2 +-- \|I - 3I + 1 - I + 1 +-- + +-- +-----------+ +-- +-------+ +-+ | 2 2 +-------+ +-+ +-- (- 4I\|- I + 1 \|I \|I - 3I + 1 + (4I - 4I)\|- I + 1 \|I ) +-- * +-- +----------+ +-- | 2 +-- \|I + I + 1 +-- + +-- +-----------+ +-- 2 +-------+ +-+ | 2 3 +-------+ +-+ +-- (4I + 4I)\|- I + 1 \|I \|I - 3I + 1 + (- 4I + 4I)\|- I + 1 \|I +-- * +-- +-+ +-- \|I +-- atan(---------------------) +-- +----------+ +-- | 2 +-- \|I + I + 1 - I - 1 +-- + +-- +-----------+ +----------+ +-- +-------+ | 2 +-------+ | 2 +-- (- 4\|- I + 1 \|I - 3I + 1 + (6I - 4)\|- I + 1 )\|I + I + 1 +-- + +-- +-----------+ +-- +-------+ | 2 2 +-------+ +-- (2I + 4)\|- I + 1 \|I - 3I + 1 + (- 4I - 4I + 4)\|- I + 1 +-- / +-- +-----------+ +----------+ +-- +-------+ | 2 +-------+ | 2 +-- (2\|- I + 1 \|I - 3I + 1 + (- 2I + 2)\|- I + 1 )\|I + I + 1 +-- + +-- +-----------+ +-- +-------+ | 2 2 +-------+ +-- (- 2I - 2)\|- I + 1 \|I - 3I + 1 + (2I - 2)\|- I + 1 +-- , +-- +-- +-----------+ +----------+ +-- 2 | 2 3 2 | 2 +-- (- 2I \|I - 3I + 1 + 2I - 2I )\|I + I + 1 +-- + +-- +-----------+ +-- 3 2 | 2 4 2 +-- (2I + 2I )\|I - 3I + 1 - 2I + 2I +-- * +-- +----------+ +-- +-----+ | 2 +-----+ +-- \|I - 1 \|I + I + 1 - I\|I - 1 +-- atan(---------------------------------) +-- I - 1 +-- + +-- +-----------+ +----------+ +-- 2 | 2 3 2 | 2 +-- (- 2I \|I - 3I + 1 + 2I - 2I )\|I + I + 1 +-- + +-- +-----------+ +-- 3 2 | 2 4 2 +-- (2I + 2I )\|I - 3I + 1 - 2I + 2I +-- * +-- +-----------+ +-- +-----+ | 2 +-----+ +-- \|I - 1 \|I - 3I + 1 - I\|I - 1 +-- atan(----------------------------------) +-- I - 1 +-- + +-- +-----------+ +-- +-----+ +-+ | 2 2 +-----+ +-+ +-- (- 2I\|I - 1 \|I \|I - 3I + 1 + (2I - 2I)\|I - 1 \|I ) +-- * +-- +----------+ +-- | 2 +-- \|I + I + 1 +-- + +-- +-----------+ +-- 2 +-----+ +-+ | 2 3 +-----+ +-+ +-- (2I + 2I)\|I - 1 \|I \|I - 3I + 1 + (- 2I + 2I)\|I - 1 \|I +-- * +-- +-+ +-- \|I +-- atan(----------------------) +-- +-----------+ +-- | 2 +-- \|I - 3I + 1 - I + 1 +-- + +-- +-----------+ +-- +-----+ +-+ | 2 2 +-----+ +-+ +-- (- 2I\|I - 1 \|I \|I - 3I + 1 + (2I - 2I)\|I - 1 \|I ) +-- * +-- +----------+ +-- | 2 +-- \|I + I + 1 +-- + +-- +-----------+ +-- 2 +-----+ +-+ | 2 3 +-----+ +-+ +-- (2I + 2I)\|I - 1 \|I \|I - 3I + 1 + (- 2I + 2I)\|I - 1 \|I +-- * +-- +-+ +-- \|I +-- atan(---------------------) +-- +----------+ +-- | 2 +-- \|I + I + 1 - I - 1 +-- + +-- +-----------+ +----------+ +-- +-----+ | 2 +-----+ | 2 +-- (- 2\|I - 1 \|I - 3I + 1 + (3I - 2)\|I - 1 )\|I + I + 1 +-- + +-- +-----------+ +-- +-----+ | 2 2 +-----+ +-- (I + 2)\|I - 1 \|I - 3I + 1 + (- 2I - 2I + 2)\|I - 1 +-- / +-- +-----------+ +----------+ +-- +-----+ | 2 +-----+ | 2 +-- (\|I - 1 \|I - 3I + 1 + (- I + 1)\|I - 1 )\|I + I + 1 +-- + +-- +-----------+ +-- +-----+ | 2 2 +-----+ +-- (- I - 1)\|I - 1 \|I - 3I + 1 + (I - 1)\|I - 1 +-- ] +-- Type: Union(f2: List OrderedCompletion Expression Integer,...) + +in2109a:=integrate((1+I*z)^(1/2)+cot(z-1), z= 0..1,"noPole") +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2112a:=integrate(-cot(z-1)+log(1-1/z^4), z= -1..1,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2115a:=integrate(-z/(z-1)+log(1-z^(1/3)), z= -1..1,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2120a:=integrate(-z+1/(z^2+I*z-3)^(1/2), z= -1..1,"noPole") +-- +-- +-------+ 2 +-- log((- 4I + 8)\|- I - 2 + I - 8I - 4) +-- + +-- +-----+ 2 +-- - log((- 4I - 8)\|I - 2 + I + 8I - 4) +-- / +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2124a:=integrate(-1/z-1/(I/(z+I))^(1/2), z= -1..0,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in25:=integrate(cos(z), z= I..a) +-- +-- sin(a) - sin(I) +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in25a:=integrate(cos(z), z= %i..a) +-- +-- sin(a) - sin(%i) +-- Type: Union(f1: OrderedCompletion Expression Complex Integer,...) + +in25b:=integrate(exp(I*z), z= I..I*infinity) +-- +-- 2 2 +-- I infinity I +-- %e - %e +-- ------------------- +-- I +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in25c:=integrate(exp(%i*z), z= %i..I*infinity) +-- +-- %i I infinity +-- - %i %e %e + %i +-- ---------------------------- +-- %e +-- Type: Union(f1: OrderedCompletion Expression Complex Integer,...) + +in28a:=integrate(1/z, z=1..z,"noPole") +-- +-- 2 +-- log(z ) +-- ------- +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in30:=integrate(sin(3*asin(1/(1+z^2))), z= 0..%plusInfinity) +-- +-- 3%pi +-- ---- +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in32:=integrate(exp(-z), z= 0..%plusInfinity) +-- +-- 1 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in34a:=integrate(1/(sin(z)-1/2), z= 0..1,"noPole") +-- +-- log +-- 2 2 +-- - 12sin(1) + (42cos(1) + 48)sin(1) - 36cos(1) - 84cos(1) +-- + +-- - 48 +-- * +-- +-+ +-- \|3 +-- + +-- 2 2 +-- 21sin(1) + (- 72cos(1) - 84)sin(1) + 63cos(1) + 144cos(1) + 84 +-- / +-- 2 +-- 4sin(1) - 4sin(1) + 1 +-- + +-- +-+ +-- - log(- 168\|3 + 291) +-- / +-- +-+ +-- \|3 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in37:=integrate(atan(tan(1/z)), z= 0..1) +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in40:=integrate(atan(tan(z)), z= 0..%plusInfinity) +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2157a:=integrate(acoth(z)-1/(1+z^(1/2)), z= 0..1,"noPole") +-- +-- log(4) + 10log(2) - 8 +-- --------------------- +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2158a:=integrate(2*acoth(1-(1-z)^(1/2)), z= 0..1,"noPole") +-- +-- 2log(4) - 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2168a:=integrate(-csch(z-1)-(1+I*z)^(1/2), z= 0..1,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2179a:=integrate((z^3-I*(1-z^4)^(1/2))^4, z= -1..1,"noPole") +-- +-- 4 2 +-- 64064I + 28080I + 6930 +-- (104) ------------------------ +-- 45045 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) +-- + +in2185a:=integrate(csch(z)+(z^2-I*z+1)^(1/2), z= 0..1,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2195a:=integrate(1-acoth(1-(1-z)^(1/2)), z= -1..1,"noPole") +-- +-- +-+ +-+ +-+ +-+ +-- 2log(\|2 ) - log(- 2\|2 + 3) + 3log(- 4\|2 + 6) + 4\|2 - 4log(4) + 8 +-- ----------------------------------------------------------------------- +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2201a:=integrate(acoth(z)+%pi-asec(z-1), z= 0..1,"noPole") +-- +-- +-+ +-- - %pi\|2 + log(4) + 2%pi +-- ------------------------- +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in221:=integrate(log(z+sqrt(z^2-1)), z) +-- +-- +------+ +------+ +------+ +-- | 2 2 | 2 | 2 2 +-- (z\|z - 1 - z )log(\|z - 1 + z) + z\|z - 1 - z + 1 +-- --------------------------------------------------------- +-- +------+ +-- | 2 +-- \|z - 1 - z +-- Type: Union(Expression Integer,...) + +in227a:=integrate(atan(sin(z))+atan(1/(sin(z))), z= 0..1,"noPole") +-- +-- %pi +-- - --- +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in237a:=integrate(sin(z)*(1-cos(z)/sqrt(1-sin(z)^2))^2, z= 0..1,"noPole") +-- +-- - 4cos(1) + 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2221:=integrate((z-I)*(-1+1/(z-I)), z= 0..%plusInfinity) +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2243a:=integrate(-1/sinh(z-1)+1/(I*z)^(1/2), z= 0..1,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2247a:=integrate(1/(z^2-I*z+2)^(1/2)+csc(z), z= 0..1,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2254a:=integrate(cosh(z^(1/2))-acoth(1-z), z= 0..1,"noPole") +-- +-- - %e log(4) + 4%e - 4 +-- --------------------- +-- 2%e +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2270a:=integrate(log(z)*log(1/z)*(I*z)^(1/3), z= -1..1,"noPole") +-- +-- 3+-+ 3+---+ +-- - 27\|I - 27\|- I +-- ------------------- +-- 32 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2274a:=integrate(acoth(1-z)-acosh(1/z), z= -1..1,"noPole") +-- +-- 3log(9) - 4%pi +-- -------------- +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2275a:=integrate((z^2+I*z-3)^(1/2)*(3+z^2), z= -1..1,"noPole") +-- +-- 10 8 6 4 2 +-- - 960I + 49920I + 1320960I + 3563520I - 40550400I +-- + +-- 8847360 +-- * +-- +-------+ +-- \|- I - 2 +-- + +-- 11 10 9 8 7 6 +-- 120I - 2640I - 23520I + 10560I - 318720I + 1359360I +-- + +-- 5 4 3 2 +-- 3056640I + 9922560I + 36034560I - 2396160I - 40919040I +-- + +-- 15482880 +-- * +-- +-----+ +-- \|I - 2 +-- + +-- 11 10 9 8 7 6 +-- 120I + 2640I - 23520I - 10560I - 318720I - 1359360I +-- + +-- 5 4 3 2 +-- 3056640I - 9922560I + 36034560I + 2396160I - 40919040I +-- + +-- - 15482880 +-- * +-- +-------+ +-- \|- I - 2 +-- + +-- 12 10 8 6 4 2 +-- - 15I + 12360I + 67440I - 3283200I - 21131520I + 73451520I +-- + +-- - 27095040 +-- * +-- +-------+ 2 +-- log((- 4I + 8)\|- I - 2 + I - 8I - 4) +-- + +-- 10 8 6 4 2 +-- 960I - 49920I - 1320960I - 3563520I + 40550400I +-- + +-- - 8847360 +-- * +-- +-------+ +-- \|- I - 2 +-- + +-- 11 10 9 8 7 6 +-- - 120I + 2640I + 23520I - 10560I + 318720I - 1359360I +-- + +-- 5 4 3 2 +-- - 3056640I - 9922560I - 36034560I + 2396160I + 40919040I +-- + +-- - 15482880 +-- * +-- +-----+ +-- \|I - 2 +-- + +-- 11 10 9 8 7 6 +-- - 120I - 2640I + 23520I + 10560I + 318720I + 1359360I +-- + +-- 5 4 3 2 +-- - 3056640I + 9922560I - 36034560I - 2396160I + 40919040I +-- + +-- 15482880 +-- * +-- +-------+ +-- \|- I - 2 +-- + +-- 12 10 8 6 4 2 +-- 15I - 12360I - 67440I + 3283200I + 21131520I - 73451520I +-- + +-- 27095040 +-- * +-- +-----+ 2 +-- log((- 4I - 8)\|I - 2 + I + 8I - 4) +-- + +-- 9 5 3 +-------+ 11 +-- (- 20480I + 17170432I - 48234496I + 57671680I)\|- I - 2 + 60I +-- + +-- 10 9 8 7 6 5 +-- 3800I - 39408I - 172896I - 790144I - 6873344I + 13455872I +-- + +-- 4 3 2 +-- 53588992I - 16978944I - 85084160I + 9687040I + 21897216 +-- * +-- +-----+ +-- \|I - 2 +-- + +-- 11 10 9 8 7 6 +-- - 60I + 3800I + 39408I - 172896I + 790144I - 6873344I +-- + +-- 5 4 3 2 +-- - 13455872I + 53588992I + 16978944I - 85084160I - 9687040I +-- + +-- 21897216 +-- * +-- +-------+ +-- \|- I - 2 +-- + +-- 11 9 7 5 3 +-- - 960I + 133888I + 3352576I - 44081152I + 129318912I - 59834368I +-- / +-- 6 4 2 +-------+ 7 +-- (49152I - 3735552I + 14942208I - 3145728)\|- I - 2 - 6144I +-- + +-- 6 5 4 3 2 +-- 135168I + 1351680I - 3784704I - 15237120I + 1769472I + 14548992I +-- + +-- - 5505024 +-- * +-- +-----+ +-- \|I - 2 +-- + +-- 7 6 5 4 3 2 +-- - 6144I - 135168I + 1351680I + 3784704I - 15237120I - 1769472I +-- + +-- 14548992I + 5505024 +-- * +-- +-------+ +-- \|- I - 2 +-- + +-- 8 6 4 2 +-- 768I - 651264I + 12066816I - 27721728I + 9633792 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2276a:=integrate((1-tanh(log(1+z^(1/3))))^5, z= -1..1,"noPole") +-- +-- 3+---+2 3+---+ 3+---+ +-- (- 918750\|- 1 + 1200000\|- 1 + 2100000)atan(\|- 1 + 1) +-- + +-- 3+---+2 3+---+ +-- (918750atan(2) - 466984)\|- 1 + (- 1200000atan(2) - 364526)\|- 1 +-- + +-- - 2100000atan(2) + 96142 +-- / +-- 3+---+2 3+---+ +-- 30625\|- 1 - 40000\|- 1 - 70000 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2278a:=integrate(acoth(1-z)+log(abs(z-1)/z), z= 0..1,"noPole") +-- +-- log(4) +-- (120) ------ +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2279a:=integrate(acoth(1/(z^2-z+1)^(1/2)), z= -1..1,"noPole") +-- +-- +-+ +-- +-+ +-+ +-+ - \|3 - 2 +-- 2log(12\|3 + 21) + log(6\|3 + 12) - log(2\|3 + 4) + log(----------) +-- +-+ +-- \|3 - 2 +-- + +-- log(16) - 2log(4) +-- / +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2307a:=integrate(tan(z)-1/(z^2+I*z-3)^(1/2), z= -1..1,"noPole") +-- +-- +-------+ 2 +-- - log((- 4I + 8)\|- I - 2 + I - 8I - 4) +-- + +-- +-----+ 2 +-- log((- 4I - 8)\|I - 2 + I + 8I - 4) +-- / +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2311a:=integrate(-1/sinh(z-1)+1/(I*z)^(1/2), z= 0..%pi,"noPole") +-- +-- %pi - 1 2 %pi - 1 +-- I log((%e ) + 2%e + 1) +-- + +-- 2 +-- %pi - 1 2 %pi - 1 +-----+ %e + 2%e + 1 +-- - I log((%e ) - 2%e + 1) + 4\|I %pi - I log(-------------) +-- 2 +-- %e +-- + +-- 2 +-- %e - 2%e + 1 +-- I log(-------------) +-- 2 +-- %e +-- / +-- 2I +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +------------------------------------------------------ +in2312:=integrate(sin(z)-1/(z^2+I*z-1)^(1/2), z= -1..1) +-- +-- potentialPole +-- +in2312a:=integrate(sin(z)-1/(z^2+I*z-1)^(1/2), z= -1..1,"noPole") +-- +-- +---+ 2 +-+ 2 +-- - log((- 4I + 8)\|- I + I - 8I + 4) + log((- 4I - 8)\|I + I + 8I + 4) +-- ------------------------------------------------------------------------- +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2324a:=integrate(cosh(z^(1/2)-1)+acoth(1-z), z= 0..1,"noPole") +-- +-- 2 +-- %e log(4) + 2%e - 4%e + 2 +-- -------------------------- +-- 2%e +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2330a:=integrate(exp(-z)+1/(z^2+I*z-1)^(1/2), z= -1..1,"noPole") +-- +-- +---+ 2 +-- %e log((- 4I + 8)\|- I + I - 8I + 4) +-- + +-- +-+ 2 2 +-- - %e log((- 4I - 8)\|I + I + 8I + 4) + 2%e - 2 +-- / +-- 2%e +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2332a:=integrate(acoth(z^(1/2))*(1-z^(1/2)), z= 0..1,"noPole") +-- +-- log(16) - log(4) - 10log(2) + 8 +-- ------------------------------- +-- 12 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2333a:=integrate(acoth(z)+1/(z^2+z+2)^(1/2), z= 0..1,"noPole") +-- +-- +-+ +-- log(- 4\|2 + 9) + log(4) +-- ------------------------- +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2340a:=integrate(exp(I*(I*z)^(1/2))+cot(z-1), z= -1..1,"noPole") +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2360a:=integrate(1/(1-I*z^2)^(1/2)-csch(z-1), z= -1..1,"noPole") +-- +-- [ + infinity, + infinity] +-- Type: Union(f2: List OrderedCompletion Expression Integer,...) + +in2367a:=integrate(log(1-z^2)-1/(I/(z-I))^(1/2), z= -1..1,"noPole") +-- +-- 4 4 1 +-- 3log(-----------) + 3log(-----------) - 3log(-----------) +-- 2 2 2 +-- I - 2I + 1 I + 2I + 1 I - 2I + 1 +-- + +-- 1 +-- - 3log(-----------) + 6log(4) - 24 +-- 2 +-- I + 2I + 1 +-- * +-- +-------+ +-- | I +-- |- ----- +-- \| I - 1 +-- + +-- 4I - 4 +-- * +-- +-------+ +-- | I +-- |- ----- +-- \| I + 1 +-- + +-- +-------+ +-- | I +-- (- 4I - 4) |- ----- +-- \| I - 1 +-- / +-- +-------+ +-------+ +-- | I | I +-- 6 |- ----- |- ----- +-- \| I - 1 \| I + 1 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2375a:=integrate(acoth(1-z^(1/2))+1/z^(1/3), z= 0..1,"noPole") +-- +-- 2log(4) + 1 +-- ----------- +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2376a:=integrate(log(1-z^(1/3)-z^(2/3)), z= 0..infinity,"noPole") +-- +-- +-+ +-- 3\|5 +-- * +-- log +-- +-+ 3+--------+2 +-- (- 12\|5 - 36)\|infinity +-- + +-- +-+ 3+--------+ +-+ +-- (- 16\|5 - 4infinity - 32)\|infinity + (- 8infinity - 6)\|5 +-- + +-- - 8infinity - 14 +-- / +-- 3+--------+2 3+--------+ +-- \|infinity + (- infinity + 2)\|infinity - 2infinity - 1 +-- + +-- (3infinity + 6) +-- * +-- 3+--------+2 3+--------+ +-- log(- \|infinity + (infinity - 2)\|infinity + 2infinity + 1) +-- + +-- 3+--------+2 3+--------+ +-+ +-+ +-- 3\|infinity - 18\|infinity - 3\|5 log(6\|5 + 14) - 4infinity +-- / +-- 6 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2378a:=integrate((z^2+I*z-3)^(1/2)-tanh(z-1), z= -1..1,"noPole") +-- +-- 4 2 +-------+ 5 4 3 2 +-- (- 16I - 128I + 768)\|- I - 2 + 4I - 24I - 32I - 320I +-- + +-- - 960I - 384 +-- * +-- +-----+ +-- \|I - 2 +-- + +-- 5 4 3 2 +-------+ 6 4 +-- (4I + 24I - 32I + 320I - 960I + 384)\|- I - 2 - I + 60I +-- + +-- 2 +-- 848I - 192 +-- * +-- +-------+ 2 +-- log((- 4I + 8)\|- I - 2 + I - 8I - 4) +-- + +-- 4 2 +-------+ 5 4 3 2 +-- (16I + 128I - 768)\|- I - 2 - 4I + 24I + 32I + 320I + 960I +-- + +-- 384 +-- * +-- +-----+ +-- \|I - 2 +-- + +-- 5 4 3 2 +-------+ 6 4 +-- (- 4I - 24I + 32I - 320I + 960I - 384)\|- I - 2 + I - 60I +-- + +-- 2 +-- - 848I + 192 +-- * +-- +-----+ 2 +-- log((- 4I - 8)\|I - 2 + I + 8I - 4) +-- + +-- 2 4 2 2 +-- 2 (%e ) + 2(%e ) + 1 2 +-- (128I - 512)log(--------------------) + (- 128I + 512)log(4) +-- 2 4 +-- (%e ) +-- + +-- 3 2 +-- - 256I + 512I + 1024I - 2048 +-- * +-- +-------+ +-- \|- I - 2 +-- + +-- 2 4 2 2 +-- 3 2 (%e ) + 2(%e ) + 1 +-- (- 32I + 192I + 640I + 256)log(--------------------) +-- 2 4 +-- (%e ) +-- + +-- 3 2 5 4 3 2 +-- (32I - 192I - 640I - 256)log(4) + 4I + 72I - 416I - 320I +-- + +-- 2624I + 2176 +-- * +-- +-----+ +-- \|I - 2 +-- + +-- 2 4 2 2 +-- 3 2 (%e ) + 2(%e ) + 1 +-- (- 32I - 192I + 640I - 256)log(--------------------) +-- 2 4 +-- (%e ) +-- + +-- 3 2 5 4 3 2 +-- (32I + 192I - 640I + 256)log(4) - 4I + 72I + 160I - 1856I +-- + +-- 2496I + 128 +-- * +-- +-------+ +-- \|- I - 2 +-- + +-- 2 4 2 2 +-- 4 2 (%e ) + 2(%e ) + 1 +-- (8I - 576I + 128)log(--------------------) +-- 2 4 +-- (%e ) +-- + +-- 4 2 5 4 3 2 +-- (- 8I + 576I - 128)log(4) - 32I + 32I + 768I - 2304I - 2560I + 512 +-- / +-- 2 +-------+ 3 2 +-----+ +-- ((256I - 1024)\|- I - 2 - 64I + 384I + 1280I + 512)\|I - 2 +-- + +-- 3 2 +-------+ 4 2 +-- (- 64I - 384I + 1280I - 512)\|- I - 2 + 16I - 1152I + 256 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2386a:=integrate(acoth(1-z)-(z^2-z+2)^(1/2), z= 0..1,"noPole") +-- +-- +-+ +-+ +-+ +-- - 7log(4\|2 + 9) + 7log(- 4\|2 + 9) - 8\|2 + 8log(4) +-- ------------------------------------------------------- +-- 16 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2390a:=integrate((z^2-I*z-2)^(1/2)+1/sec(z-1), z= -1..1,"noPole") +-- +-- 8 6 4 2 +-------+ 9 8 +-- (- 64I + 3840I + 18432I - 131072I )\|- I - 1 - 8I + 176I +-- + +-- 7 6 5 4 3 2 +-- 1472I - 3456I - 1536I - 33792I - 102400I + 40960I + 65536I +-- * +-- +-----+ +-- \|I - 1 +-- + +-- 9 8 7 6 5 4 3 +-- - 8I - 176I + 1472I + 3456I - 1536I + 33792I - 102400I +-- + +-- 2 +-- - 40960I + 65536I +-- * +-- +-------+ +-- \|- I - 1 +-- + +-- 10 8 6 4 2 +-- - I + 792I - 6016I - 84992I + 110592I - 32768 +-- * +-- +-----+ 2 +-- log((4I + 8)\|I - 1 + I + 8I) +-- + +-- 8 6 4 2 +-------+ 9 8 +-- (64I - 3840I - 18432I + 131072I )\|- I - 1 + 8I - 176I +-- + +-- 7 6 5 4 3 2 +-- - 1472I + 3456I + 1536I + 33792I + 102400I - 40960I - 65536I +-- * +-- +-----+ +-- \|I - 1 +-- + +-- 9 8 7 6 5 4 3 +-- 8I + 176I - 1472I - 3456I + 1536I - 33792I + 102400I +-- + +-- 2 +-- 40960I - 65536I +-- * +-- +-------+ +-- \|- I - 1 +-- + +-- 10 8 6 4 2 +-- I - 792I + 6016I + 84992I - 110592I + 32768 +-- * +-- +-------+ 2 +-- log((4I - 8)\|- I - 1 + I - 8I) +-- + +-- 6 4 2 7 5 3 +-- (1024I - 69632I + 262144I )sin(2) + 1536I - 63488I + 262144I +-- + +-- - 131072I +-- * +-- +-------+ +-- \|- I - 1 +-- + +-- 7 6 5 4 3 2 +-- (128I - 2816I - 24576I + 77824I + 221184I - 81920I - 131072I) +-- * +-- sin(2) +-- + +-- 9 8 7 6 5 4 3 +-- 4I + 264I - 3456I - 24320I + 67072I + 199680I - 122880I +-- + +-- 2 +-- - 245760I + 16384I + 32768 +-- * +-- +-----+ +-- \|I - 1 +-- + +-- 7 6 5 4 3 2 +-- (128I + 2816I - 24576I - 77824I + 221184I + 81920I - 131072I) +-- * +-- sin(2) +-- + +-- 9 8 7 6 5 4 3 +-- - 4I + 264I + 3456I - 24320I - 67072I + 199680I + 122880I +-- + +-- 2 +-- - 245760I - 16384I + 32768 +-- * +-- +-------+ +-- \|- I - 1 +-- + +-- 8 6 4 2 9 7 +-- (16I - 12800I + 198656I - 229376I + 65536)sin(2) + 64I - 13824I +-- + +-- 5 3 +-- 174080I - 327680I + 131072I +-- / +-- 6 4 2 +-------+ 7 6 5 +-- (1024I - 69632I + 262144I )\|- I - 1 + 128I - 2816I - 24576I +-- + +-- 4 3 2 +-- 77824I + 221184I - 81920I - 131072I +-- * +-- +-----+ +-- \|I - 1 +-- + +-- 7 6 5 4 3 2 +-- (128I + 2816I - 24576I - 77824I + 221184I + 81920I - 131072I) +-- * +-- +-------+ +-- \|- I - 1 +-- + +-- 8 6 4 2 +-- 16I - 12800I + 198656I - 229376I + 65536 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2392a:=integrate(1/sec(z-1)+acoth(1-z^(1/2)), z= 0..1,"noPole") +-- +-- sin(1) + log(4) - 1 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2404a:=integrate(1/(1+I*z^2)^(1/2)+acoth(z), z= -1..1,"noPole") +-- +-- [ +-- - +-- log +-- 2 +-+ 2 +-----+ 2 +-+ 3 +-- ((2I + 4I)\|I + 4I + 2I)\|I + 1 + (- 4I - 4I)\|I - 2I +-- + +-- 2 +-- - 5I - 2I +-- / +-- +-----+ +-- 2\|I + 1 - I - 2 +-- + +-- log +-- 2 +-+ 2 +-----+ 2 +-+ 3 +-- ((- 2I - 4I)\|I + 4I + 2I)\|I + 1 + (4I + 4I)\|I - 2I +-- + +-- 2 +-- - 5I - 2I +-- / +-- +-----+ +-- 2\|I + 1 - I - 2 +-- / +-- +-+ +-- 2\|I +-- , +-- +---+ +-----+ +---+ +-- \|- I \|I + 1 - \|- I +-- 4atan(-----------------------) +-- I +-- ------------------------------] +-- +---+ +-- \|- I +-- Type: Union(f2: List OrderedCompletion Expression Integer,...) + +in2409a:=integrate(tan(z)+1/(I/(z+I))^(1/2), z= 0..1/2*%pi,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in248a:=integrate(log(z^I)^2, z= 0..1,"noPole") +-- +-- 2 +-- 2I +-- Type: Union(f1: OrderedCompletion Expression Integer,...) +-- + +in248b:=integrate(log(z^%i)^2, z= 0..1,"noPole") +-- +-- - 2 +-- Type: Union(f1: OrderedCompletion Expression Complex Integer,...) + +in249a:=integrate((sin(z)/(cos(z)-1))^(1/3), z= 0..%pi,"noPole") +-- +-- 3+-+ 3+-+ +-+ +-- 3log(32\|2 ) - 12log(2\|2 ) - 4%pi\|3 +-- -------------------------------------- +-- 24 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in251a:=integrate((-1)^z*exp(-z)*sin(z), z= 0..%plusInfinity,"noPole") +-- +-- 2 +-- - %pi + 2 +-- ---------- +-- 4 +-- %pi + 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2434a:=integrate(acoth(z^(1/2))+log(abs(z-1)), z= 0..1,"noPole") +-- +-- log(16) + log(4) - 6log(2) +-- -------------------------- +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2443a:=integrate(sech(z)+log(abs(1-1/z^(1/3))), z= -1..1,"noPole") +-- +-- 3+---+2 3+---+ +-- 3+---+2 3+---+ \|- 1 - 2\|- 1 + 1 +-- log(\|- 1 - 2\|- 1 + 1) + log(---------------------) + 4atan(%e) +-- 3+---+2 +-- \|- 1 +-- + +-- 1 3+---+2 3+---+ +-- - 4atan(--) + \|- 1 + 2\|- 1 - 3 +-- %e +-- / +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2462a:=integrate(log((1+(1-z)^(1/2))/z)+csch(z), z= -1..0,"noPole") +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2469a:=integrate(1/(2+z)^2+1/(z^2-I*z-2)^(1/2), z= -1..1,"noPole") +-- +-- +-----+ 2 +-------+ 2 +-- 3log((4I + 8)\|I - 1 + I + 8I) - 3log((4I - 8)\|- I - 1 + I - 8I) + 4 +-- ------------------------------------------------------------------------- +-- 6 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2484a:=integrate(log(1-z^2)+sinh(z^(1/2)), z= 0..%plusInfinity,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2485a:=integrate(log(1-z^(1/2))-acoth(z^(1/2)), z= 0..1,"noPole") +-- +-- - log(16) + log(4) + 2log(2) - 10 +-- --------------------------------- +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2521a:=integrate(acoth(z^(1/2))+cos(z^(1/2)-1), z= 0..1,"noPole") +-- +-- - 2cos(1) + 3 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2524a:=integrate(log(abs(1+1/z^(1/3)))+log(1+1/z), z= -1..0,"noPole") +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2527a:=integrate(1/(1+I*z^(1/3))+cosh(z), z= %minusInfinity..0,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2533a:=integrate(log(abs(1-1/z^(1/3)))-log(1-1/z), z= -1..0,"noPole") +-- 3+---+2 3+---+ +-- 3+---+2 3+---+ \|- 1 - 2\|- 1 + 1 3+---+2 +-- - log(3\|- 1 + \|- 1 - 1) + log(---------------------) + \|- 1 +-- 3+---+2 +-- \|- 1 +-- + +-- 3+---+ +-- 2\|- 1 - log(4) +-- / +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2566a:=integrate(log(1+(1-z)^(1/2))+acoth(1-z), z= -1..1,"noPole") +-- +-- +-+ +-+ +-- 4log(\|2 + 1) + 4\|2 + 3log(9) - 4 +-- ------------------------------------ +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2567a:=integrate(1/(I*z)^(1/3)*log(abs(z-1)), z= 0..1/2*%pi,"noPole") +-- +-- 3+---+3+-----+2 3+-+3+---+2 3+-----+ 2 3+-+2 +-- 3+-+2 - I\|- I \|I %pi - 2I\|2 \|- I \|I %pi + I \|2 +-- 6I \|2 log(----------------------------------------------------) +-- 3+-+2 +-- \|2 +-- + +-- - +-- 3+-+2 +-- 3I \|2 +-- * +-- log +-- 3+---+3+-----+2 3+-+3+---+2 3+-----+ +-- - 6I\|- I \|I %pi + (I %pi + 4I)\|2 \|- I \|I %pi +-- + +-- 2 2 3+-+2 +-- (2I %pi + 2I )\|2 +-- / +-- 3+-+2 +-- 2\|2 +-- + +-- 3+---+2 3+-----+ 3+-+ +-- 3+-+2 +-+ 2\|- I \|I %pi + I\|2 +-- 12I \|2 \|3 atan(------------------------) +-- 3+-+ +-+ +-- I\|2 \|3 +-- + +-- 2 +-- %pi - 4%pi + 4 3+---+3+-----+2 3+-+2 2 +-- (6log(---------------) - 18)\|- I \|I %pi - 3I \|2 log(I ) +-- 4 +-- + +-- 3+-+2 +-+ +-- - 2I %pi \|2 \|3 +-- / +-- 3+-+2 3+---+ +-- 8I \|2 \|- I +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2586a:=integrate(acoth(z^(1/2))+atan(z^(1/2)), z= 0..1,"noPole") +-- +-- log(16) - log(4) - 2log(2) + 2%pi +-- --------------------------------- +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2591a:=integrate(log(z)/(1-z^(1/2))^3-log(z)*log(-z), z= 0..1,"noPole") +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2597a:=integrate((1+I/z)^(1/2)-log(1-1/z^2), z= 0..%plusInfinity,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2598a:=integrate(exp(-z^(1/2))+acoth(1-z^(1/2)), z= 0..1,"noPole") +-- +-- %e log(4) + %e - 4 +-- (105) ------------------ +-- %e +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2604a:=integrate(acoth(1-z^(1/2))+log(1+z^(1/3)), z= 1..2,"noPole") +-- +-- 6+-+2 6+-+3 6+-+3 6+-+4 +-- 18log(\|2 + 1) + 3log(- 2\|2 + 3) - 6log(- 4\|2 + 6) + 3\|2 +-- + +-- 6+-+3 6+-+2 +-- - 6\|2 - 6\|2 - 12log(2) + 7 +-- / +-- 6 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in271a:=integrate(1/sqrt((z^2-1)*(z^2-1)), z= 2..%plusInfinity,"noPole") +-- +-- log(9) +-- (5) ------ +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in275c:=integrate(sqrt(z), z= -I..I,"noPole") +-- +-- +-+ +---+ +-- 2I\|I + 2I\|- I +-- (11) ----------------- +-- 3 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in275a:=integrate(1/(1+z), z= -I..I,"noPole") +-- +-- 2 2 +-- log(I + 2I + 1) - log(I - 2I + 1) +-- (13) ----------------------------------- +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in275b:=integrate(1/(1+z), z= -%i..%i,"noPole") +-- +-- log(2%i) - log(- 2%i) +-- (21) --------------------- +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Complex Integer,...) + +in276a:=integrate(log(1-z^(1/3)-z^(2/3)), z= 0..sqrt(5)-2,"noPole") +-- +-- +-+ +-- 3\|5 +-- * +-- log +-- +--------+2 +--------+ +-- +-+ 3| +-+ +-+ 3| +-+ +-+ +-- (- 12\|5 - 36)\|\|5 - 2 + (- 20\|5 - 24)\|\|5 - 2 + 2\|5 +-- + +-- - 38 +-- / +-- +--------+2 +--------+ +-- 3| +-+ +-+ 3| +-+ +-+ +-- \|\|5 - 2 + (- \|5 + 4)\|\|5 - 2 - 2\|5 + 3 +-- + +-- +--------+2 +--------+ +-- +-+ 3| +-+ +-+ 3| +-+ +-+ +-- 3\|5 log(- \|\|5 - 2 + (\|5 - 4)\|\|5 - 2 + 2\|5 - 3) +-- + +-- +--------+2 +--------+ +-- 3| +-+ 3| +-+ +-+ +-+ +-+ +-- 3\|\|5 - 2 - 18\|\|5 - 2 - 3\|5 log(6\|5 + 14) - 4\|5 + 8 +-- / +-- 6 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2634a:=integrate(1/(z^2+I*z-1)^(1/2)+log(abs(z-1)), z= -1..1,"noPole") +-- +-- +---+ 2 +-+ 2 +-- log((- 4I + 8)\|- I + I - 8I + 4) - log((- 4I - 8)\|I + I + 8I + 4) +-- + +-- 2log(4) - 4 +-- / +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2656a:=integrate(acoth(1-(1-z)^(1/2))-log(1-1/z), z= -1..1,"noPole") +-- +-- +-+ +-+ +-+ +-+ +-- - 10log(\|2 ) + log(- 2\|2 + 3) - 3log(- 4\|2 + 6) - 4\|2 + 2log(4) +-- ---------------------------------------------------------------------- +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2676a:=integrate(acoth(1-(1-z)^(1/2))-log(1-1/z), z= -1..1,"noPole") +-- +-- +-+ +-+ +-+ +-+ +-- - 10log(\|2 ) + log(- 2\|2 + 3) - 3log(- 4\|2 + 6) - 4\|2 + 2log(4) +-- ---------------------------------------------------------------------- +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2664aa:=integrate(atanh(1/z)+(1+z^2)^(1/2), z= 0..%plusInfinity,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2681a:=integrate((z^2-I*z-3)^(1/2)+%pi-acot(z-1), z= -1..1,"noPole") +-- +-- 4 2 +-------+ 5 4 3 2 +-- (- 16I - 128I + 768)\|- I - 2 - 4I + 24I + 32I + 320I +-- + +-- 960I + 384 +-- * +-- +-----+ +-- \|I - 2 +-- + +-- 5 4 3 2 +-------+ 6 4 +-- (- 4I - 24I + 32I - 320I + 960I - 384)\|- I - 2 - I + 60I +-- + +-- 2 +-- 848I - 192 +-- * +-- +-----+ 2 +-- log((4I + 8)\|I - 2 + I + 8I - 4) +-- + +-- 4 2 +-------+ 5 4 3 2 +-- (16I + 128I - 768)\|- I - 2 + 4I - 24I - 32I - 320I - 960I +-- + +-- - 384 +-- * +-- +-----+ +-- \|I - 2 +-- + +-- 5 4 3 2 +-------+ 6 4 +-- (4I + 24I - 32I + 320I - 960I + 384)\|- I - 2 + I - 60I +-- + +-- 2 +-- - 848I + 192 +-- * +-- +-------+ 2 +-- log((4I - 8)\|- I - 2 + I - 8I - 4) +-- + +-- 2 2 4 2 +-- (64I - 256)log(25) + (256I - 1024)atan(-) + (512I - 2048)%pi +-- 3 +-- + +-- 3 +-- 256I - 1024I +-- * +-- +-------+ +-- \|- I - 2 +-- + +-- 3 2 +-- (16I - 96I - 320I - 128)log(25) +-- + +-- 3 2 4 +-- (64I - 384I - 1280I - 512)atan(-) +-- 3 +-- + +-- 3 2 5 4 3 2 +-- (128I - 768I - 2560I - 1024)%pi + 4I + 72I - 288I - 1088I + 64I +-- + +-- 1152 +-- * +-- +-----+ +-- \|I - 2 +-- + +-- 3 2 +-- (16I + 96I - 320I + 128)log(25) +-- + +-- 3 2 4 +-- (64I + 384I - 1280I + 512)atan(-) +-- 3 +-- + +-- 3 2 5 4 3 2 +-- (128I + 768I - 2560I + 1024)%pi - 4I + 72I + 288I - 1088I - 64I +-- + +-- 1152 +-- * +-- +-------+ +-- \|- I - 2 +-- + +-- 4 2 4 2 4 +-- (4I - 288I + 64)log(25) + (16I - 1152I + 256)atan(-) +-- 3 +-- + +-- 4 2 5 3 +-- (32I - 2304I + 512)%pi + 32I - 768I + 2560I +-- / +-- 2 +-------+ 3 2 +-----+ +-- ((256I - 1024)\|- I - 2 + 64I - 384I - 1280I - 512)\|I - 2 +-- + +-- 3 2 +-------+ 4 2 +-- (64I + 384I - 1280I + 512)\|- I - 2 + 16I - 1152I + 256 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2691a:=integrate(1/(z^2+I*z-1)^(1/2)+(1-I*z)^(1/2), z= -1..1,"noPole") +-- +-- +---+ 2 +-- 3I log((- 4I + 8)\|- I + I - 8I + 4) +-- + +-- +-+ 2 +-----+ +-- - 3I log((- 4I - 8)\|I + I + 8I + 4) + (4I + 4)\|I + 1 +-- + +-- +-------+ +-- (4I - 4)\|- I + 1 +-- / +-- 6I +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2720a:=integrate(acoth(1-(1-z)^(1/2))+atan(z-1), z= 0..1,"noPole") +-- +-- 5log(4) - %pi - 4 +-- ----------------- +-- 4 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2724a:=integrate(log(1-1/z^3)-(1+1/z^2)^(1/2), z= 0..%plusInfinity,"noPole") +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2732:=integrate(atan(1/3*3^(1/2)*(2*z-1)), z= 0..%plusInfinity) +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2783a:=integrate(1/z^(1/3)+atanh(1/z^(1/2)), z= 0..%plusInfinity,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2815a:=integrate((I*z)^(1/2)-(1+1/(I*z)^(1/2))^(1/2), z= -1..1,"noPole") +-- +-- +----------+ +--------+ +-- | +---+ | +-+ +-- |\|- I + 1 |\|I + 1 +-- - 6log( |---------- + 1) + 6log( |-------- + 1) +-- | +---+ | +-+ +-- \| \|- I \| \|I +-- + +-- +--------+ +-- | +-+ +-- +-+ |\|I + 1 +-+ +-- - 2\|I |-------- + 2\|I + 1 +-- | +-+ +-- \| \|I +-- - 3log(------------------------------) +-- +-+ +-- \|I +-- + +-- +----------+ +-- | +---+ +-- +---+ |\|- I + 1 +---+ +-- - 2\|- I |---------- + 2\|- I + 1 +-- | +---+ +-- \| \|- I +-- 3log(------------------------------------) +-- +---+ +-- \|- I +-- + +-- +----------+ +--------+ +-- | +---+ | +-+ +-- +---+ |\|- I + 1 +-+ |\|I + 1 +-+ +-- (12\|- I - 24I) |---------- + (- 12\|I - 24I) |-------- + 16I\|I +-- | +---+ | +-+ +-- \| \|- I \| \|I +-- + +-- +---+ +-- 16I\|- I +-- / +-- 24I +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in285:=integrate(sqrt(1+sqrt(z-1)), z) +-- +-- +------------+ +-- +-----+ | +-----+ +-- (4\|z - 1 + 12z - 20)\|\|z - 1 + 1 +-- ------------------------------------- +-- 15 +-- Type: Union(Expression Integer,...) + +in295a:=integrate(z*sqrt(1+sqrt(z^2-1)), z) +-- +-- +-------------+ +-- +------+ | +------+ +-- | 2 2 | | 2 +-- (2\|z - 1 + 6z - 10)\|\|z - 1 + 1 +-- --------------------------------------- +-- 15 +-- Type: Union(Expression Integer,...) + +in295ba:=integrate(z*sqrt(1+sqrt(z^2-1)), z= 1..sqrt(2),"noPole") +-- +-- +-+ +-- 4\|2 + 4 +-- --------- +-- 15 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +integrate(1/sqrt(20+x^2+y^2), x = -5..5,"noPole") +-- +-- +-------+ +-------+ +-- | 2 2 | 2 2 +-- log(10\|y + 45 + y + 70) - log(- 10\|y + 45 + y + 70) +-- ----------------------------------------------------------- +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) +-- + +in291:=integrate(cos(2*atan(z-sqrt(2)))-sin(2*atan(z-sqrt(2))), z = 0..%plusInfinity) +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2924a:=integrate(1/(I*z)^(1/2)+(1+1/(I*z)^(1/2))^(1/2), z= -1..1,"noPole") +-- +-- +----------+ +--------+ +-- | +---+ | +-+ +-- +---+ +-+ |\|- I + 1 +---+ +-+ |\|I + 1 +-- 2\|- I \|I log( |---------- + 1) - 2\|- I \|I log( |-------- + 1) +-- | +---+ | +-+ +-- \| \|- I \| \|I +-- + +-- +--------+ +-- | +-+ +-- +-+ |\|I + 1 +-+ +-- - 2\|I |-------- + 2\|I + 1 +-- | +-+ +-- +---+ +-+ \| \|I +-- \|- I \|I log(------------------------------) +-- +-+ +-- \|I +-- + +-- +----------+ +-- | +---+ +-- +---+ |\|- I + 1 +---+ +-- - 2\|- I |---------- + 2\|- I + 1 +-- | +---+ +-- +---+ +-+ \| \|- I +-- - \|- I \|I log(------------------------------------) +-- +---+ +-- \|- I +-- + +-- +----------+ +--------+ +-- | +---+ | +-+ +-- +---+ +-+ |\|- I + 1 +---+ +-+ +---+ |\|I + 1 +-- (8I\|- I + 4I)\|I |---------- + (8I\|- I \|I + 4I\|- I ) |-------- +-- | +---+ | +-+ +-- \| \|- I \| \|I +-- + +-- +-+ +---+ +-- 16I\|I + 16I\|- I +-- / +-- +---+ +-+ +-- 8I\|- I \|I +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2963a:=integrate(cosh(-1+(1-z)^(1/2))+(z^2+I*z-3)^(1/2), z= -1..1,"noPole") +-- +-- +-+ +-- 4 2 \|2 - 1 +-------+ +-- (- 16I - 128I + 768)%e %e \|- I - 2 +-- + +-- +-+ +-- 5 4 3 2 \|2 - 1 +-- (4I - 24I - 32I - 320I - 960I - 384)%e %e +-- * +-- +-----+ +-- \|I - 2 +-- + +-- +-+ +-- 5 4 3 2 \|2 - 1 +-------+ +-- (4I + 24I - 32I + 320I - 960I + 384)%e %e \|- I - 2 +-- + +-- +-+ +-- 6 4 2 \|2 - 1 +-- (- I + 60I + 848I - 192)%e %e +-- * +-- +-------+ 2 +-- log((- 4I + 8)\|- I - 2 + I - 8I - 4) +-- + +-- +-+ +-- 4 2 \|2 - 1 +-------+ +-- (16I + 128I - 768)%e %e \|- I - 2 +-- + +-- +-+ +-- 5 4 3 2 \|2 - 1 +-- (- 4I + 24I + 32I + 320I + 960I + 384)%e %e +-- * +-- +-----+ +-- \|I - 2 +-- + +-- +-+ +-- 5 4 3 2 \|2 - 1 +-------+ +-- (- 4I - 24I + 32I - 320I + 960I - 384)%e %e \|- I - 2 +-- + +-- +-+ +-- 6 4 2 \|2 - 1 +-- (I - 60I - 848I + 192)%e %e +-- * +-- +-----+ 2 +-- log((- 4I - 8)\|I - 2 + I + 8I - 4) +-- + +-- +-+ 2 +-- 2 +-+ 2 \|2 - 1 +-- ((256I - 1024)%e\|2 + (- 256I + 1024)%e)(%e ) +-- + +-- 2 2 3 2 +-- ((256I - 1024)%e + (- 256I + 1024I)%e + 256I - 1024) +-- * +-- +-+ +-- \|2 - 1 +-- %e +-- + +-- 2 +-+ 2 +-- (- 256I + 1024)%e\|2 + (- 256I + 1024)%e +-- * +-- +-------+ +-- \|- I - 2 +-- + +-- 3 2 +-+ +-- (- 64I + 384I + 1280I + 512)%e\|2 +-- + +-- 3 2 +-- (64I - 384I - 1280I - 512)%e +-- * +-- +-+ 2 +-- \|2 - 1 +-- (%e ) +-- + +-- 3 2 2 +-- (- 64I + 384I + 1280I + 512)%e +-- + +-- 5 4 3 2 3 2 +-- (4I + 72I - 288I - 1088I + 64I + 1152)%e - 64I + 384I +-- + +-- 1280I + 512 +-- * +-- +-+ +-- \|2 - 1 +-- %e +-- + +-- 3 2 +-+ 3 2 +-- (64I - 384I - 1280I - 512)%e\|2 + (64I - 384I - 1280I - 512)%e +-- * +-- +-----+ +-- \|I - 2 +-- + +-- 3 2 +-+ +-- (- 64I - 384I + 1280I - 512)%e\|2 +-- + +-- 3 2 +-- (64I + 384I - 1280I + 512)%e +-- * +-- +-+ 2 +-- \|2 - 1 +-- (%e ) +-- + +-- 3 2 2 +-- (- 64I - 384I + 1280I - 512)%e +-- + +-- 5 4 3 2 3 2 +-- (- 4I + 72I + 288I - 1088I - 64I + 1152)%e - 64I - 384I +-- + +-- 1280I - 512 +-- * +-- +-+ +-- \|2 - 1 +-- %e +-- + +-- 3 2 +-+ 3 2 +-- (64I + 384I - 1280I + 512)%e\|2 + (64I + 384I - 1280I + 512)%e +-- * +-- +-------+ +-- \|- I - 2 +-- + +-- +-+ 2 +-- 4 2 +-+ 4 2 \|2 - 1 +-- ((16I - 1152I + 256)%e\|2 + (- 16I + 1152I - 256)%e)(%e ) +-- + +-- 4 2 2 5 3 4 2 +-- (16I - 1152I + 256)%e + (- 32I + 768I - 2560I)%e + 16I - 1152I +-- + +-- 256 +-- * +-- +-+ +-- \|2 - 1 +-- %e +-- + +-- 4 2 +-+ 4 2 +-- (- 16I + 1152I - 256)%e\|2 + (- 16I + 1152I - 256)%e +-- / +-- +-+ +-- 2 \|2 - 1 +-------+ +-- (256I - 1024)%e %e \|- I - 2 +-- + +-- +-+ +-- 3 2 \|2 - 1 +-- (- 64I + 384I + 1280I + 512)%e %e +-- * +-- +-----+ +-- \|I - 2 +-- + +-- +-+ +-- 3 2 \|2 - 1 +-------+ +-- (- 64I - 384I + 1280I - 512)%e %e \|- I - 2 +-- + +-- +-+ +-- 4 2 \|2 - 1 +-- (16I - 1152I + 256)%e %e +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2992a:=integrate(acoth(1-z^(1/2))+log(1+z^(1/3)), z= 1..%plusInfinity,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in2997a:=integrate(log(1+1/z^3)-log(abs(1+z)), z= %minusInfinity..%plusInfinity,"noPole") +-- +-- - infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in3001a:=integrate(((I*z)^(1/2)-1)/(-2+(I*z)^(1/2)), z= 0..%plusInfinity,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in3008a:=integrate(exp(-z^(1/3))+atanh(1/z^(1/2)), z= 0..%plusInfinity,"noPole") +-- +-- + infinity +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in303a:=integrate(1/(1+cosh(n*z)^2), z= 0..1,"noPole") +-- +-- log +-- +-+ - n 8 +-+ - n 6 +-- (- 816\|2 + 1154)(%e ) + (- 560\|2 + 792)(%e ) +-- + +-- +-+ - n 4 +-+ - n 2 +-- (- 144\|2 + 204)(%e ) + (- 16\|2 + 24)(%e ) + 2 +-- / +-- - n 8 - n 6 - n 4 - n 2 +-- (%e ) + 12(%e ) + 38(%e ) + 12(%e ) + 1 +-- + +-- +-+ +-- - log(- 24\|2 + 34) +-- / +-- +-+ +-- 4n\|2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in314a:=integrate(1/(sin(z)-1/2), z= 0..1,"noPole") +-- +-- log +-- 2 2 +-- - 12sin(1) + (42cos(1) + 48)sin(1) - 36cos(1) - 84cos(1) +-- + +-- - 48 +-- * +-- +-+ +-- \|3 +-- + +-- 2 2 +-- 21sin(1) + (- 72cos(1) - 84)sin(1) + 63cos(1) + 144cos(1) + 84 +-- / +-- 2 +-- 4sin(1) - 4sin(1) + 1 +-- + +-- +-+ +-- - log(- 168\|3 + 291) +-- / +-- +-+ +-- \|3 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in317:=integrate((cos(z)^a)^(1/a), z= 0..%pi) +-- +-- 0 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + +in319a:=integrate(exp(-z)*atan(sin(z)/(1+cos(z))), z=0..%plusInfinity,"noPole") +-- +-- 1 +-- - +-- 2 +-- Type: Union(f1: OrderedCompletion Expression Integer,...) + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/mappkg1.input.pamphlet b/src/input/mappkg1.input.pamphlet new file mode 100644 index 00000000..21d98364 --- /dev/null +++ b/src/input/mappkg1.input.pamphlet @@ -0,0 +1,54 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input MAPPKG1.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from MappingPackageOneXmpPage +)clear all + +power(q: FRAC INT, n: INT): FRAC INT == q**n +power(2,3) +rewop := twist power +rewop(3, 2) +square: FRAC INT -> FRAC INT +square:= curryRight(power, 2) +square 4 +squirrel:= constantRight(square)$MAPPKG3(FRAC INT,FRAC INT,FRAC INT) +squirrel(1/2, 1/3) +sixteen := curry(square, 4/1) +sixteen() +square2:=square*square +square2 3 +sc(x: FRAC INT): FRAC INT == x + 1 +incfns := [sc**i for i in 0..10] +[f 4 for f in incfns] +times(n:NNI, i:INT):INT == n*i +r := recur(times) +fact := curryRight(r, 1) +fact 4 +mto2ton(m, n) == + raiser := square**n + raiser m +mto2ton(3, 3) +shiftfib(r: List INT) : INT == + t := r.1 + r.1 := r.2 + r.2 := r.2 + t + t +fibinit: List INT := [0, 1] +fibs := curry(shiftfib, fibinit) +[fibs() for i in 0..30] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/marcbench.input.pamphlet b/src/input/marcbench.input.pamphlet new file mode 100644 index 00000000..4cdc0249 --- /dev/null +++ b/src/input/marcbench.input.pamphlet @@ -0,0 +1,511 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input marcbench.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<*>>= + +)clear completely +)set message type off +)set message time off + +output(" Ex. 1: 4-body ")$OutputPackage + +----------------------------------------------------------------------------- +--% Domains Definitions +----------------------------------------------------------------------------- + +)clear all +ls : List Symbol := [p,s,phi]; +V := OVAR(ls); +R := Integer; +E := IndexedExponents V; +P := NSMP(R, V); +LP := List(P); + +----------------------------------------------------------------------------- +--% Initialisations +----------------------------------------------------------------------------- + +p: P := 'p; +s: P := 's; +phi: P := 'phi; +p1:=-2*p^3+2*p^3*phi^3-4*phi^3*s*p^2+5*phi^3*s^3*p-phi^3*s^5; +p2:=-2*s*p^3-2*phi^3*s^2+phi^3*s^4-3*phi^3*s^2*p+2*phi^3*p; +p3:=-2*s^2+s^4-4*s^2*p+phi^2+1+4*p; +lp:=[p1,p2,p3]; + + +T := REGSET(R,E,V,P); +)set message time off +zeroSetSplit(lp)$T; +)set message time on +zeroSetSplit(lp)$T; +)set message time off + +output(" Ex. 2: Wang-16 ")$OutputPackage + +----------------------------------------------------------------------------- +--% Domains Definitions +----------------------------------------------------------------------------- + +)clear all +ls : List Symbol := [x,y,z,t,u]; +V := OVAR(ls); +R := Integer; +E := IndexedExponents V; +P := NSMP(R, V); +LP := List(P); + +----------------------------------------------------------------------------- +--% Initialisations +----------------------------------------------------------------------------- + +x: P := 'x; +y: P := 'y; +z: P := 'z; +t: P := 't; +u: P := 'u; +f0 := u-2; +f1:= 2*(u-1)^2+2*(x-z*x+z^2)+y^2*(x-1)^2-2*u*x+2*y*t*(1-x)*(x-z)+2*u*z*t*(t-y)+u^2*t^2*(1-2*z)+2*u*t^2*(z-x)+2*u*t*y*(z-1)+2*u*z*x*(y+1)+(u^2-2*u)*z^2*t^2+2*u^2*z^2+4*u*(1-u)*z+t^2*(z-x)^2; +f2:= t*(2*z+1)*(x-z)+y*(z+2)*(1-x)+u*(u-2)*t+u*(1-2*u)*z*t+u*y*(x+u-z*x-1)+u*(u+1)*z^2*t; +f3:= -u^2*(z-1)^2+2*z*(z-x)-2*(x-1); +f4:= u^2+4*(z-x^2)+3*y^2*(x-1)^2-3*t^2*(z-x)^2 +3*u^2*t^2*(z-1)^2+u^2*z*(z-2)+6*u*t*y*(z+x+z*x-1); +lp :=[f0,f1,f2,f3,f4]; + + +T := REGSET(R,E,V,P); +)set message time off +zeroSetSplit(lp)$T; +)set message time on +zeroSetSplit(lp)$T; +)set message time off + +output(" Ex. 3: Rose ")$OutputPackage + +----------------------------------------------------------------------------- +--% Domains Definitions +----------------------------------------------------------------------------- + +)clear all +ls : List Symbol := [z,y,x]; +V := OVAR(ls); +R := Integer; +E := IndexedExponents V; +P := NSMP(R, V); +LP := List(P); + +----------------------------------------------------------------------------- +--% Initialisations +----------------------------------------------------------------------------- + +x: P := 'x; +y: P := 'y; +z: P := 'z; +f1 := 7*y**4 - 20*x**2 ; +f2:= (2160*x**2 + 1512*x +315)*z**4-4000*x**2-2800*x-490 ; +f3 := (67200000*x**5 + 94080000*x**4 + 40924800*x**3 + 2634240*x**2-2300844*x-432180)*y**3 + ((40320000*x**6 + 28800000*x**5 + 21168000*x**3 + 4939200*x**2 + 347508*x)*z)*y**2 + ((-23520000*x**4-41395200*x**3-26726560*x**2-7727104*x-852355)*z**2)*y + (-10080000*x**4-28224000*x**3-15288000*x**2-1978032*x-180075)*z**3 ; +lp := [f1,f2,f3]; + + +T := REGSET(R,E,V,P); +)set message time off +zeroSetSplit(lp)$T; +)set message time on +zeroSetSplit(lp)$T; +)set message time off + +output(" Ex. 4: L-3 ")$OutputPackage + +----------------------------------------------------------------------------- +--% Domains Definitions +----------------------------------------------------------------------------- + +)clear all +ls: List Symbol := [x,y,z,t]; +V := OVAR ls; +R := Integer; +E := IndexedExponents V; +P := NSMP(R, V); +LP := List(P); + +----------------------------------------------------------------------------- +--% Initialisations +----------------------------------------------------------------------------- + +x: P := `x; +y: P := `y; +z: P := `z +t: P := `t; +p1 := x^3 + y + z + t- 1; +p2 := x + y^3 + z + t -1; +p3 := x + y + z^3 + t-1; +p4 := x + y + z + t^3 -1; +lp := [p1,p2,p3,p4]; + +T := REGSET(R,E,V,P); +)set message time off +zeroSetSplit(lp)$T; +)set message time on +zeroSetSplit(lp)$T; +)set message time off + +output(" Ex. 5:Butcher ")$OutputPackage + +----------------------------------------------------------------------------- +--% Domains Definitions +----------------------------------------------------------------------------- + +)clear all +ls : List Symbol := [b1,x,y,z,t,v,u,w]; +V := OVAR(ls); +R := Integer; +E := IndexedExponents V; +P := NSMP(R, V); +LP := List(P); + +----------------------------------------------------------------------------- +--% Initialisations +----------------------------------------------------------------------------- + +b1: P := 'b1; +x: P := 'x; +y: P := 'y; +z: P := 'z; +t: P := 't; +u: P := 'u; +v: P := 'v; +w: P := 'w; +f0 := b1 + y + z - t - w; +f1 := 2*z*u + 2*y*v + 2*t*w - 2*w**2 - w - 1 ; +f2 := 3*z*u**2 + 3*y*v**2 - 3*t*w**2 + 3*w**3 + 3*w**2 - t + 4*w ; +f3 := 6*x*z*v - 6*t*w**2 + 6*w**3 - 3*t*w + 6*w**2 - t + 4*w ; +f4 := 4*z*u**3+ 4*y*v**3+ 4*t*w**3- 4*w**4 - 6*w**3+ 4*t*w- 10*w**2- w- 1 ; +f5 := 8*x*z*u*v +8*t*w**3 -8*w**4 +4*t*w**2 -12*w**3 +4*t*w -14*w**2 -3*w -1 ; +f6 := 12*x*z*v**2+12*t*w**3 -12*w**4 +12*t*w**2 -18*w**3 +8*t*w -14*w**2 -w -1; +f7 := -24*t*w**3 + 24*w**4 - 24*t*w**2 + 36*w**3 - 8*t*w + 26*w**2 + 7*w + 1 ; + +lp := [f0,f1,f2,f3,f4,f5,f6,f7]; +T := REGSET(R,E,V,P); +)set message time off +zeroSetSplit(lp)$T; +)set message time on +zeroSetSplit(lp)$T; +)set message time off + +output(" Ex. 6 : Hairer-2 ")$OutputPackage + +----------------------------------------------------------------------------- +--% Domains Definitions +----------------------------------------------------------------------------- + +)clear all +ls : List Symbol := [A43,A42,A41,A32,A31,A21,B1,B2,B3,B4,C4,C3,C2]; +V := OVAR(ls); +R := Integer; +E := IndexedExponents V; +P := NSMP(R, V); +LP := List(P); + +----------------------------------------------------------------------------- +--% Initialisations +----------------------------------------------------------------------------- + +A43: P := 'A43; +A42: P := 'A42; +A41: P := 'A41; +A32: P := 'A32; +A31: P := 'A31; +A21: P := 'A21; +B1: P := 'B1; +B2: P := 'B2; +B3: P := `B3; +B4: P := `B4; +C4: P := `C4; +C3: P := `C3; +C2: P := `C2; +f1 := B1+B2+B3+B4-1 ; +f2 := 2*B2*C2 + 2*B3*C3 + 2*B4*C4 - 1 ; +f3 := 3*B2*C2**2 +3*B3*C3**2 +3*B4*C4**2 -1 ; +f4 := 6*B3*A32*C2 +6*B4*A42*C2 +6*B4*A43*C3 -1 ; +f5 := 4*B2*C2**3 +4*B3*C3**3 +4*B4*C4**3 -1 ; +f6 := 8*B3*C3*A32*C2 +8*B4*C4*A42*C2 +8*B4*C4*A43*C3 -1 ; +f7 := 12*B3*A32*C2**2 +12*B4*A42*C2**2 +12*B4*A43*C3**2 -1 ; +f8 := 24*B4*A43*A32*C2 -1 ; +f9 := -A21+C2 ; +f10 := -A31-A32+C3 ; +f11 := -A41-A42-A43+C4 ; + +lp := [f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11]; + +T := REGSET(R,E,V,P); +)set message time off +zeroSetSplit(lp)$T; +)set message time on +zeroSetSplit(lp)$T; +)set message time off + +output(" Ex. 7 : Lichtblau ")$OutputPackage + +----------------------------------------------------------------------------- +--% Domains Definitions +----------------------------------------------------------------------------- + +)clear all +ls : List Symbol := [t,y,x]; +V := OVAR(ls); +R := Integer; +E := IndexedExponents V; +P := NSMP(R, V); +LP := List(P); + +----------------------------------------------------------------------------- +--% Initialisations +----------------------------------------------------------------------------- + +x: P := 'x; +y: P := 'y; +t: P := 't; +p1 := x-110*t^2+495*t^3-1320*t^4+2772*t^5-5082*t^6+7590*t^7-8085*t^8+5555*t^9-2189*t^10+374*t^11; +p2 := y-22*t+110*t^2-330*t^3+1848*t^5-3696*t^6+3300*t^7-1650*t^8+550*t^9-88*t^10-22*t^11; +lp := [p1, p2]; + +T := REGSET(R,E,V,P); +)set message time off +zeroSetSplit(lp)$T; +)set message time on +zeroSetSplit(lp)$T; +)set message time off + +output(" Ex. 8: Liu original ")$OutputPackage + +----------------------------------------------------------------------------- +--% Domains Definitions +----------------------------------------------------------------------------- + +)clear all +ls : List Symbol := [x,y,z,t,a]; +V := OVAR(ls); +R := Integer; +E := IndexedExponents V; +P := NSMP(R, V); +LP := List(P); + +----------------------------------------------------------------------------- +--% Initialisations +----------------------------------------------------------------------------- + +x: P := 'x; +y: P := 'y; +z: P := 'z; +t: P := 't; +a: P := 'a; +p1 := y*(z-t)-x+a ; +p2 := z*(t-x)-y+a ; +p3 := t*(x-y)-z+a ; +p4 := x*(y-z)-t+a ; +lp := [p1,p2,p3,p4] ; + + +T := REGSET(R,E,V,P); +)set message time off +zeroSetSplit(lp)$T; +)set message time on +zeroSetSplit(lp)$T; +)set message time off + +output(" Ex. 9: Liu homog. ")$OutputPackage + +----------------------------------------------------------------------------- +--% Domains Definitions +----------------------------------------------------------------------------- + +)clear all +ls : List Symbol := [x,y,z,t,a,h]; +V := OVAR(ls); +R := Integer; +E := IndexedExponents V; +P := NSMP(R, V); +LP := List(P); + +----------------------------------------------------------------------------- +--% Initialisations +----------------------------------------------------------------------------- + +x: P := 'x; +y: P := 'y; +z: P := 'z; +t: P := 't; +a: P := 'a; +h: P := 'h; +p1 := y*z-y*t-x*h+a*h; +p2 := z*t-z*x-y*h+a*h; +p3 := t*x-y*t-z*h+a*h; +p4 := x*y-z*x-t*h+a*h; +lp := [p1,p2,p3,p4] ; + + +T := REGSET(R,E,V,P); +)set message time off +zeroSetSplit(lp)$T; +)set message time on +zeroSetSplit(lp)$T; +)set message time off + +output(" Ex. 10: Vermeer ")$OutputPackage + +----------------------------------------------------------------------------- +--% Domains Definitions +----------------------------------------------------------------------------- + +)clear all +ls : List Symbol := [w,v,u,y,x]; +V := OVAR(ls); +R := Integer; +E := IndexedExponents V; +P := NSMP(R, V); +LP := List(P); + +----------------------------------------------------------------------------- +--% Initialisations +----------------------------------------------------------------------------- + +x: P := 'x; +y: P := 'y; +u: P := 'u; +v: P := 'v; +w: P := 'w; +p1 := (x - u) ** 2 + (y - v) ** 2 - 1 ; +p2 := v ** 2 - u ** 3 ; +p3 := 2 * v * (x - u) + 3 * u ** 2 * (y - v) ; +f1 := (3 * w * u ** 2 - 1) ; +f2 := (2 * w * v - 1) ; +p4 := f1 * f2 ; +lp := [p1,p2,p3,p4] ; + + +T := REGSET(R,E,V,P); +)set message time off +zeroSetSplit(lp)$T; +)set message time on +zeroSetSplit(lp)$T; +)set message time off + +output(" Ex. 11: Wu-Wang-2" ) + +----------------------------------------------------------------------------- +--% Domains Definitions +----------------------------------------------------------------------------- + +)clear all +ls : List Symbol := reverse [x10,x11,x12,x13,x21,x22,x23,x30,x101,x102,x103,x104,x105]; +V := OVAR(ls); +R := Integer; +E := IndexedExponents V; +P := NSMP(R, V); +LP := List(P); + +----------------------------------------------------------------------------- +--% Initialisations +----------------------------------------------------------------------------- + +x10: P := 'x10; +x11:P := 'x11; +x12:P := 'x12; +x13:P := 'x13; +x21:P := 'x21; +x22:P := 'x22; +x23:P := 'x23; +x30:P := 'x30; +x101:P := 'x101; +x102:P := 'x102; +x103:P := 'x103; +x104:P := 'x104; +x105:P := 'x105;f1:=x21-x12-x13; +f2:=x22-x11-x13; +f3:=x23-x11-x12; +f4:=x30-x11^3-x12^3-x13^3; +f5:=x21*x22*x23-x10*x30; +f6:=x10+x101*f1+x102*f2+x103*f3+x104*f4+x105*f5; +f7 := differentiate(f6,'x11); +f8 := differentiate(f6,'x12); +f9 := differentiate(f6,'x13); +f10 := differentiate(f6,'x21); +f11 := differentiate(f6,'x21); +f12 := differentiate(f6,'x22); +f13 := differentiate(f6,'x23); +f14 := differentiate(f6,'x23); +f15 := differentiate(f6,'x30); +f16 := differentiate(f6,'x10); +lp:=[f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16]; + + + +T := REGSET(R,E,V,P); +)set message time off +zeroSetSplit(lp)$T; +)set message time on +zeroSetSplit(lp)$T; +)set message time off + +output(" Ex. 12: f-633 ")$OutputPackage + +----------------------------------------------------------------------------- +--% Domains Definitions +----------------------------------------------------------------------------- + +)clear all +ls : List Symbol := [U6,U5,U4,U3,U2,u6,u5,u4,u3,u2]; +V := OVAR(ls); +R := Integer; +E := IndexedExponents V; +P := NSMP(R, V); +LP := List(P); + +----------------------------------------------------------------------------- +--% Initialisations +----------------------------------------------------------------------------- + +U6: P := 'U6; +U5: P := 'U5; +U4: P := 'U4; +U3: P := 'U3; +U2: P := 'U2; +u6: P := 'u6; +u5: P := 'u5; +u4: P := 'u4; +u3: P := 'u3; +u2: P := 'u2; +p1 := 2*u6 + 2*u5 + 2*u4 + 2*u3 + 2*u2 + 1; +p2 := 8*U5*u6 + 8*U5*u5 + 8*U4*u6 +8*U4*u5 + 8*U4*u4 + 8*U3*u6 + 8*U3*u5 + 8*U3*u4 + 8*U3*u3 + 8*U2*u6 +8*U2*u5 + 8*U2*u4 + 8*U2*u3 + 8*U2*u2 -13; +p3 := 2*U6 + 2*U5 + 2*U4 + 2*U3 +2*U2 + 1; +p4 := 8*U6*u5 + 8*U6*u4 + 8*U6*u3 + 8*U6*u2 + 8*U5*u5 + 8*U5*u4 +8*U5*u3 + 8*U5*u2 + 8*U4*u4 + 8*U4*u3 + 8*U4*u2 + 8*U3*u3 + 8*U3*u2 +8*U2*u2 -13; +p6 := U2*u2 -1; +p7 := U3*u3 -1; +p8 := U4*u4 -1; +p9 := U5*u5 -1; +p10 := U6*u6 -1; +lp := [p1,p2,p3,p4,p6,p7,p8,p9,p10]; + + + +T := REGSET(R,E,V,P); +)set message time off +zeroSetSplit(lp)$T; +)set message time on +zeroSetSplit(lp)$T; +)set message time off + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/matbug.input.pamphlet b/src/input/matbug.input.pamphlet new file mode 100644 index 00000000..fd4dbe23 --- /dev/null +++ b/src/input/matbug.input.pamphlet @@ -0,0 +1,37 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input matbug.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> + +msq := Matrix SquareMatrix(2,POLY INT) +m : msq := zero(2,2) +m(1,1) := matrix([[1,2],[a,b]]) +m(1,2) := matrix([[a,b],[2,b]]) +m(2,2) := matrix([[1,2],[2,b]]) +m +m*m +m**2 +m**3 +(m*m)*m +mm:=m*m +mm*m + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/matops.as.pamphlet b/src/input/matops.as.pamphlet new file mode 100644 index 00000000..0544995c --- /dev/null +++ b/src/input/matops.as.pamphlet @@ -0,0 +1,79 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input matops.as} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{Input tests} +<<input>>= +)compile matops.as +)show MatrixOpSym +matrix [[3,4],[5,6]] +symmetricPart % +@ +\section{License} +<<license>>= +-- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. +-- All rights reserved. +-- +-- Redistribution and use in source and binary forms, with or without +-- modification, are permitted provided that the following conditions are +-- met: +-- +-- - Redistributions of source code must retain the above copyright +-- notice, this list of conditions and the following disclaimer. +-- +-- - Redistributions in binary form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in +-- the documentation and/or other materials provided with the +-- distribution. +-- +-- - Neither the name of The Numerical ALgorithms Group Ltd. nor the +-- names of its contributors may be used to endorse or promote products +-- derived from this software without specific prior written permission. +-- +-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +-- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +-- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +-- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +-- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +-- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +-- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +-- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +-- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +-- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +@ +<<*>>= +<<license>> +#include "axiom.as" +#pile + +MatrixOpSym(R:Field) : MOD == Definition where + Mat ==> Matrix R + + MOD ==> with + + symmetricPart : Mat -> Mat + ++ \spad{symmetricPart(m)} returns the symmetric part of m + + Definition ==> add + + symmetricPart(m:Mat) : Mat == + m1:=transpose m + import from Integer + import from R + inv(2::R) *(m+m1) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/matrix.input.pamphlet b/src/input/matrix.input.pamphlet new file mode 100644 index 00000000..3b4e50a5 --- /dev/null +++ b/src/input/matrix.input.pamphlet @@ -0,0 +1,97 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input matrix.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)cl all + +-- A number of matrix computations over the integers and over the +-- rationals using various algortihms and indexing schemes. + +-- Hilbert matrix + +mat : MATRIX FRAC INT := matrix [[1/(i + j) for i in 1..5] for j in 1..5] +matinv := inverse mat +mat * matinv + +-- same computation, different indexing + +mat1 : IMATRIX(FRAC INT,-3,47) := _ + matrix [[1/(i + j) for i in 1..5] for j in 1..5] +mat1inv := inverse mat1 +mat1 * mat1inv + +-- Vandermonde determinant + +mat2 : MATRIX INT := matrix [[j**i for i in 0..4] for j in 1..5] +rowEchelon mat2 +determinant mat2 +minordet mat2 + +-- same computation, different indexing + +mat3 : IMATRIX(INT,13,-7) := _ + matrix [[j**i for i in 0..4] for j in 1..5] +rowEchelon mat3 +determinant mat3 +minordet mat3 + +-- same computation, work over the rationals + +mat4 : MATRIX FRAC INT := matrix [[j**i for i in 0..4] for j in 1..5] +rowEchelon mat4 +determinant mat4 +minordet mat4 + +-- same computation, different indexing + +mat5 : IMATRIX(FRAC INT,-113,37) := _ + matrix [[j**i for i in 0..4] for j in 1..5] +rowEchelon mat5 +determinant mat5 +minordet mat5 + +mat6 : MATRIX INT := matrix [[1,2,3],[4,5,6],[7,8,9]] +rowEchelon mat6 +rank mat6 +nullity mat6 +nullSpace mat6 + +mat7 : IMATRIX(FRAC INT,163,61657) := matrix [[1,2,3],[4,5,6],[7,8,9]] +rowEchelon mat7 +rank mat7 +nullity mat7 +nullSpace mat7 + +mat8 : MATRIX INT := _ + matrix [[1,-2,13,0,5,-47],[-4,15,0,16,-2,1],[-7,0,8,-11,9,0]] +rowEchelon mat8 +rank mat8 +nullity mat8 +nullSpace mat8 + +mat9 : IMATRIX(FRAC INT,163,61657) := _ + matrix [[1,-2,13,0,5,-47],[-4,15,0,16,-2,1],[-7,0,8,-11,9,0]] +rowEchelon mat9 +rank mat9 +nullity mat9 +nullSpace mat9 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/matrix1.input.pamphlet b/src/input/matrix1.input.pamphlet new file mode 100644 index 00000000..1aa2d81f --- /dev/null +++ b/src/input/matrix1.input.pamphlet @@ -0,0 +1,68 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input MATRIX.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from MatrixXmpPage +)clear all + + +-- Input generated from ugxMatrixCreatePage +)clear all + +m : Matrix(Integer) := new(3,3,0) +setelt(m,2,3,5) +m(1,2) := 10 +m +matrix [[1,2,3,4],[0,9,8,7]] +dm := diagonalMatrix [1,x**2,x**3,x**4,x**5] +setRow!(dm,5,vector [1,1,1,1,1]) +setColumn!(dm,2,vector [y,y,y,y,y]) +cdm := copy(dm) +setelt(dm,4,1,1-x**7) +[dm,cdm] +subMatrix(dm,2,3,2,4) +d := diagonalMatrix [1.2,-1.3,1.4,-1.5] +e := matrix [[6.7,9.11],[-31.33,67.19]] +setsubMatrix!(d,1,2,e) +d +a := matrix [[1/2,1/3,1/4],[1/5,1/6,1/7]] +b := matrix [[3/5,3/7,3/11],[3/13,3/17,3/19]] +horizConcat(a,b) +vab := vertConcat(a,b) +transpose vab + +-- Input generated from ugxMatrixOpsPage +)clear all + +m := matrix [[1,2],[3,4]] +4 * m * (-5) +n := matrix([[1,0,-2],[-3,5,1]]) +m * n +vec := column(n,3) +vec * m +m * vec +hilb := matrix([[1/(i + j) for i in 1..3] for j in 1..3]) +inverse(hilb) +mm := matrix([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) +inverse(mm) +determinant(mm) +trace(mm) +rank(mm) +nullity(mm) +nullSpace(mm) +rowEchelon(mm) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/matrix22.input.pamphlet b/src/input/matrix22.input.pamphlet new file mode 100644 index 00000000..95e1417f --- /dev/null +++ b/src/input/matrix22.input.pamphlet @@ -0,0 +1,45 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input matrix22.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)clear all +-- this file shows nesting of matrices +m:SQMATRIX(2,INT) := squareMatrix matrix [[0,1],[-1,0]] +-- this determinant can be computed +determinant m +n:SQMATRIX(2,SQMATRIX(2,INT)) := + squareMatrix matrix [[m,m**2],[m**3,m**4]] +-- this determinant cannot be computed by Scratchpad II +-- because there is no function that computes the determinant of a +-- matrix whose entries belong to a noncommutative ring +)set mes test off +determinant n +)set mes test on +-- another level of matrix +o:SQMATRIX(2,SQMATRIX(2,SQMATRIX(2,INT))) := + squareMatrix matrix [[n,n**2],[n**3,n**4]] +o ** 2 +-- add 2 to this matrix +% + 2 +-- what is 2 as a matrix? +o := 2 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/matrox.input.pamphlet b/src/input/matrox.input.pamphlet new file mode 100644 index 00000000..1bfc6605 --- /dev/null +++ b/src/input/matrox.input.pamphlet @@ -0,0 +1,95 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input matrox.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- Screen setup for graphics demos for the matrox card screen width + + +--)lo clip grdef viewdef draw2d )update +--)lo grimage view2D )up + + +-- 2D things + + -- demo of adaptive plotting +--)cl all +--)r adaptive +-- these should be set already +setAdaptive true -- this is the default +viewDefaults() -- ditto + +--)r "/spad/graphics/oldInput/curl" +draw(curve(sin(t)*sin(2*t)*sin(3*t),sin(4*t)*sin(5*t)*sin(6*t)),t=0..2*pi()) +curl1:=getGraph(c1:=%,1) + +setAdaptive false +viewXPos 410 +pointColor pastel yellow(); +lineColor pastel blue(); +--)r "/spad/graphics/oldInput/curl" +rc := range curl1 +--draw2D(rc.xRange,rc.yRange,sin(t)*sin(2*t)*sin(3*t),sin(4*t)*sin(5*t)*sin(6*t),0..2*pi()) +draw(curve(sin(t)*sin(2*t)*sin(3*t),sin(4*t)*sin(5*t)*sin(6*t)),t=0..2*pi(),[ranges([rc.0,rc.1])]) +curl2:=getGraph(c2:=%,1) + +curl:=viewport2D() +title(curl,"Adaptive vs Non-Adaptive") +putGraph(curl,curl1,1) +putGraph(curl,curl2,2) +key curl +curly:=makeViewport2D curl +key curly + +resize(curly,368,428) +move(curly,905,588) + +-- reset defaults +setAdaptive true +viewDefaults() + + -- implicit graphs +--pointColor pastel red() +--lineColor light blue() +--)r cart +--cart := % +--resize(cart,277,180) +--move(cart,600,483) + +viewDefaults() + + +-- a few 3D things + +--)r wiggle +--wiggle:=% +wiggle:=draw(cos(x*y),x=-3..3,y=-3..3) +move(wiggle,876,200) + +--)r lumpy +--lumpy:=% +lumpy:=sin(2*x**2 + 3 * y**2)/(x**2 + y**2) +resize(lumpy,300,330) +move(lumpy,600,688) + +--)r torus +--donut:=% +fcolor(x:SF):SF == x +--donut:=newdraw(sin t,cos t,0,fcolor,t=0..2*%pi) +donut:=draw(surface(sin t,cos t,0),fcolor,t=0..2*%pi) +resize(donut,374,180) +move(donut,900,0) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/mfinfact.input.pamphlet b/src/input/mfinfact.input.pamphlet new file mode 100644 index 00000000..8ca0f07b --- /dev/null +++ b/src/input/mfinfact.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input mfinfact.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +p:POLY PF 7 :=6*x +6*y +6*z +x^49+y^49+z^49 +factor p + +p:POLY PF 7:=(x+3*y+z)*(w*x+y)*(x*y+w**3) +factor p +pp:=p**2 +gcd(p,differentiate(p,x)) + +p23:POLY PF 23:=(x+3*y+z)*(w*x+y)*(x*y+w**3) +factor(p23) + +q: POLY PF 2 := y**4 + y**3 + x**4 + x**2 +factor q +factor(q*(q+1)) + +q:=x**2*y**2+z +factor(q*(1+q)) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/mkfunc.input.pamphlet b/src/input/mkfunc.input.pamphlet new file mode 100644 index 00000000..a5ed4f0e --- /dev/null +++ b/src/input/mkfunc.input.pamphlet @@ -0,0 +1,31 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input MKFUNC.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from MakeFunctionXmpPage +)clear all + +expr := (x - exp x + 1)**2 * (sin(x**2) * x + 1)**3 +function(expr, f, x) +tbl := [f(0.1 * i - 1) for i in 0..20]; +e := (x - y + 1)**2 * (x**2 * y + 1)**2 +function(e, g, [x, y]) +function(e, h, x, y) +m1 := squareMatrix [[1, 2], [3, 4]] +m2 := squareMatrix [[1, 0], [-1, 1]] +h(m1, m2) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/mountain.input.pamphlet b/src/input/mountain.input.pamphlet new file mode 100644 index 00000000..915ab7cd --- /dev/null +++ b/src/input/mountain.input.pamphlet @@ -0,0 +1,133 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input mountain.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +-- Draw a fractal mountain + +)clear all + +-- compile the functions +)set function compile on + +-- Generate Gaussian random numbers +-- Algorithm by Richard Voss from "The Science of Fractal Images", pg. 77 + +-- function to convert a number into machine floating point +sf f == f::DFLOAT + +Nrand := 4 +Arand := 2**26 - 1 +GaussAdd := sqrt(sf(3.0) * Nrand) +GaussFac := sf(2.0) * GaussAdd/((sf Nrand) * (sf Arand)) + +-- generate a random number +Gauss() == + sum := sf 0.0 + for i in 1..Nrand repeat + sum := sum + random()$INT + GaussFac * sum - GaussAdd + +-- Generate fractal mountains. + +-- Algorithms by Richard Voss from "The Science of Fractal Images", pg. 100 + +sfHalf := sf 0.5 +sfThree := sf 3.0 +sfFour := sf 4.0 + +f3(delta,x0,x1,x2) == (x0+x1+x2)/sfThree + delta*Gauss() +f4(delta,x0,x1,x2,x3) == (x0+x1+x2+x3)/sfFour + delta*Gauss() + +-- perform midpoint subdivision +MidPointFM(maxLevel, sigma, H) == + N := 2**maxLevel + delta := sigma + arraySize := (N+1) + X:IARRAY2(DFLOAT,0,0) := new(arraySize, arraySize, sf 0.0) + setelt(X, 0, 0, delta*Gauss()) + setelt(X, 0, N, delta*Gauss()) + setelt(X, N, 0, delta*Gauss()) + setelt(X, N, N, delta*Gauss()) + D := N + d := N quo 2 + for stage in 1..maxLevel repeat + delta := delta*(sfHalf**(sfHalf*H)) + for x in d..(N-d) by D repeat + for y in d..(N-d) by D repeat + setelt(X, x, y, f4(delta, elt(X,x+d,y+d), elt(X,x+d,y-d), + elt(X, x-d, x+d), elt(X, x-d, y-d))) + for x in 0..N by D repeat + for y in 0..N by D repeat + setelt(X, x, y, elt(X,x,y) + delta*Gauss()) + delta := delta*(sfHalf**(sfHalf*H)) + for x in d..(N-d) by D repeat + setelt(X,x,0, f3(delta, elt(X,x+d,0), elt(X,x-d,0), elt(X,x,d))) + setelt(X,x,N, f3(delta, elt(X,x+d,N), elt(X,x-d,N), elt(X,x,N-d))) + setelt(X,0,x, f3(delta, elt(X,0,x+d), elt(X,0,x-d), elt(X,d,x))) + setelt(X,N,x, f3(delta, elt(X,N,x+d), elt(X,N,x-d), elt(X,N-d,x))) + for x in d..(N-d) by D repeat + for y in D..(N-d) by D repeat + setelt(X,x,y, f4(delta, elt(X,x,y+d), elt(X,x,y-d), + elt(X,x+d,y), elt(X,x-d,y))) + for x in D..(N-d) by D repeat + for y in d..(N-d) by D repeat + setelt(X,x,y, f4(delta, elt(X,x,y+d), elt(X,x,y-d), + elt(X,x+d,y), elt(X,x-d,y))) + for x in 0..N by D repeat + for y in 0..N by D repeat + setelt(X,x,y, elt(X,x,y) + delta*Gauss()) + for x in d..(N-d) by D repeat + for y in d..(N-d) by D repeat + setelt(X,x,y, elt(X,x,y) + delta*Gauss()) + D := D quo 2 + d := d quo 2 + X + + +sfZero := sf 0 +Sigma := sf 7 + +-- function passed to the draw +tableVal(x: DFLOAT, y:DFLOAT):DFLOAT == + free table, xIndex, yIndex, rowSize + val := elt(table, xIndex, yIndex) + xIndex := xIndex + 1 + if xIndex > rowSize then (xIndex := 0; yIndex := yIndex + 1) + val < sfZero => sfZero + val + +-- draw a mountain with maxLevel subdivisions with Haussdorf dimension H +-- the number of subdivisions of the mountain is 2**maxLevel, so you +-- probably should keep maxLevel <= 8. Also 0 < H <= 1. The closer +-- H is to one, the smoother the mountain will be. +drawMountain(maxLevel, H) == + free table, xIndex, yIndex, rowSize + table := MidPointFM(maxLevel, Sigma, H) + N := 2**maxLevel + xIndex := 0 + yIndex := 0 + rowSize := N + draw(tableVal, -20..20, -20..20, + var1Steps == N, var2Steps == N, title == "Fractal Mountain") + +drawMountain(3, sf 0.95) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/mpoly.input.pamphlet b/src/input/mpoly.input.pamphlet new file mode 100644 index 00000000..e60d2e64 --- /dev/null +++ b/src/input/mpoly.input.pamphlet @@ -0,0 +1,32 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input MPOLY.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from MultivariatePolynomialXmpPage +)clear all + +m : MPOLY([x,y],INT) := (x**2 - x*y**3 +3*y)**2 +m :: MPOLY([y,x],INT) +p : MPOLY([x,y],POLY INT) +p := (a**2*x - b*y**2 + 1)**2 +p :: POLY INT +% :: MPOLY([a,b],POLY INT) +q : UP(x, FRAC MPOLY([y,z],INT)) +q := (x**2 - x*(z+1)/y +2)**2 +q :: UP(z, FRAC MPOLY([x,y],INT)) +q :: MPOLY([x,z], FRAC UP(y,INT)) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/mset.input.pamphlet b/src/input/mset.input.pamphlet new file mode 100644 index 00000000..1d057f85 --- /dev/null +++ b/src/input/mset.input.pamphlet @@ -0,0 +1,43 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input mset.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +macro I == Integer +macro symdif == symmetricDifference +s:Multiset I +t:Multiset I +t1:Multiset I +s := multiset [1,2,3,4,5,4,3,2,3,4,5,6,7,4,10] +t := multiset [2,2,2,9] + +union(s,t) +union(s,s) +intersect(s,t) +difference(s,t) +symdif(s,t) +symdif(s,s) + +t1 := multiset [2,2] +[t1 < t, t1 < s, t1 <= t, t1 <= s] +t1 := multiset [2,2,2] +[t1 < t, t1 < s, t1 <= t, t1 <= s] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/mset2.input.pamphlet b/src/input/mset2.input.pamphlet new file mode 100644 index 00000000..4f6d2337 --- /dev/null +++ b/src/input/mset2.input.pamphlet @@ -0,0 +1,34 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input MSET.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from MultiSetXmpPage +)clear all + +s := multiset [1,2,3,4,5,4,3,2,3,4,5,6,7,4,10] +insert!(3,s) +remove!(3,s,1); s +remove!(5,s); s +count(5,s) +t := multiset [2,2,2,-9] +U := union(s,t) +I := intersect(s,t) +difference(s,t) +S := symmetricDifference(s,t) +(U = union(S,I))@Boolean +t1 := multiset [1,2,2,3]; [t1 < t, t1 < s, t < s, t1 <= s] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/mult2d.input.pamphlet b/src/input/mult2d.input.pamphlet new file mode 100644 index 00000000..0a3526a8 --- /dev/null +++ b/src/input/mult2d.input.pamphlet @@ -0,0 +1,56 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input mult2d.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all + +--draws x**i for i in 1..5, x=-1..1 + +makePoint(x:SF,y:SF):(Point SF) == + point([x,y])$(Point SF) + +drawFun(fn:SF->SF, seg:Segment Float):List(List(Point SF)) == + fp := (t:SF):Point SF +-> makePoint(t, fn(t)) + plot := pointPlot(fp, segment(convert(lo seg)@SF, convert(hi seg)@SF))$PLOT + lp := listBranches(plot)$PLOT + +drawFuns(fl:List(SF->SF), seg:SegmentBinding Float):VIEW2D == + v := viewport2D()$VIEW2D + i : PositiveInteger := 1 + for f in fl repeat + llp := drawFun(f, segment seg) + g := graphCurves(llp)$VIEW + putGraph(v,g,i)$VIEW2D + i := i + 1 + makeViewport2D(v)$VIEW2D + +makeListFuns(fl:List(Expression Integer),_ + seg:SegmentBinding Float):List(SF->SF) == + lfuns:List(SF->SF) := empty() + for f in fl repeat + ff : (SF->SF) := makeFloatFunction(f, variable seg)$MakeFloatCompiledFunction(Expression Integer) + lfuns := cons(ff, lfuns) + lfuns + +drawFuns(makeListFuns([x**i for i in 1..5], x=-1..1), x=-1..1) +drawFuns(makeListFuns([sin(x*i) for i in 1..5], x=-1..1), x=-1..1) +drawFuns(makeListFuns([sec x, sin x, cos x, tan x], x=-1..1), x=-1..1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/mult3d.input.pamphlet b/src/input/mult3d.input.pamphlet new file mode 100644 index 00000000..4920aaf9 --- /dev/null +++ b/src/input/mult3d.input.pamphlet @@ -0,0 +1,73 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input mult3d.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)clear all +s := create3Space()$ThreeSpace(DFLOAT) +draw(curve(sin(t),cos(t),0),t=0..2*%pi,tubeRadius==.3, space == s) +draw(curve(sin(t)*cos(%pi/2),cos(t),0-sin(t)*sin(%pi/2)),t=0..2*%pi,tubeRadius==.3, space == s) + +v1 := draw(curve(sin(t),cos(t),0),t=0..2*%pi,tubeRadius==.3) +s1 := subspace(v1) +v2 := draw(curve(sin(t)*cos(%pi/2),cos(t),0-sin(t)*sin(%pi/2)),t=0..2*%pi,tubeRadius==.3, space == s1) +s2 := subspace(v2) + +)clear all +v := draw(surface(x*cos(y),x*sin(y),y*cos(x)),x=-4..4,y=0..2*%pi) +s := subspace(v) +makeObject(curve(4*sin(t),4*cos(t),-4),t=0..2*%pi,tubeRadius==.3, space == s) +makeObject(curve(4*sin(t),4*cos(t),0),t=0..2*%pi,tubeRadius==.3, space == s) +draw(curve(4*sin(t),4*cos(t),4),t=0..2*%pi,tubeRadius==.3, space == s) + +)clear all +s := makeObject(surface(cos(t)*sin(p),sin(t)*sin(p),cos(p)),t=0..2*%pi,p=0..%pi) +makeObject(curve(4*sin(t)*cos(%pi/2),4*cos(t),0-sin(t)*sin(%pi/2)),t=0..2*%pi,tubeRadius==.3, space == s) +draw(curve(2*sin(t),2*cos(t),0),t=0..2*%pi,tubeRadius==.3, space == s) + +)clear all +s := makeObject(curve(4*sin(t),4*cos(t),0),t=0..2*%pi,tubeRadius==.3) +makeObject(surface(cos(t)*sin(p),sin(t)*sin(p),cos(p)),t=0..2*%pi,p=0..%pi, space == s) +makeObject(surface(cos(t)*sin(p)-3,sin(t)*sin(p)-3,cos(p)+2),t=0..2*%pi,p=0..%pi, space == s) +draw(surface(cos(t)*sin(p)-6,sin(t)*sin(p)-6,cos(p)+4),t=0..2*%pi,p=0..%pi, space == s) + +)clear all +s := create3Space()$ThreeSpace(DFLOAT) +draw(cos(x*y)+1,x=-3..3,y=-3..3, space == s) +draw(-cos(x*y)-1,x=-3..3,y=-3..3, space == s) + +)clear all +torusInKnot(p,q,r) == + free sp + sp := create3Space()$ThreeSpace(DFLOAT) + a := 1 + b := 1 + ab := a+b + fac := 2*ab/(1.1*ab-sin(q*t)) + Title := concat("Torus Knot of Type (", concat(p::String, + concat(",", concat(q::String, ")")))) + Curve := curve(a*fac*cos(p*t), a*fac*sin(p*t), b*fac*cos(q*t)) + r = 0 => draw(Curve, t=0..2*%pi, title == Title) + draw(Curve, t=0..2*%pi, tubeRadius == r, title == Title, space == sp) + +torusInKnot(15,17,.1) +draw(curve(2.2*sin(t),2.2*cos(t),0),t=0..2*%pi,tubePoints==10,tubeRadius==.7, space == sp) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/multKnot.input.pamphlet b/src/input/multKnot.input.pamphlet new file mode 100644 index 00000000..c051a0fb --- /dev/null +++ b/src/input/multKnot.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input multKnot.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)clear all +sp := create3Space()$ThreeSpace(DFLOAT) +torusInKnot(p,q,r) == + a := 1 + b := 1 + ab := a+b + fac := 2*ab/(1.1*ab-sin(q*t)) + Title := concat("Torus Knot of Type (", concat(p::String, + concat(",", concat(q::String, ")")))) + Curve := curve(a*fac*cos(p*t), a*fac*sin(p*t), b*fac*cos(q*t)) + r = 0 => draw(Curve, t=0..2*%pi, title == Title) + draw(Curve, t=0..2*%pi, tubeRadius == r, title == Title, space == sp) + +torusInKnot(15,17,.1) +cfxn(t:DFLOAT):DFLOAT == .7 +--draw(sp,curve(3*sin(t),3*cos(t),0),t=0..2*%pi,tubePoints==10,tubeRadius==.7) +draw(curve(2.4*sin(t),2.4*cos(t),0),t=0..2*%pi,tubePoints==10,tubeRadius==.8,colorFunction==cfxn, space == sp) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/multfact.input.pamphlet b/src/input/multfact.input.pamphlet new file mode 100644 index 00000000..5ec2a151 --- /dev/null +++ b/src/input/multfact.input.pamphlet @@ -0,0 +1,31 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input multfact.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> + +a := rootOf(a**2+a+1) +p := y*z**2 + a*z*x**2 + a*a*x*y**2 +-- following used to run forever, now returns 1 factor +factor(p,[a]) +b:=rootOf(b**2+1) +-- following used to run forever, now returns 2 factors +factor(x**2*y**2+u**2*v**2,[b]) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/multiple.input.pamphlet b/src/input/multiple.input.pamphlet new file mode 100644 index 00000000..ec8ba0d5 --- /dev/null +++ b/src/input/multiple.input.pamphlet @@ -0,0 +1,35 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input multiple.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)clear all +draw(sin(x),x=0..2*%pi) +v1 := % +draw(cos(x),x=0..2*%pi,curveColor==light red()) +v2 := % +graphs v1 +--g1 := elt(graphs v1,1)::GraphImage +g1 := getGraph(v1,1) +putGraph(v2,g1,2) +makeViewport2D(v2) +--title(v2,"sine and cosine") +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/ndftip.input.pamphlet b/src/input/ndftip.input.pamphlet new file mode 100644 index 00000000..32b74c8e --- /dev/null +++ b/src/input/ndftip.input.pamphlet @@ -0,0 +1,360 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ndftip.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> + +-- Note that the conversions of results from DoubleFloat to Float +-- will become unnecessary if outputGeneral is extended to apply to +-- DoubleFloat quantities. Those results not converted will, of +-- course, then be displayed to 6 s.f. + + +outputGeneral 6 + +seqA := [0.34907,0.54890,0.74776,0.94459,1.1385,1.3285,1.5137]; + +seqB := [0.34907 - 0.37168*%i, _ + 0.54890 - 0.35669*%i, _ + 0.74776 - 0.31175*%i, _ + 0.94459 - 0.23702*%i, _ + 1.13850 - 0.13274*%i, _ + 1.32850 + 0.00074*%i, _ + 1.51370 + 0.16298*%i]; + +hseqC : PackedHermitianSequence DoubleFloat +hseqC := packHS [0.34907, _ + 0.54890 + %i*1.51370, _ + 0.74776 + %i*1.32850, _ + 0.94459 + %i*1.13850, _ + 0.94459 - %i*1.13850, _ + 0.74776 - %i*1.32850, _ + 0.54890 - %i*1.51370]; + +seqsD : List Vector DoubleFloat; +seqsD := [vector [0.3854, 0.6772, 0.1138, 0.6751, 0.6362, 0.1424], _ + vector [0.5417, 0.2983, 0.1181, 0.7255, 0.8638, 0.8723], _ + vector [0.9172, 0.0644, 0.6037, 0.6430, 0.0428, 0.4815]]; + +seqsE : List PackedHermitianSequence DoubleFloat; +seqsE := [pHS [0.3854, 0.6772, 0.1138, 0.6751, 0.6362, 0.1424], _ + pHS [0.5417, 0.2983, 0.1181, 0.7255, 0.8638, 0.8723], _ + pHS [0.9172, 0.0644, 0.6037, 0.6430, 0.0428, 0.4815]]; + +seqsF : List Vector Complex DoubleFloat +seqsF := [vector [0.3854 + 0.5417*%i, 0.6772 + 0.2983*%i, _ + 0.1138 + 0.1181*%i, 0.6751 + 0.7255*%i, _ + 0.6362 + 0.8638*%i, 0.1424 + 0.8723*%i], _ + vector [0.9172 + 0.9089*%i, 0.0644 + 0.3118*%i, _ + 0.6037 + 0.3465*%i, 0.6430 + 0.6198*%i, _ + 0.0428 + 0.2668*%i, 0.4815 + 0.1614*%i], _ + vector [0.1156 + 0.6214*%i, 0.0685 + 0.8681*%i, _ + 0.2060 + 0.7060*%i, 0.8630 + 0.8652*%i, _ + 0.6967 + 0.9190*%i, 0.2792 + 0.3355*%i]]; + +-- test 1 + +dftA := nagDFT seqA; +dftA :: Vector Complex Float :: Matrix Complex Float + -- Matrix to force display as a column, + -- Float to allow outputGeneral to work. + +-- + 2.48361 + +-- | | +-- |- 0.265985 + 0.530898 %i | +-- | | +-- |- 0.257682 + 0.202979 %i | +-- | | +-- |- 0.256363 + 0.0580623 %i| +-- | | +-- |- 0.256363 - 0.0580623 %i| +-- | | +-- |- 0.257682 - 0.202979 %i | +-- | | +-- +- 0.265985 - 0.530898 %i + + +-- test 2 + +nagInverseDFT dftA :: Vector Float + +-- [0.34907,0.5489,0.74776,0.94459,1.1385,1.3285,1.5137] + +-- test 3 + +dftB := nagDFT seqB; +dftB :: Vector Complex Float :: Matrix Complex Float + +-- + 2.48361 - 0.471004 %i + +-- | | +-- | - 0.5518 + 0.496841 %i | +-- | | +-- |- 0.367113 + 0.0975621 %i| +-- | | +-- |- 0.287669 - 0.0586476 %i| +-- | | +-- |- 0.225057 - 0.174772 %i | +-- | | +-- |- 0.148251 - 0.308396 %i | +-- | | +-- + 0.0198297 - 0.564956 %i + + +-- test 4 + +(nagInverseDFT dftB) :: Vector Complex Float :: Matrix Complex Float + +-- +0.34907 - 0.37168 %i+ +-- | | +-- |0.5489 - 0.35669 %i | +-- | | +-- |0.74776 - 0.31175 %i| +-- | | +-- |0.94459 - 0.23702 %i| +-- | | +-- |1.1385 - 0.13274 %i | +-- | | +-- |1.3285 + 0.00074 %i | +-- | | +-- +1.5137 + 0.16298 %i + + +-- test 5 + +hdftA := nagHermitianDFT seqA; +(expand hdftA) :: Vector Complex Float :: Matrix Complex Float + +-- + 2.48361 + +-- | | +-- |- 0.265985 + 0.530898 %i | +-- | | +-- |- 0.257682 + 0.202979 %i | +-- | | +-- |- 0.256363 + 0.0580623 %i| +-- | | +-- |- 0.256363 - 0.0580623 %i| +-- | | +-- |- 0.257682 - 0.202979 %i | +-- | | +-- +- 0.265985 - 0.530898 %i + + +-- test 6 + +(nagInverseDFT hdftA) :: Vector Float + +-- [0.34907,0.5489,0.74776,0.94459,1.1385,1.3285,1.5137] + +-- test 7 + +dftC := nagDFT hseqC; +dftC :: Vector Float + +-- [1.82616,1.86862,- 0.017503,0.502001,- 0.598725,- 0.0314404,- 2.62557] + +-- test 8 + +(nagInverseDFT dftC) :: Vector Complex Float + +-- [0.34907, 0.5489 + 1.5137 %i, 0.74776 + 1.3285 %i, 0.94459 + 1.1385 %i, +-- 0.94459 - 1.1385 %i, 0.74776 - 1.3285 %i, 0.5489 - 1.5137 %i] + +-- test 9 + +nagHermitianInverseDFT dftC + +-- [0.34907000000000005, 0.54889999999999983, 0.74775999999999987, +-- 0.94459000000000004, 1.1385000000000003, 1.3284999999999998, +-- 1.5136999999999998] + +-- test 10: + +dftsD := nagDFT seqsD; + +dftsD :: List Vector Complex Float + +-- [ +-- [1.07373, - 0.104062 - 0.00438406 %i, 0.112554 - 0.373777 %i, - 0.146684, +-- 0.112554 + 0.373777 %i, - 0.104062 + 0.00438406 %i] +-- , + +-- [1.39609, - 0.0365178 + 0.466584 %i, 0.077955 - 0.0607051 %i, - 0.152072, +-- 0.077955 + 0.0607051 %i, - 0.0365178 - 0.466584 %i] +-- , + +-- [1.12374, 0.0914068 - 0.050841 %i, 0.393551 + 0.345775 %i, 0.153011, +-- 0.393551 - 0.345775 %i, 0.0914068 + 0.050841 %i] +-- ] + +-- test 11: + +invdftsD := nagInverseDFT dftsD ; +invdftsD :: List Vector Complex Float + +-- [[0.3854,0.6772,0.1138,0.6751,0.6362,0.1424], +-- [0.5417,0.2983,0.1181,0.7255,0.8638,0.8723], +-- [0.9172,0.0644,0.6037,0.643,0.0428,0.4815]] + +-- test 12: + +dftsE := nagDFT seqsE; +dftsE :: List Vector Float + +-- [[1.0788,0.662291,- 0.239146,- 0.578284,0.459192,- 0.438816], +-- [0.857321,1.22614,0.353348,- 0.222169,0.341327,- 1.22908], +-- [1.18245,0.262509,0.674406,0.552278,0.0539906,- 0.478963]] + +-- test 13: + +invdftsE := nagInverseDFT dftsE; +invdftsE :: List Vector Complex Float + +-- [ +-- [0.3854, 0.6772 + 0.1424 %i, 0.1138 + 0.6362 %i, 0.6751, +-- 0.1138 - 0.6362 %i, 0.6772 - 0.1424 %i] +-- , + +-- [0.5417, 0.2983 + 0.8723 %i, 0.1181 + 0.8638 %i, 0.7255, +-- 0.1181 - 0.8638 %i, 0.2983 - 0.8723 %i] +-- , + +-- [0.9172, 0.0644 + 0.4815 %i, 0.6037 + 0.0428 %i, 0.643, +-- 0.6037 - 0.0428 %i, 0.0644 - 0.4815 %i] +-- ] + +-- test 14: + +hdftsD := nagHermitianDFT seqsD; +map(expand,hdftsD) :: List Vector Complex Float + +-- [ +-- [1.07373, - 0.104062 - 0.00438406 %i, 0.112554 - 0.373777 %i, - 0.146684, +-- 0.112554 + 0.373777 %i, - 0.104062 + 0.00438406 %i] +-- , + +-- [1.39609, - 0.0365178 + 0.466584 %i, 0.077955 - 0.0607051 %i, - 0.152072, +-- 0.077955 + 0.0607051 %i, - 0.0365178 - 0.466584 %i] +-- , + +-- [1.12374, 0.0914068 - 0.050841 %i, 0.393551 + 0.345775 %i, 0.153011, +-- 0.393551 - 0.345775 %i, 0.0914068 + 0.050841 %i] +-- ] + +-- test 15: + +(nagInverseDFT hdftsD) :: List Vector Float + +-- [[0.3854,0.6772,0.1138,0.6751,0.6362,0.1424], +-- [0.5417,0.2983,0.1181,0.7255,0.8638,0.8723], +-- [0.9172,0.0644,0.6037,0.643,0.0428,0.4815]] + +-- test 16: + +dftsF := nagDFT seqsF; +dftsF :: List Vector Complex Float + +-- [ +-- [1.07373 + 1.39609 %i, - 0.570647 - 0.0409019 %i, 0.173259 - 0.295822 %i, +-- - 0.146684 - 0.152072 %i, 0.0518489 + 0.451732 %i, +-- 0.362522 - 0.0321337 %i] +-- , + +-- [1.12374 + 1.06765 %i, 0.172759 + 0.0385858 %i, 0.418548 + 0.748083 %i, +-- 0.153011 + 0.17522 %i, 0.368555 + 0.0565331 %i, 0.0100542 + 0.140268 %i] +-- , + +-- [0.909985 + 1.76167 %i, - 0.305418 + 0.0624335 %i, +-- 0.407884 - 0.0694786 %i, - 0.078547 + 0.0725049 %i, +-- - 0.119334 + 0.128511 %i, - 0.531409 - 0.433531 %i] +-- ] + +-- test 17: + +invdftsF := nagInverseDFT dftsF ; +invdftsF :: List Vector Complex Float + +-- [ +-- [0.3854 + 0.5417 %i, 0.6772 + 0.2983 %i, 0.1138 + 0.1181 %i, +-- 0.6751 + 0.7255 %i, 0.6362 + 0.8638 %i, 0.1424 + 0.8723 %i] +-- , + +-- [0.9172 + 0.9089 %i, 0.0644 + 0.3118 %i, 0.6037 + 0.3465 %i, +-- 0.643 + 0.6198 %i, 0.0428 + 0.2668 %i, 0.4815 + 0.1614 %i] +-- , + +-- [0.1156 + 0.6214 %i, 0.0685 + 0.8681 %i, 0.206 + 0.706 %i, +-- 0.863 + 0.8652 %i, 0.6967 + 0.919 %i, 0.2792 + 0.3355 %i] +-- ] + +-- test 18: + +nagHermitianInverseDFT dftsE + +-- [ +-- [0.38540000000000013, 0.67720000000000025, 0.11380000000000001, +-- 0.67510000000000014, 0.63620000000000021, 0.14240000000000003] +-- , + +-- [0.54170000000000018, 0.29830000000000012, 0.1181, 0.72550000000000014, +-- 0.86380000000000023, 0.87230000000000019] +-- , + +-- [0.91720000000000035, 0.064399999999999999, 0.60370000000000024, +-- 0.64300000000000013, 0.042799999999999991, 0.48150000000000015] +-- ] + +-- error tests: + +-- test 19: + +nagDFT [vector [0.3854 + 0.5417*%i, 0.6772 + 0.2983*%i, _ + 0.1138 + 0.1181*%i, 0.6751 + 0.7255*%i, _ + 0.6362 + 0.8638*%i, 0.1424 + 0.8723*%i], _ + vector [0.1156 + 0.6214*%i, 0.0685 + 0.8681*%i, _ + 0.6967 + 0.9190*%i, 0.2792 + 0.3355*%i]] + +-- Error signalled from user code: +-- The data sequences in nagDFT must all have the same length. The +-- length of sequence 1 is 6 that of sequence 2 is 4. + +-- test 20: + +nagHermitianDFT [vector [0.3854, 0.6751, 0.6362, 0.1424], _ + vector [0.5417, 0.7255, 0.8638, 0.8723], _ + vector [0.9172, 0.0428, 0.4815]] + +-- Error signalled from user code: +-- The data sequences in nagHermitianDFT must all have the same +-- length. The length of sequence 1 is 4 that of sequence 3 is 3. + +-- test 21: + +badSeqs : List PackedHermitianSequence DoubleFloat +badSeqs := [pHS [0.3854, 0.1138, 0.6751, 0.6362, 0.1424], _ + pHS [0.5417, 0.2983, 0.1181, 0.7255, 0.8638, 0.8723], _ + pHS [0.9172, 0.0644, 0.6037, 0.6430, 0.0428, 0.4815]]; + +nagDFT badSeqs + +-- Error signalled from user code: +-- The data sequences in nagDFT must all have the same length. The +-- length of sequence 1 is 5 that of sequence 2 is 6. + +outputGeneral() + +output "End of tests" + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/negfloats.input.pamphlet b/src/input/negfloats.input.pamphlet new file mode 100644 index 00000000..94701a41 --- /dev/null +++ b/src/input/negfloats.input.pamphlet @@ -0,0 +1,29 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input float.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- check results of rounding, truncation etc. on negative floats +)cl all +truncate(-9.6571) +fractionPart(-3.432) +round(-9.6571) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/nepip.input.pamphlet b/src/input/nepip.input.pamphlet new file mode 100644 index 00000000..f92484d8 --- /dev/null +++ b/src/input/nepip.input.pamphlet @@ -0,0 +1,154 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input nepip.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> + +-- Note that the conversions of results from DoubleFloat to Float +-- will become unnecessary if outputGeneral is extended to apply to +-- DoubleFloat quantities. + +outputGeneral 5 + +mA1 := matrix [[ 0.5 , 1.5 , 6.6 , 4.8], _ + [ 1.5 , 6.5 , 16.2 , 8.6], _ + [ 6.6 , 16.2 , 37.6 , 9.8], _ + [ 4.8 , 8.6 , 9.8 , -17.1]]; + +mB1 := matrix[[ 1 , 3 , 4 , 1], _ + [ 3 , 13 , 16 , 11], _ + [ 4 , 16 , 24 , 18], _ + [ 1 , 11 , 18 , 27]]; + +mA2 := matrix [[ 3.9 , 12.5 , -34.5 , -0.5], _ + [ 4.3 , 21.5 , -47.5 , 7.5], _ + [ 4.3 , 21.5 , -43.5 , 3.5], _ + [ 4.4 , 26.0 , -46.0 , 6.0]]; + +mB2 := matrix[[ 1 , 2 , -3 , 1], _ + [ 1 , 3 , -5 , 4], _ + [ 1 , 3 , -4 , 3], _ + [ 1 , 3 , -4 , 4]]; + +nagEigenvalues(mA1,mB1) :: List Float + +-- [- 3.0,- 1.0,2.0,4.0] + +vv1 := nagEigenvectors(mA1,mB1); +(vv1.eigenvalues) :: List Float + +-- [- 3.0,- 1.0,2.0,4.0] + +(vv1.eigenvectors) :: List Vector Complex Float + +-- [[- 4.35,0.05,1.0,- 0.5], [- 2.05,0.15,0.5,- 0.5], [- 3.95,0.85,0.5,- 0.5], +-- [2.65,0.05,- 1.0,0.5]] + +nagEigenvalues(mA2,mB2) + +-- all components are O(1) or more so: + +% :: List Complex Float + +-- [2.0,3.0 + 4.0 %i,3.0 - 4.0 %i,4.0] + +vv2 := nagEigenvectors(mA2,mB2); +vv2.eigenvalues + +-- all components are O(1) or more so: + +% :: List Complex Float + +-- [2.0,3.0 + 4.0 %i,3.0 - 4.0 %i,4.0] + +vv2.eigenvectors :: List Vector Complex Float + +-- [[0.99606,0.0056917,0.062609,0.062609], +-- +-- [0.94491, 0.18898 + 0.26077 E -14 %i, 0.11339 - 0.15119 %i, +-- 0.11339 - 0.15119 %i] +-- , +-- +-- [0.94491, 0.18898 - 0.26077 E -14 %i, 0.11339 + 0.15119 %i, +-- 0.11339 + 0.15119 %i] +-- , +-- [0.98752,0.010972,- 0.032917,0.15361]] + +-- The same call with eps=0.0001: + +vv2a := nagEigenvectors(mA2,mB2,0.0001); +vv2a.eigenvalues :: List Complex Float + +-- [1.9989,3.0003 + 3.9994 %i,3.0003 - 3.9994 %i,4.0] + +vv2a.eigenvectors :: List Vector Complex Float + +-- [[0.99605,0.0057355,0.062656,0.062656], +-- +-- [0.94491, 0.18899 - 0.000048882 %i, 0.11336 - 0.15119 %i, +-- 0.11336 - 0.15119 %i] +-- , +-- +-- [0.94491, 0.18899 + 0.000048882 %i, 0.11336 + 0.15119 %i, +-- 0.11336 + 0.15119 %i] +-- , +-- [0.98751,0.011031,- 0.032912,0.15367]] + +mB1(1,1) := -1; + +-- The next test should fail on F02ADF then call F02BJF: + +nagEigenvalues(mA1,mB1) + +-- all components are O(1) or more so: + +% :: List Complex Float + +-- [3.5016,- 1.5471,0.041212 + 0.21738 %i,0.041212 - 0.21738 %i] + +-- Similarly, this should fail on F02AEF then call F02BJF: + +vv3 := nagEigenvectors(mA1,mB1); +vv3.eigenvalues + +-- all components are O(1) or more so: + +% :: List Complex Float + +-- [3.5016,- 1.5471,0.041212 + 0.21738 %i,0.041212 - 0.21738 %i] + +vv3.eigenvectors :: List Vector Complex Float + +-- [[- 0.034577,0.63045,- 0.75202,0.1892], +-- [0.17876,- 0.73845,0.047413,0.64845], +-- +-- [0.80838, - 0.00095133 + 0.47557 %i, - 0.20354 - 0.21737 %i, +-- 0.15404 + 0.089179 %i] +-- , +-- +-- [0.80838, - 0.00095133 - 0.47557 %i, - 0.20354 + 0.21737 %i, +-- 0.15404 - 0.089179 %i] +-- ] + +outputGeneral() + +output "End of tests" + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/newlodo.input.pamphlet b/src/input/newlodo.input.pamphlet new file mode 100644 index 00000000..c4657e4e --- /dev/null +++ b/src/input/newlodo.input.pamphlet @@ -0,0 +1,112 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input herm.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-------------------------------- newlodo.input --------------------------- + +-- LODO2(M,A) is the domain of linear ordinary differential operators over +-- an A-module M, where A is a differential ring. This includes the +-- cases of operators which are polynomials in D acting upon scalars or +-- vectors depending on a single variable. The coefficients of the +-- operator polynomials can be integers, rational functions, matrices +-- or elements of other domains. + +------------------------------------------------------------------------ +-- Differential operators with constant coefficients +------------------------------------------------------------------------ +)clear all +RN:=FRAC INT +Dx: LODO2(RN, UP(x,RN)) +Dx := D() -- definition of an operator +a := Dx + 1 +b := a + 1/2*Dx**2 - 1/2 +p: UP(x,RN) := 4*x**2 + 2/3 -- something to work on +a p -- application of an operator to a polynomial +(a*b) p = a b p -- multiplication is defined by this identity +c := (1/9)*b*(a + b)**2 -- exponentiation follows from multiplication +(a**2 - 3/4*b + c) (p + 1) -- general application of operator expressions +------------------------------------------------------------------------ +-- Differential operators with rational function coefficients +------------------------------------------------------------------------ +)clear all +RFZ := FRAC UP(x,INT) +(Dx, a, b): LODO1 RFZ +Dx := D() +b := 3*x**2*Dx**2 + 2*Dx + 1/x +a := b*(5*x*Dx + 7) +p: RFZ := x**2 + 1/x**2 +(a*b - b*a) p -- operator multiplication is not commutative +-- When the coefficients of the operator polynomials come from a field +-- it is possible to define left and right division of the operators. +-- This allows the computation of left and right gcd's via remainder +-- sequences, and also the computation of left and right lcm's. +leftDivide(a,b) -- result is the quotient/remainder pair +a - (b * %.quotient + %.remainder) +rightDivide(a,b) +a - (%.quotient * b + %.remainder) +-- A GCD doesn't necessarily divide a and b on both sides. +e := leftGcd(a,b) +leftRemainder(a, e) -- remainder from left division +rightRemainder(a, e) -- remainder from right division +-- An LCM is not necessarily divisible from both sides. +f := rightLcm(a,b) +leftRemainder(f, b) +rightRemainder(f, b) -- the remainder is non-zero +------------------------------------------------------------------------ +-- +-- Problem: find the first few coefficients of exp(x)/x**i in +-- Dop phi +-- where +-- Dop := D**3 + G/x**2 * D + H/x**3 - 1 +-- phi := sum(s[i]*exp(x)/x**i, i = 0..) +------------------------------------------------------------------------ +)clear all +Dx: LODO(EXPR INT, f +-> D(f, x)) +Dx := D() +Dop:= Dx**3 + G/x**2*Dx + H/x**3 - 1 +n == 3 +phi == reduce(+,[subscript(s,[i])*exp(x)/x**i for i in 0..n]) +phi1 == Dop(phi) / exp x +phi2 == phi1 *x**(n+3) +phi3 == retract(phi2)@(POLY INT) +pans == phi3 ::UP(x,POLY INT) +pans1 == [coefficient(pans, (n+3-i) :: NNI) for i in 2..n+1] +leq == solve(pans1,[subscript(s,[i]) for i in 1..n]) +leq +n==4 +leq +n==7 +leq +------------------------------------------------------------------------ +-- Differential operators with matrix coefficients acting on vectors. +------------------------------------------------------------------------ +)clear all +PZ := UP(x,INT); Vect := DPMM(3, PZ, SQMATRIX(3,PZ), PZ); +Modo := LODO2(SQMATRIX(3,PZ), Vect); +p := directProduct([3*x**2 + 1, 2*x, 7*x**3 + 2*x]::(VECTOR(PZ)))@Vect +m := [[x**2, 1, 0], [1, x**4, 0], [0, 0, 4*x**2]]::(SQMATRIX(3,PZ)) +-- Vect is a left SM(3,PZ)-module +q: Vect := m * p +-- Operator combination and application +Dx: Modo := D() +a: Modo := 1*Dx + m +b: Modo := m*Dx + 1 +a*b +a p +b p +(a+b) (p + q) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/newton.input.pamphlet b/src/input/newton.input.pamphlet new file mode 100644 index 00000000..8a3df52c --- /dev/null +++ b/src/input/newton.input.pamphlet @@ -0,0 +1,57 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input newton.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- Newton's Iteration function + +-- newtonStep(f) returns a newton's iteration function for the +-- expression f. + +newtonStep(f) == + fun := complexNumericFunction f + deriv := complexDerivativeFunction(f,1) + (b:Complex DoubleFloat):Complex DoubleFloat +-> + b - fun(b)/deriv(b) + +-- create complex numeric functions from an expression + +complexFunPack := MakeUnaryCompiledFunction(EXPR INT, Complex DoubleFloat, Complex DoubleFloat) + +-- create a complex numeric function from an expression +complexNumericFunction x == + v := theVariable x + compiledFunction(x, v)$complexFunPack + +-- create a complex numeric derivatiave function from an expression +complexDerivativeFunction(x,n) == + v := theVariable x + df := differentiate(x,v,n) + compiledFunction(df, v)$complexFunPack + +-- return the unique variable in x, or an error if it is multivariate +theVariable x == + vl := variables x + nv := # vl + nv > 1 => error "Expression is not univariate." + nv = 0 => 'x + first vl + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/nlode.input.pamphlet b/src/input/nlode.input.pamphlet new file mode 100644 index 00000000..fc088d79 --- /dev/null +++ b/src/input/nlode.input.pamphlet @@ -0,0 +1,64 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input nlode.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-------------------------- nlode.input -------------------------------- +)cl all +-- this will be the unknown +y := operator y + +-- some non-linear non-exact 1st order equations + +deq := (sin y x - x / y(x)) * differentiate(y x, x) = 1 +-- the result with no initial condition is a first integral +-- when equated to any constant +solve(deq, y, x) + +deq := differentiate(y x, x) = y(x) / (x + y(x) * log y x) +solve(deq, y, x) +-- same with initial condition y(1) = 1 +-- the result is a first integral if equated to 0 +solve(deq, y, x = 1, [1]) + +deq := (exp(- 2 * y x) - 2 * x * y x) * differentiate(y x, x) = y x +solve(deq, y, x) + +-- this one has an independent parameter w, initial condition y(0) = 0 +deq := differentiate(y x, x) = w + y(x) / (1 - y x) +solve(deq, y, x = 0, [0]) + +-- Bernoulli equation: the result is a first integral when equated to +-- any constant, but it can be explicitly solved for y(x) +deq := x**2 * differentiate(y x, x) + 2 * x * y x - y(x)**3 +solve(deq, y, x) + +-- Riccati equation: the result is a first integral when equated to +-- any constant, but it can be explicitly solved for y(x) +deq := differentiate(y x,x) = 1 + x**2 - 2 * x * y x + y(x)**2 +solve(deq, y, x) + +-- Riccati equation: the result is a first integral when equated to +-- any constant, but it can be explicitly solved for y(x) +deq := x**2 * differentiate(y x,x) = -1 - x * y x + x**2 * y(x)**2 +solve(deq, y, x) + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/none.input.pamphlet b/src/input/none.input.pamphlet new file mode 100644 index 00000000..73af3d09 --- /dev/null +++ b/src/input/none.input.pamphlet @@ -0,0 +1,25 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input NONE.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from NoneXmpPage +)clear all + +[] +[] :: List Float +[]$List(NonNegativeInteger) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/noonburg.input.pamphlet b/src/input/noonburg.input.pamphlet new file mode 100644 index 00000000..4287c812 --- /dev/null +++ b/src/input/noonburg.input.pamphlet @@ -0,0 +1,35 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input noonburg.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- +-- example of Noonburg +-- +RN := Fraction Integer +dmp0 := DMP([x,y,z,c],RN) + +px : dmp0 := 1-c*x +x*(y**2 + z**2) +py : dmp0 := 1-c*y +y*(z**2 + x**2) +pz : dmp0 := 1-c*z +z*(x**2 + y**2) +gb0 := groebnerFactorize [px,py,pz] + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/noptip.input.pamphlet b/src/input/noptip.input.pamphlet new file mode 100644 index 00000000..613a4429 --- /dev/null +++ b/src/input/noptip.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input noptip.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +-- Note that the conversions of results from DoubleFloat to Float +-- will become unnecessary if outputGeneral is extended to apply to +-- DoubleFloat quantities. + + +outputGeneral 5 + +f := %e^x*(4*x^2 + 2*y^2 + 4*x*y + 2*y + 1); +start := [x=-1.0, y=1.0]; +nagMin(f,start) :: List Equation Polynomial Float + +-- [x= 0.5,y= - 1.0] + +outputGeneral() + +output "End of tests" + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/nqip.input.pamphlet b/src/input/nqip.input.pamphlet new file mode 100644 index 00000000..0136c3ac --- /dev/null +++ b/src/input/nqip.input.pamphlet @@ -0,0 +1,73 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input nqip.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> + +-- Note that the conversions of results from DoubleFloat to Float +-- will become unnecessary if outputGeneral is extended to apply to +-- DoubleFloat quantities. + + +outputGeneral 5 + +xvals := [0.00,0.04,0.08,0.12,0.22,0.26,0.30,0.38,0.39,0.42,0.45, + 0.46,0.60,0.68,0.72,0.73,0.83,0.85,0.88,0.90,1.00]; + +yvals := [4.0000,3.9936,3.9746,3.9432,3.8135,3.7467,3.6697,3.4943, + 3.4719,3.4002,3.3264,3.3017,2.9412,2.7352,2.6344, + 2.6094,2.3684,2.3222,2.2543,2.2099,2.0000]; + +result := nagPolygonIntegrate(xvals,yvals); +result.integral :: Float + +-- 3.1414 + +result.errorEstimate :: Float + +-- - 0.000025627 + +coords := transpose matrix [xvals, yvals]; +result := nagPolygonIntegrate coords; +result.integral :: Float + +-- 3.1414 + +result.errorEstimate :: Float + +-- - 0.000025627 + +nagPolygonIntegrate([1,2,3],[1,2,3,4]) + +-- Error signalled from user code: +-- The lists supplied to nagPolygonIntegrate are of different +-- lengths: 3 and 4. + +nagPolygonIntegrate([[1,2,3],[4,5,6]]) + +-- Error signalled from user code: +-- Please supply the coordinate matrix in nagPolygonIntegrate with +-- each row consisting of single a x-y pair. + +outputGeneral() + +output "End of tests" + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/nsfip.input.pamphlet b/src/input/nsfip.input.pamphlet new file mode 100644 index 00000000..87c68a44 --- /dev/null +++ b/src/input/nsfip.input.pamphlet @@ -0,0 +1,701 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input nsfip.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +-- Note that the conversions of Results from DoubleFloat to Float +-- will become unnecessary if outputGeneral is extended to apply to +-- DoubleFloat quantities. + + +outputGeneral 4 + +-- DF here means DoubleFloat. +-- Results converted to Float as outputGeneral not working on DF. + +-- nagExpInt : DF -> DF ; + +nagExpInt(2) :: Float + +-- 0.0489 + +nagExpInt(-1) :: Float + +-- ** ABNORMAL EXIT from NAG Library routine S13AAF: IFAIL = 1 +-- ** NAG soft failure - control returned +-- +-- Error signalled from user code: +-- An error was detected when calling the NAG Library routine +-- S13AAF. The error number (IFAIL value) is 1, please consult the +-- NAG manual via the Browser for diagnostic information. + +-- nagSinInt : DF -> DF ; + +nagSinInt(0) :: Float + +-- 0.0 + +nagSinInt(0.2) :: Float + +-- 0.1996 + +nagSinInt(0.4) :: Float + +-- 0.3965 + +nagSinInt(0.6) :: Float + +-- 0.5881 + +nagSinInt(0.8) :: Float + +-- 0.7721 + +nagSinInt(1) :: Float + +-- 0.9461 + +-- nagCosInt : DF -> DF ; + +nagCosInt(0.2) :: Float + +-- - 1.042 + +nagCosInt(0.4) :: Float + +-- - 0.3788 + +nagCosInt(0.6) :: Float + +-- - 0.02227 + +nagCosInt(0.8) :: Float + +-- 0.1983 + +nagCosInt(1) :: Float + +-- 0.3374 + +-- nagIncompleteGammaP : (DF, DF) -> DF ; (to machine precision) + +nagIncompleteGammaP(2,3) :: Float + +-- 0.8009 + +nagIncompleteGammaP(7,1) :: Float + +-- 0.00008324 + +nagIncompleteGammaP(0.5,99) :: Float + +-- 1.0 + +nagIncompleteGammaP(20,21) :: Float + +-- 0.6157 + +nagIncompleteGammaP(21,20) :: Float + +-- 0.4409 + +-- nagIncompleteGammaP : (DF, DF, DF) -> DF ; (to specified precision) + +nagIncompleteGammaP(7,1,0.1) :: Float + +-- 0.00008313 + +-- nagIncompleteGammaQ : (DF, DF) -> DF ; (to machine precision) + +nagIncompleteGammaQ(2,3) :: Float + +-- 0.1991 + +nagIncompleteGammaQ(7,1) :: Float + +-- 0.9999 + +nagIncompleteGammaQ(0.5,99) :: Float + +-- 0.5705 E -44 + +nagIncompleteGammaQ(20,21) :: Float + +-- 0.3843 + +nagIncompleteGammaQ(21,20) :: Float + +-- 0.5591 + +nagIncompleteGammaQ(25,14) :: Float + +-- 0.995 + +-- nagIncompleteGammaQ : (DF, DF, DF) -> DF ; (to specified precision) + +nagIncompleteGammaQ(25,14,0.1) :: Float + +-- 0.9953 + +-- nagErf : DF -> DF ; + +nagErf(-6) :: Float + +-- - 1.0 + +nagErf(-4.5) :: Float + +-- - 1.0 + +nagErf(-1) :: Float + +-- - 0.8427 + +nagErf(1) :: Float + +-- 0.8427 + +nagErf(4.5) :: Float + +-- 1.0 + +nagErf(6) :: Float + +-- 1.0 + +-- nagErfC : DF -> DF ; + +nagErfC(-10) :: Float + +-- 2.0 + +nagErfC(-1) :: Float + +-- 1.843 + +nagErfC(0) :: Float + +-- 1.0 + +nagErfC(1) :: Float + +-- 0.1573 + +nagErfC(15) :: Float + +-- 0.7213 E -99 + +-- nagDAiryAi : DF -> DF ; + +nagDAiryAi(-10) :: Float + +-- 0.9963 + +nagDAiryAi(-1) :: Float + +-- - 0.01016 + +nagDAiryAi(0) :: Float + +-- - 0.2588 + +nagDAiryAi(1) :: Float + +-- - 0.1591 + +nagDAiryAi(5) :: Float + +-- - 0.0002474 + +nagDAiryAi(10) :: Float + +-- - 0.3521 E -9 + +nagDAiryAi(20) :: Float + +-- - 0.7586 E -26 + +-- nagDAiryAi : CDF -> CDF ; + +nagDAiryAi(0.3+0.4*%i) :: Complex Float + +-- - 0.2612 + 0.03848 %i + +-- nagDAiryBi : DF -> DF ; + +nagDAiryBi(-10) :: Float + +-- 0.1194 + +nagDAiryBi(-1) :: Float + +-- 0.5924 + +nagDAiryBi(0) :: Float + +-- 0.4483 + +nagDAiryBi(1) :: Float + +-- 0.9324 + +nagDAiryBi(5) :: Float + +-- 1436.0 + +nagDAiryBi(10) :: Float + +-- 0.1429 E 10 + +nagDAiryBi(20) :: Float + +-- 0.9382 E 26 + +-- nagDAiryBi : CDF -> CDF ; + +nagDAiryBi(0.3+0.4*%i) :: Complex Float + +-- 0.4093 + 0.07966 %i + +-- nagScaledDAiryAi : CDF -> CDF ; + +nagScaledDAiryAi(0.3+0.4*%i) :: Complex Float + +-- - 0.2744 - 0.02356 %i + +-- nagScaledDAiryBi : CDF -> CDF ; + +nagScaledDAiryBi(0.3+0.4*%i) :: Complex Float + +-- 0.3924 + 0.07638 %i + +-- nagHankelH1 : (DF, CDF, Int) -> List CDF ; + +nagHankelH1(0,0.3+0.4*%i,2) :: Matrix Complex Float + +-- [0.3466 - 0.5588 %i - 0.7912 - 0.8178 %i] + +nagHankelH1(2.3,2,2) :: Matrix Complex Float + +-- [0.2721 - 0.7398 %i 0.08902 - 1.412 %i] + +nagHankelH1(2.12,-1,2) :: Matrix Complex Float + +-- [- 0.7722 - 1.693 %i 2.601 + 6.527 %i] + +-- nagHankelH2 : (DF, CDF, Int) -> List CDF ; + +nagHankelH2(6,3.1-1.6*%i,2) :: Matrix Complex Float + +-- [- 1.371 - 1.28 %i - 1.491 - 5.993 %i] + +-- nagScaledHankelH1 : (DF, CDF, Int) -> List CDF ; + +nagScaledHankelH1(0,0.3+0.4*%i,2) :: Matrix Complex Float + +-- [0.2477 - 0.9492 %i - 1.488 - 0.8166 %i] + +-- nagScaledHankelH2 : (DF, CDF, Int) -> List CDF ; + +nagScaledHankelH2(6,3.1-1.6*%i,2) :: Matrix Complex Float + +-- [7.05 + 6.052 %i 8.614 + 29.35 %i] + +-- nagKelvinBer : DF -> DF ; + +nagKelvinBer(0.1) :: Float + +-- 1.0 + +nagKelvinBer(1) :: Float + +-- 0.9844 + +nagKelvinBer(2.5) :: Float + +-- 0.4 + +nagKelvinBer(5) :: Float + +-- - 6.23 + +nagKelvinBer(10) :: Float + +-- 138.8 + +nagKelvinBer(15) :: Float + +-- - 2967.0 + +nagKelvinBer(60) :: Float + +-- ** ABNORMAL EXIT from NAG Library routine S19AAF: IFAIL = 1 +-- ** NAG soft failure - control returned +-- +-- Error signalled from user code: +-- An error was detected when calling the NAG Library routine +-- S19AAF. The error number (IFAIL value) is 1, please consult the +-- NAG manual via the Browser for diagnostic information. + +nagKelvinBer(-1) :: Float + +-- 0.9844 + +-- nagKelvinBei : DF -> DF ; + +nagKelvinBei(0.1) :: Float + +-- 0.0025 + +nagKelvinBei(1) :: Float + +-- 0.2496 + +nagKelvinBei(2.5) :: Float + +-- 1.457 + +nagKelvinBei(5) :: Float + +-- 0.116 + +nagKelvinBei(10) :: Float + +-- 56.37 + +nagKelvinBei(15) :: Float + +-- - 2953.0 + +nagKelvinBei(60) :: Float + +-- ** ABNORMAL EXIT from NAG Library routine S19ABF: IFAIL = 1 +-- ** NAG soft failure - control returned +-- +-- Error signalled from user code: +-- An error was detected when calling the NAG Library routine +-- S19ABF. The error number (IFAIL value) is 1, please consult the +-- NAG manual via the Browser for diagnostic information. + +nagKelvinBei(-1) :: Float + +-- 0.2496 + +-- nagKelvinKer : DF -> DF ; + +nagKelvinKer(0) :: Float + +-- ** ABNORMAL EXIT from NAG Library routine S19ACF: IFAIL = 2 +-- ** NAG soft failure - control returned +-- +-- Error signalled from user code: +-- An error was detected when calling the NAG Library routine +-- S19ACF. The error number (IFAIL value) is 2, please consult the +-- NAG manual via the Browser for diagnostic information. + +nagKelvinKer(0.1) :: Float + +-- 2.42 + +nagKelvinKer(1) :: Float + +-- 0.2867 + +nagKelvinKer(2.5) :: Float + +-- - 0.06969 + +nagKelvinKer(5) :: Float + +-- - 0.01151 + +nagKelvinKer(10) :: Float + +-- 0.0001295 + +nagKelvinKer(15) :: Float + +-- - 0.1514 E -7 + +nagKelvinKer(1100) :: Float + +-- ** ABNORMAL EXIT from NAG Library routine S19ACF: IFAIL = 1 +-- ** NAG soft failure - control returned +-- +-- Error signalled from user code: +-- An error was detected when calling the NAG Library routine +-- S19ACF. The error number (IFAIL value) is 1, please consult the +-- NAG manual via the Browser for diagnostic information. + +nagKelvinKer(-1) :: Float + +-- ** ABNORMAL EXIT from NAG Library routine S19ACF: IFAIL = 2 +-- ** NAG soft failure - control returned +-- +-- Error signalled from user code: +-- An error was detected when calling the NAG Library routine +-- S19ACF. The error number (IFAIL value) is 2, please consult the +-- NAG manual via the Browser for diagnostic information. + +-- nagKelvinKei : DF -> DF ; + +nagKelvinKei(0) :: Float + +-- - 0.7854 + +nagKelvinKei(0.1) :: Float + +-- - 0.7769 + +nagKelvinKei(1) :: Float + +-- - 0.495 + +nagKelvinKei(2.5) :: Float + +-- - 0.1107 + +nagKelvinKei(5) :: Float + +-- 0.01119 + +nagKelvinKei(10) :: Float + +-- - 0.0003075 + +nagKelvinKei(15) :: Float + +-- 0.000007963 + +nagKelvinKei(1100) :: Float + +-- ** ABNORMAL EXIT from NAG Library routine S19ADF: IFAIL = 1 +-- ** NAG soft failure - control returned +-- +-- Error signalled from user code: +-- An error was detected when calling the NAG Library routine +-- S19ADF. The error number (IFAIL value) is 1, please consult the +-- NAG manual via the Browser for diagnostic information. + +nagKelvinKei(-1) :: Float + +-- ** ABNORMAL EXIT from NAG Library routine S19ADF: IFAIL = 2 +-- ** NAG soft failure - control returned +-- +-- Error signalled from user code: +-- An error was detected when calling the NAG Library routine +-- S19ADF. The error number (IFAIL value) is 2, please consult the +-- NAG manual via the Browser for diagnostic information. + + +-- nagFresnelS : DF -> DF ; + +nagFresnelS(0) :: Float + +-- 0.0 + +nagFresnelS(0.5) :: Float + +-- 0.06473 + +nagFresnelS(1) :: Float + +-- 0.4383 + +nagFresnelS(2) :: Float + +-- 0.3434 + +nagFresnelS(4) :: Float + +-- 0.4205 + +nagFresnelS(5) :: Float + +-- 0.4992 + +nagFresnelS(6) :: Float + +-- 0.447 + +nagFresnelS(8) :: Float + +-- 0.4602 + +nagFresnelS(10) :: Float + +-- 0.4682 + +nagFresnelS(-1) :: Float + +-- - 0.4383 + +nagFresnelS(1000) :: Float + +-- 0.4997 + +-- nagFresnelC : DF -> DF ; + +nagFresnelC(0) :: Float + +-- 0.0 + +nagFresnelC(0.5) :: Float + +-- 0.4923 + +nagFresnelC(1) :: Float + +-- 0.7799 + +nagFresnelC(2) :: Float + +-- 0.4883 + +nagFresnelC(4) :: Float + +-- 0.4984 + +nagFresnelC(5) :: Float + +-- 0.5636 + +nagFresnelC(6) :: Float + +-- 0.4995 + +nagFresnelC(8) :: Float + +-- 0.4998 + +nagFresnelC(10) :: Float + +-- 0.4999 + +nagFresnelC(-1) :: Float + +-- - 0.7799 + +nagFresnelC(1000) :: Float + +-- 0.5 + +-- nagEllipticIntegralRC : (DF, DF) -> DF ; + +nagEllipticIntegralRC(0.5,1) :: Float + +-- 1.111 + +nagEllipticIntegralRC(1,1) :: Float + +-- 1.0 + +nagEllipticIntegralRC(1.5,1) :: Float + +-- 0.9312 + +-- nagEllipticIntegralRD : (DF, DF, DF) -> DF ; + +nagEllipticIntegralRD(0.5,0.5,1) :: Float + +-- 1.479 + +nagEllipticIntegralRD(0.5,1,1) :: Float + +-- 1.211 + +nagEllipticIntegralRD(0.5,1.5,1) :: Float + +-- 1.061 + +nagEllipticIntegralRD(1,1,1) :: Float + +-- 1.0 + +nagEllipticIntegralRD(1,1.5,1) :: Float + +-- 0.8805 + +nagEllipticIntegralRD(1.5,1.5,1) :: Float + +-- 0.7775 + +-- nagEllipticIntegralRF : (DF, DF, DF) -> DF ; + +nagEllipticIntegralRF(0.5,1,1.5) :: Float + +-- 1.028 + +nagEllipticIntegralRF(1,1.5,2) :: Float + +-- 0.826 + +nagEllipticIntegralRF(1.5,2,2.5) :: Float + +-- 0.7116 + +-- nagEllipticIntegralRJ : (DF, DF, DF, DF) -> DF ; + +nagEllipticIntegralRJ(0.5,0.5,0.5,2) :: Float + +-- 1.118 + +nagEllipticIntegralRJ(0.5,0.5,1,2) :: Float + +-- 0.9221 + +nagEllipticIntegralRJ(0.5,0.5,1.5,2) :: Float + +-- 0.8115 + +nagEllipticIntegralRJ(0.5,1,1,2) :: Float + +-- 0.7671 + +nagEllipticIntegralRJ(0.5,1,1.5,2) :: Float + +-- 0.6784 + +nagEllipticIntegralRJ(0.5,1.5,1.5,2) :: Float + +-- 0.6017 + +nagEllipticIntegralRJ(1,1,1,2) :: Float + +-- 0.6438 + +nagEllipticIntegralRJ(1,1,1.5,2) :: Float + +-- 0.5722 + +nagEllipticIntegralRJ(1,1.5,1.5,2) :: Float + +-- 0.5101 + +nagEllipticIntegralRJ(1.5,1.5,1.5,2) :: Float + +-- 0.4561 + +outputGeneral() + +output "End of tests" + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/ntube.input.pamphlet b/src/input/ntube.input.pamphlet new file mode 100644 index 00000000..fbe5db3d --- /dev/null +++ b/src/input/ntube.input.pamphlet @@ -0,0 +1,100 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ntube.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- ntube.input +-- Generalized tubes. +-- The functions in this file draw a 2-d curve in the normal +-- planes around a 3-d curve. The computations are all done +-- numerically in machine-precision floating point for efficiency. + +R3 := Point DoubleFloat -- Points in 3-Space +R2 := Point DoubleFloat -- Points in 2-Space +S := Segment Float -- Draw ranges +ThreeCurve := DoubleFloat -> R3 -- type of a space curve function +TwoCurve := (DoubleFloat, DoubleFloat) -> R2 -- type of a plane curve function +Surface := (DoubleFloat, DoubleFloat) -> R3 -- type of a parameterized surface function + +-- Frenet frames define a coordinate system around a point on a space curve +FrenetFrame := Record(value: R3, tagent: R3, normal: R3, binormal: R3) + +-- Holds current Frenet frame for a point on a curve +frame: FrenetFrame + +-- compile, don't interpret functions +)set fun compile on + +-- Draw a generalized tube. +-- ntubeDraw(spaceCurve, planeCurve, u0..u1, t0..t1) +-- draws planeCurve int the normal planes of spaceCurve. u0..u1 specifies +-- the paramter range of the planeCurve and t0..t1 specifies the parameter +-- range of the spaceCurve. Additionally the plane curve function takes +-- as a second parameter the current parameter of the spaceCurve. This +-- allows the plane curve to evolve as it goes around the space curve. +-- see "page5.input" for an example of this. +ntubeDraw: (ThreeCurve, TwoCurve, S, S) -> VIEW3D +ntubeDraw(spaceCurve, planeCurve, uRange, tRange) == + ntubeDrawOpt(spaceCurve, planeCurve, uRange, tRange, []$List DROPT) + +-- ntuberDrawOpt is the same as ntuberDraw, but takes optional +-- parameters which it passes to the draw command. +ntubeDrawOpt: (ThreeCurve, TwoCurve, S, S, List DROPT) -> VIEW3D +ntubeDrawOpt(spaceCurve, planeCurve, uRange, tRange, l) == + delT:DoubleFloat := (hi(tRange) - lo(tRange))/10000 + oldT:DoubleFloat := lo(tRange) - 1 + fun := ngeneralTube(spaceCurve, planeCurve, delT, oldT) + draw(fun, uRange, tRange, l) + +-- nfrenetFrame(c, t, delT) numerically computes the Frenet Frame +-- about the curve c at t. delT is a small number used to +-- compute derivatives. +nfrenetFrame(c, t, delT) == + f0 := c(t) + f1 := c(t+delT) + t0 := f1 - f0 -- the tangent + n0 := f1 + f0 + b := cross(t0, n0) -- the binormal + n := cross(b,t0) -- the normal + ln := length n + lb := length b + ln = 0 or lb = 0 => error "Frenet Frame not well defined" + n := (1/ln)*n -- make into unit length vectors + b := (1/lb)*b + [f0, t0, n, b]$FrenetFrame + +-- nGeneralTube(spaceCurve, planeCurve, delT, oltT) +-- creates a function which can be passed to the system draw command. +-- The function is a parameterized surface for the general tube +-- around the spaceCurve. delT is a small number used to compute +-- derivatives, and oldT is used to hold the current value of the +-- t parameter for the spaceCurve. This is an efficiency measure +-- to ensure that frames are only computed once for every value of t. +ngeneralTube: (ThreeCurve, TwoCurve, DoubleFloat, DoubleFloat) -> Surface +ngeneralTube(spaceCurve, planeCurve, delT, oldT) == + free frame + (v:DoubleFloat, t: DoubleFloat): R3 +-> + if (t ~= oldT) then + frame := nfrenetFrame(spaceCurve, t, delT) + oldT := t + p := planeCurve(v, t) + frame.value + p.1*frame.normal + p.2*frame.binormal + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/numbers.input.pamphlet b/src/input/numbers.input.pamphlet new file mode 100644 index 00000000..73188530 --- /dev/null +++ b/src/input/numbers.input.pamphlet @@ -0,0 +1,142 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input numbers.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page IntegerPage +)clear all + +x := factorial(200) +y := 2**90 - 1 +x + y +x - y +x * y +factor(x) +factor(y) + +-- Input for page FloatIntroductionPage +)clear all + +sqrt(2.0) +numeric %pi +exp(1.0) +exp(sqrt(163.0) * %pi) +sin(%pi/6.) + +-- Input for page FractionPage +)clear all + +1/4 - 1/5 +f := (x**2 + 1)/(x - 1) +g := (x**2 - 3*x + 2)/(x + 2) +f * g + +-- Input for page FloatPrecisionAnswerPage +)clear all + +numeric(%pi, 500) +digits 500 +numeric %pi + +-- Input for page FiniteFieldPage +)clear all + +F7 := PF 7 +F49 := FF(7,2) +definingPolynomial()$F49 +e := random()$F49 +norm e +trace e +order e +allElts := [index(i)$F49 for i in 1..48] +reduce(+,allElts) +[order e for e in allElts] +u:UP(x, F7) := x**2 + 1 +factor u +u2:UP(x, F49) := u +factor u2 + +-- Input for page IntegerProblemAnswerPage1 +)clear all + +f: NNI -> INT +f(n) == 2**n - 1 +factor f(7) +ints := [n for n in 1..] +primes := [x for x in ints | prime? x] +primes.25 +numbers := [f(n) for n in primes] +factors := [factor n for n in numbers] +nums := [x for x in numbers | not prime? x] + +-- Input for page IntegerProblemAnswerPage2 +)clear all + +numbers := [n**2 - n + 41 for n in 0..40] +[factor n for n in numbers] + +-- Input for page RomanNumeralPage +)clear all + +f := operator 'f +differentiate(f x,x,7) +a := roman(1978 - 1965) +x : UTS(ROMAN,'x,0) := x +recip(1 - x - x**2) +m : MATRIX FRAC ROMAN +m := matrix [[1/(i + j) for i in 1..3] for j in 1..3] +inverse m +y := factorial 20 +roman y + +-- Input for page IntegerExamplePage +)clear all + +f: NNI -> INT +f(n) == 2**(2**n) + 1 +factor f(1) +factor f(2) +for n in 1..6 repeat output factor f(n) + +-- Input for page FloatPrecisionPage +)clear all + +exp(%pi * sqrt(163.0)) +digits 40 +x := exp(%pi * sqrt(163.0)) +numeric(1/3, 5) +numeric(1/3, 60) +numeric(1/3) + +-- Input for page RationalNumberPage +)clear all + +61657 ** 10 / 999983 ** 12 +x := 104348/33215 +numeric x +numer(x) +denom(x) +factor(numer x) / factor(denom x) + +-- Input for page RepeatingDecimalPage +)clear all + +x := 2/7 :: DECIMAL +y := 13/17 :: DECIMAL +x - y +x + y +x * y +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/oct.input.pamphlet b/src/input/oct.input.pamphlet new file mode 100644 index 00000000..da5b0663 --- /dev/null +++ b/src/input/oct.input.pamphlet @@ -0,0 +1,37 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input OCT.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from OctonionXmpPage +)clear all + +oci1 := octon(1,2,3,4,5,6,7,8) +oci2 := octon(7,2,3,-4,5,6,-7,0) +oci3 := octon(quatern(-7,-12,3,-10), quatern(5,6,9,0)) +(oci1 * oci2) * oci3 - oci1 * (oci2 * oci3) +[real oci1, imagi oci1, imagj oci1, imagk oci1, imagE oci1, imagI oci1, imagJ oci1, imagK oci1] +q : Quaternion Polynomial Integer := quatern(q1, qi, qj, qk) +E : Octonion Polynomial Integer:= octon(0,0,0,0,1,0,0,0) +q * E +E * q +q * 1$(Octonion Polynomial Integer) +1$(Octonion Polynomial Integer) * q +o : Octonion Polynomial Integer := octon(o1, oi, oj, ok, oE, oI, oJ, oK) +norm o +p : Octonion Polynomial Integer := octon(p1, pi, pj, pk, pE, pI, pJ, pK) +norm(o*p)-norm(p)*norm(p) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/octonion.input.pamphlet b/src/input/octonion.input.pamphlet new file mode 100644 index 00000000..4deb8e82 --- /dev/null +++ b/src/input/octonion.input.pamphlet @@ -0,0 +1,86 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input octonion.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)clear all + +-- the octonions build a non-associative algebra: + +oci1 := octon(1,2,3,4,5,6,7,8) +oci2 := octon(7,2,3,-4,5,6,-7,0) +oci3 := octon(-7,-12,3,-10,5,6,9,0) + +oci := oci1 * oci2 * oci3 +(oci1 * oci2) * oci3 - oci1 * (oci2 * oci3) + +-- the following elements, together with 1, build a basis over the ground ring + +octon(1,0,0,0,0,0,0,0) +i := octon(0,1,0,0,0,0,0,0) +j := octon(0,0,1,0,0,0,0,0) +octon(0,0,0,1,0,0,0,0) +octon(0,0,0,0,1,0,0,0) +octon(0,0,0,0,0,1,0,0) +J := octon(0,0,0,0,0,0,1,0) +octon(0,0,0,0,0,0,0,1) + +i*(j*J) +(i*j)*J + +-- we can extract the coefficient w.r.t. a basis element: +imagi oci +imagE oci + +-- 1 and E build a basis with respect to the quaternions: +-- but what are the commuting rules? + +qs := Quaternion Polynomial Integer +os := Octonion Polynomial Integer + +-- a general quaternion: + +q : qs := quatern(q1,qi,qj,qk) +E := octon(0,0,0,0,1,0,0,0)$os + +q * E +E * q +q * 1$os +1$os * q + + +-- two general octonions: + + +o : os := octon(o1,oi,oj,ok,oE,oI,oJ,oK) +p : os := octon(p1,pi,pj,pk,pE,pI,pJ,pK) + + +-- the norm of an octonion is defined as the sum of the squares of the +-- coefficients: + + +norm o + +-- and the norm is multiplicative: + +norm(o*p)-norm(p*o) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/ode.input.pamphlet b/src/input/ode.input.pamphlet new file mode 100644 index 00000000..703fd348 --- /dev/null +++ b/src/input/ode.input.pamphlet @@ -0,0 +1,60 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ode.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> + + +--A bug when one one uses a diff.eq. with a free variable other than x. +)set break resume +y:=operator 'y +deqx:= differentiate(y x,x,2)+differentiate(y x,x) +y x +solve(deqx,y,x) --OK +solve(deqx,y,x=0,[1]) --OK +deqt:= differentiate(y t,t,2)+differentiate(y t,t) +y t +solve(deqt,y,t) --OK +solve(deqt,y,t=0,[1]) -- BUG! +deqz:= differentiate(y z,z,2)+differentiate(y z,z) +y z +solve(deqz,y,z) --OK +solve(deqz,y,z=0,[1]) -- BUG! + + +--I think the bug is in +-- file odeef.spad +-- constructor ODEEF +-- function solve(diffeq:F,y:OP,center:EQ,y0:List F) + +--the second line of the body was + +-- kx:K:=kernel x + +--which uses uninitialised x. I think it should be + +-- kx:K:=kernel(retract(lhs(center))@SY) + +--as the line immediately below it. That change certainly fixes THIS bug! + +--Also, maybe a check should be made that this kx is indeed to be found +--in the diffeq -- my system reports segmenttion violation if I do + + +solve(deqt,y,x=0,[1]) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/odpol.input.pamphlet b/src/input/odpol.input.pamphlet new file mode 100644 index 00000000..3ae98766 --- /dev/null +++ b/src/input/odpol.input.pamphlet @@ -0,0 +1,58 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ODPOL.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from OrderlyDifferentialPolynomialXmpPage +)clear all + +dpol:= ODPOL(FRAC INT) +w := makeVariable('w)$dpol +z := makeVariable('z)$dpol +w.5 +w 0 +[z.i for i in 1..5] +f:= w.4 - w.1 * w.1 * z.3 +g:=(z.1)**3 * (z.2)**2 - w.2 +D(f) +D(f,4) +df:=makeVariable(f)$dpol +df.4 +order(g) +order(g, 'w) +differentialVariables(g) +degree(g) +degree(g, 'w) +weights(g) +weights(g,'w) +weight(g) +isobaric?(g) +eval(g,['w::Symbol],[f]) +eval(g,variables(w.0),[f]) +monomials(g) +variables(g) +gcd(f,g) +groebner([f,g]) +lg:=leader(g) +sg:=separant(g) +ig:=initial(g) +g1 := D g +lg1:= leader g1 +pdf:=D(f, lg1) +prf:=sg * f- pdf * g1 +lcf:=leadingCoefficient univariate(prf, lg) +ig * prf - lcf * g * lg +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/op.input.pamphlet b/src/input/op.input.pamphlet new file mode 100644 index 00000000..ba4dcd64 --- /dev/null +++ b/src/input/op.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input op.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +abs(x) +eval(%,x=-3.4) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/op1.input.pamphlet b/src/input/op1.input.pamphlet new file mode 100644 index 00000000..640068b9 --- /dev/null +++ b/src/input/op1.input.pamphlet @@ -0,0 +1,46 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input OP.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from OperatorXmpPage +)clear all + +R := SQMATRIX(2, INT) +t := operator("tilde") :: OP(R) +)set expose add constructor Operator +evaluate(t, m +-> transpose m) +s : R := matrix [[0, 1], [1, 0]] +rho := t * s +z := rho**4 - 1 +m:R := matrix [[1, 2], [3, 4]] +z m +rho m +rho rho m +(rho**3) m +b := t * s - s * t +b m +L n == + n = 0 => 1 + n = 1 => x + (2*n-1)/n * x * L(n-1) - (n-1)/n * L(n-2) +dx := operator("D") :: OP(POLY FRAC INT) +evaluate(dx, p +-> D(p, 'x)) +E n == (1 - x**2) * dx**2 - 2 * x * dx + n*(n+1) +L 15 +E 15 +(E 15)(L 15) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/opalg.input.pamphlet b/src/input/opalg.input.pamphlet new file mode 100644 index 00000000..cf38ff57 --- /dev/null +++ b/src/input/opalg.input.pamphlet @@ -0,0 +1,44 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input opalg.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991, 1995. +@ +<<*>>= +<<license>> + +)cl all +-- This is the recursive definition of the Legendre polynomials +L n == + n = 0 => 1 + n = 1 => x + (2*n-1)/n * x * L(n-1) - (n-1)/n * L(n-2) + +L 5 + +-- Create the differential operator d/dx on Q[x] +dx := operator("D")::OP(POLY FRAC INT) +-- and attach the map d/dx to it: +evaluate(dx, p +-> differentiate(p, 'x))$OP(POLY FRAC INT) + +-- This is the differential equation satisfied by the nth Legendre poly: +E n == (1 - x**2) * dx**2 - 2 * x * dx + n*(n+1) +E 5 +[L i for i in 1..10] +[E i for i in 1..10] +[(E i)(L i) for i in 1..10] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/operator.input.pamphlet b/src/input/operator.input.pamphlet new file mode 100644 index 00000000..a789eb3c --- /dev/null +++ b/src/input/operator.input.pamphlet @@ -0,0 +1,34 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input operator.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991, 1995. +@ +<<*>>= +<<license>> +)clear all +L n == + n = 0 => 1 + n = 1 => x + (2*n-1)/n * x * L(n-1) - (n-1)/n * L(n-2) +dx := operator("D") :: OP(POLY FRAC INT) +evaluate(dx, p +-> differentiate(p, 'x))$OP(POLY FRAC INT) +E n == (1 - x**2) * dx**2 - 2 * x * dx + n*(n+1) +L 15 +E 15 + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/ovar.input.pamphlet b/src/input/ovar.input.pamphlet new file mode 100644 index 00000000..1dfe66e1 --- /dev/null +++ b/src/input/ovar.input.pamphlet @@ -0,0 +1,27 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input OVAR.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from OrderedVariableListXmpPage +)clear all + +ls:List Symbol:=['x,'a,'z] +Z:=OVAR ls +size()$Z +lv:=[index(i::PI)$Z for i in 1..size()$Z] +sorted?(>,lv) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/padic.input.pamphlet b/src/input/padic.input.pamphlet new file mode 100644 index 00000000..f563f222 --- /dev/null +++ b/src/input/padic.input.pamphlet @@ -0,0 +1,55 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input padic.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited MCMXCIV. +@ +<<*>>= +<<license>> + +-- Author: Clifton J. Williamson + +root2 : PADIC 7 := sqrt(2,3) +extend(root2,20) + +broot2 : BPADIC 7 := sqrt(2,3) +extend(broot2,20) + +xx : SUP INT := monomial(1,1) + +pp := xx^6 - 1 + +r1 : PADIC 7 := root(pp,1) +r2 : PADIC 7 := root(pp,2) +r3 : PADIC 7 := root(pp,3) +r4 : PADIC 7 := root(pp,4) +r5 : PADIC 7 := root(pp,5) +r6 : PADIC 7 := root(pp,6) + +(x - r1) * (x - r2) * (x - r3) * (x - r4) * (x - r5) * (x - r6) + +rr1 : BPADIC 7 := root(pp,1) +rr2 : BPADIC 7 := root(pp,2) +rr3 : BPADIC 7 := root(pp,3) +rr4 : BPADIC 7 := root(pp,4) +rr5 : BPADIC 7 := root(pp,5) +rr6 : BPADIC 7 := root(pp,6) + +(x - rr1) * (x - rr2) * (x - rr3) * (x - rr4) * (x - rr5) * (x - rr6) + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/palette.input.pamphlet b/src/input/palette.input.pamphlet new file mode 100644 index 00000000..e980f47f --- /dev/null +++ b/src/input/palette.input.pamphlet @@ -0,0 +1,35 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input palette.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- test for Palette domain + +dark blue() +dim blue() +bright blue() +pastel blue() +light blue() + +draw(x**2,x=-1..1,curveColor == hue dark blue()) + +shade bright blue() + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/parabola.input.pamphlet b/src/input/parabola.input.pamphlet new file mode 100644 index 00000000..4f847fec --- /dev/null +++ b/src/input/parabola.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input parabola.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- @(#)parabola.input 1.1 89/09/07 20:55:08 +draw(curve(t**2 + 2*t - 1,t**2 + t - 2),t = -4..3) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/parpcurv.input.pamphlet b/src/input/parpcurv.input.pamphlet new file mode 100644 index 00000000..176b97e3 --- /dev/null +++ b/src/input/parpcurv.input.pamphlet @@ -0,0 +1,28 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input parpcurv.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- test for ParametricPlaneCurve domain + +draw(curve(sin(3*t),cos(3*t)),t = -5*%pi..5*%pi) +draw(curve(sin(tan(t)),tan(sin(t))),t = -5*%pi..5*%pi) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/parscurv.input.pamphlet b/src/input/parscurv.input.pamphlet new file mode 100644 index 00000000..3380ca29 --- /dev/null +++ b/src/input/parscurv.input.pamphlet @@ -0,0 +1,28 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input parscurv.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- test for ParametricSpaceCurve domain + +draw(curve(tan(cos(t)),sin(t),cos(t)),t=-12..12) +draw(curve(sin(t),cos(t),sin(t)*cos(t)),t=-12..12) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/parsurf.input.pamphlet b/src/input/parsurf.input.pamphlet new file mode 100644 index 00000000..31da59de --- /dev/null +++ b/src/input/parsurf.input.pamphlet @@ -0,0 +1,34 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input parsurf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- test for ParametricSurface domain + +)clear all + +f1(u:DFLOAT,v:DFLOAT):DFLOAT == u*cos(v) +f2(u:DFLOAT,v:DFLOAT):DFLOAT == u*sin(v) +f3(u:DFLOAT,v:DFLOAT):DFLOAT == cos(u+v) +draw(surface(f1,f2,f3),0..2*%pi,-%pi..%pi) +f4(u:DFLOAT,v:DFLOAT):DFLOAT == v*cos(u+v) +draw(surface(f1,f2,f4),0..2*%pi,-%pi..%pi) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/pascal.input.pamphlet b/src/input/pascal.input.pamphlet new file mode 100644 index 00000000..2b47c10d --- /dev/null +++ b/src/input/pascal.input.pamphlet @@ -0,0 +1,37 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input pascal.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)clear all +-- this file shows some computations involving Pascal's triangle +)set fun cache all +p(m,n | m=1)==1 +p(m,n | m=n)==1 +p(i,n | 1 < i and i < n) == p(i-1,n-1) + p(i,n-1) +p(2,3) +pn(n) == [p(i,n) for i in 1..n] +pn(50) +pk n == [pn(i) for i in 1..n] +pk 10 +-- reset +)set fun cache 10 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/pascal1.input.pamphlet b/src/input/pascal1.input.pamphlet new file mode 100644 index 00000000..bdbf3084 --- /dev/null +++ b/src/input/pascal1.input.pamphlet @@ -0,0 +1,33 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input pascal1.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)clear all +-- this file shows some computations involving Pascal's triangle +)set fun cache all +p(m,n | m = 1) == 1 +p(m,n | m = n) == 1 +p(i,n | 1 < i and i < n) == p(i-1,n-1)+p(i,n-1) +p(2,3) +pr(n) == [p(i,n) for i in 1..n] +l := [center blankSeparate [p(i,n)::OUTFORM for i in 1..n] for n in 1..10] ; +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/pat.input.pamphlet b/src/input/pat.input.pamphlet new file mode 100644 index 00000000..2f6535ba --- /dev/null +++ b/src/input/pat.input.pamphlet @@ -0,0 +1,45 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input pat.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page PatternMatching +)clear all + +rule square(x) == x*x +fact(n | n > 0) == n * fact(n - 1) +fact(0) == 1 +f('A) == 1 +f(0) == 0 otherwise +binary(true) == 1 +binary(false) == 0 +sinValues == rules + sin(%pi) == 0 + sin(%pi/4) == sqrt(2)/2 +integrate(log(1 + tan(x)),x,0,%pi/4) == %pi/8*log(2) +powerOf(x,x) == 1 +powerOf(x,x**n) == n +powerOf(x,y) == 0 otherwise +powerOf(x,x**n%) == n% +powerOf(x,y) == 0 otherwise +linearExponent?(exp(%a*x+%b | freeOf?(%a,x) and freeOf?(%b,x)),x) == true +linearExponent?(exp(a) | freeOf?(a,x),x) == true +linearExponent?(u,x) == false +linearExponent?(exp(x),x) == true +linearExponent?(exp(a*x) | freeOf?(a,x),x) == true +linearExponent?(exp(x+b) | freeOf?(b,x),x) == true +linearExponent?(exp(a*x+b,x) | freeOf?(a,x) and freeOf?(b,x)) == true +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/patmatch.input.pamphlet b/src/input/patmatch.input.pamphlet new file mode 100644 index 00000000..b80a0a18 --- /dev/null +++ b/src/input/patmatch.input.pamphlet @@ -0,0 +1,56 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input patmatch.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)cl all +p := 3 * n ** 2 + 1 +q := 3 * n% ** 2 + 1 +a := roman 49 +b := roman IV +c := a - 1 +Is(a, p) +Is(a, q) +Is(b, p) +Is(b, q) +Is(c, p) +Is(c, q) +ab := a / b +pq := p / q +Is(ab, pq) +ab := rational ab +a := rational a +--Is([ab, a], [pq, _:l, p]) +--Is([ab, a], [pq, _:l%, p]) +--Is([ab, 1, 2, a], [pq, _:l, p]) +-- foo?(x:LIST FRAC INT):BOOLEAN == odd? _# x +-- qq := suchThat(_:l%, foo?) +-- Is([ab, 1, 2, a], [pq, qq, p]) +-- Is([ab, 1, 2, 3, a], [pq, qq, p]) +-- creating streams using pattern matching +-- want the streams of all primes of the form m**2+1 +bar?(n:INT):BOOLEAN == prime? n and is?(n, m**2 + 1) +myprimes := [i for i in 1.. | bar? i] +p := x**2 + 3*x + 1 +Is(p, n * y**2 + (2*n+1)*y + 1) +Is(p, n% * y**2 + (2*n%+1)*y + 1) +Is(3*x**2 + 9*x + 1, n * y**2 + n**2 * y + 1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/pdecomp0.as.pamphlet b/src/input/pdecomp0.as.pamphlet new file mode 100644 index 00000000..267a59bf --- /dev/null +++ b/src/input/pdecomp0.as.pamphlet @@ -0,0 +1,143 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input pdecomp0.as} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +-- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. +-- All rights reserved. +-- +-- Redistribution and use in source and binary forms, with or without +-- modification, are permitted provided that the following conditions are +-- met: +-- +-- - Redistributions of source code must retain the above copyright +-- notice, this list of conditions and the following disclaimer. +-- +-- - Redistributions in binary form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in +-- the documentation and/or other materials provided with the +-- distribution. +-- +-- - Neither the name of The Numerical ALgorithms Group Ltd. nor the +-- names of its contributors may be used to endorse or promote products +-- derived from this software without specific prior written permission. +-- +-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +-- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +-- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +-- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +-- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +-- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +-- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +-- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +-- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +-- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +@ +<<*>>= +#pile +#include "axiom.as" +<<license>> + +--% Polynomial composition and decomposition functions +-- If f = g o h then g = leftFactor(f, h) & h = rightFactor(f, g) +-- SMW Dec 86 + +--% PolynomialComposition +--)abbrev package PCOMP PolynomialComposition +--)abbrev package PDECOMP PolynomialDecomposition + +PolynomialComposition(UP: UnivariatePolynomialCategory(R), R: Ring): with + compose: (UP, UP) -> UP + + == add + compose(g:UP, h:UP):UP == + r: UP := 0 + while g ~= 0 repeat + r := leadingCoefficient(g)*h**degree(g) + r + g := reductum g + r + + +-- Ref: Kozen and Landau, Cornell University TR 86-773 + +--% PolynomialDecomposition + + +PolynomialDecomposition(UP:UPC F, F:Field): PDcat == PDdef where + UPC ==> UnivariatePolynomialCategory + NNI ==> NonNegativeInteger + LR ==> Record(left: UP, right: UP) + + PDcat ==> with + decompose: UP -> List UP + decompose: (UP, NNI, NNI) -> Union(value1:LR, failed:'failed') + leftFactor: (UP, UP) -> Union(value1:UP, failed:'failed') + rightFactorCandidate: (UP, NNI) -> UP + PDdef ==> add + + import from F + import from LR + import from Union(value1:UP, failed:'failed') + import from Float + import from NNI + import from UniversalSegment NNI + import from Record(quotient:UP, remainder:UP); + + leftFactor(f:UP, h:UP):Union(value1:UP, failed:'failed') == + g: UP := 0 + for i in 0.. while f ~= 0 repeat + fr := divide(f, h) + f := fr.quotient + r := fr.remainder + degree r > 0 => return [failed] + g := g + r * monomial(1, i) + [g] + + decompose(f:UP, dg:NNI, dh:NNI):Union(value1:LR, failed:'failed') == + df := degree f + dg*dh ~= df => [failed] + h := rightFactorCandidate(f, dh) + g:Union(value1:UP, failed:'failed') := leftFactor(f, h) + g case failed => [failed] + [[g.value1, h]] + + decompose(f:UP):List UP == + df := degree f + for dh in 2..df-1 | df rem dh = 0 repeat + h := rightFactorCandidate(f, dh) + g := leftFactor(f, h) + g case value1 => return + append(decompose(g.value1), decompose h) + [f] + + + rightFactorCandidate(f:UP, dh:NNI):UP == + f := f / leadingCoefficient f + df := degree f + dg := df quo dh + h := monomial(1, dh) + for k in 1..dh repeat + hdg:= h**dg + c := (coefficient(f,df-k)-coefficient(hdg,df-k))/ + (dg::Integer::F) + h := h + monomial(c, dh-k) + h - monomial(coefficient(h, 0), 0) -- drop constant term + + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/perm.input.pamphlet b/src/input/perm.input.pamphlet new file mode 100644 index 00000000..503c5c91 --- /dev/null +++ b/src/input/perm.input.pamphlet @@ -0,0 +1,185 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input perm.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)clear all + +-- This file demonstrates some of the new routines for permutations +-- in AXIOM. ( Last change: 05/16/89 by HWG ) +-- (J. Grabmeier: adjusted to new concept: 08/07/89) +-- (M. Weller : adjusted to 1..: 03/29/90) +-- (J. Grabmeier : adjusted to new algebra 05/14/90) + +-- Permutations can act on every set, finite or infinite. +-- Usually permutations are given as a product of cycles, +-- so the following generates a permutation acting on some +-- elements of GF(29): + +x : List List PrimeField 29 := + [[23,19,7,9,12,11,15],[22,4,14,18,2,5,8],[21,20,10,16,13,6,17]] +px : PERM PrimeField 29 := x + +-- If the permutation consists of just one cycle, you can use the +-- function "cycle" instead of "coerce": + +w : List PrimeField 29 := + [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23] +pw : PERM PrimeField 29 := cycle w + +-- For a product of cycles there is also the function "cycles": + +k : List List PrimeField 29 := + [[23,24],[22,16],[21,9],[20,19],[18,12],[17,14],[15,7],[10,6]] +pk : PERM PrimeField 29 := cycles k + +-- Since these permutations generate a group, you can +-- perform various operations on px, pw and pk. +-- You may have to be careful, because permutations are viewed +-- as mappings acting on the left, so (pw*pk)(7) = pw(pk(7)). +-- Here are some examples: + +pw*pk +px**3 + +-- You can ask for inverses: + +inv px + +-- or for the image of some element under a special permutation: + +eval(px,17::PrimeField(29)) + +-- you may try to build commutators: + +commutator(pk,pw) + +-- which is the same as inv(pk) * inv(pw) * pk * pw + +-- You can also ask for the orbit of some element under a permutation: + +orbit(px,11::PrimeField(29)) + +-- or for the elements of the underlying set, which are permuted +-- by a given permutation: + +movedPoints(pk) + +-- Now we take a short look on permutation groups. +-- They are represented as a list of generating permutations: + +gp1 : PERMGRP PrimeField 29 := [ px , pk ] +gp2 : PERMGRP PrimeField 29 := [ pw , px ] +gp3 : PERMGRP PrimeField 29 := [ pw , pk ] + +-- and we can ask for their orders: + +order gp1 +order gp2 +order gp3 + +-- In fact these are the Mathieu-groups M_22, M_23 and M_24. + +-- now a more sophisticated example +-- The following matrices generate the general linear group GL(3,2): + +(m1,m2,m3,m4): Matrix PrimeField 2 +m1 := [[1,1,0],[0,1,0],[0,0,1]] +m2 := [[1,0,0],[0,1,1],[0,0,1]] +m3 := [[1,0,0],[1,1,0],[0,0,1]] +m4 := [[1,0,0],[0,1,0],[0,1,1]] + +-- and these matrices act on the non-zero vectors of the +-- corresponding vector space + +vl : List Vector PrimeField 2 +vl := [[0,0,1],[0,1,0],[0,1,1],[1,0,0],[1,0,1],[1,1,0],[1,1,1]] + +-- Now we can write down the action of our matrices on this list vl +-- as a list of pairs + +ll1 : List List Vector PrimeField 2 := + [ [ vl.i , m1*(vl.i) ] for i in 1..7 ] +ll2 : List List Vector PrimeField 2 := + [ [ vl.i , m2*(vl.i) ] for i in 1..7 ] +ll3 : List List Vector PrimeField 2 := + [ [ vl.i , m3*(vl.i) ] for i in 1..7 ] +ll4 : List List Vector PrimeField 2 := + [ [ vl.i , m4*(vl.i) ] for i in 1..7 ] + +-- and we can coerce these lists to permutations + +el1 : PERM Vector PrimeField 2 := coerceListOfPairs ll1 +el2 : PERM Vector PrimeField 2 := coerceListOfPairs ll2 +el3 : PERM Vector PrimeField 2 := coerceListOfPairs ll3 +el4 : PERM Vector PrimeField 2 := coerceListOfPairs ll4 + +-- Now we can do the same operations as before, e.g. + +eval ( el3 , vl.5 ) +el2 * el1 +movedPoints el4 + +-- Let's built the general linear group now + +gl : PERMGRP Vector PrimeField 2 := [ el1 , el2 , el3 , el4 ] + +-- and ask for its order + +order gl + +-- We can also ask for the orbit of the unordered set of vectors + +setOfVectors : Set Vector PrimeField 2 := brace [ vl.2 , vl.4 , vl.6 ] + +-- under gl + +orbit ( gl, setOfVectors ) + +-- and also for the orbit of the ordered list + +listOfVectors : List Vector PrimeField 2 := parts setOfVectors +orbit ( gl, listOfVectors ) + +-- Now Rubik's cube. + +f : PERM INT := cycles [[11,13,15,17],[12,14,16,18],[51,31,21,41],[53,33,23,43],_ + [52,32,22,42]] + +r : PERM INT := cycles [[21,23,25,27],[22,24,26,28],[13,37,67,43],[15,31,61,45],_ + [14,38,68,44]] + +-- Some calculation in Rubik's group: + +(f**2*r**2)**3 + +rc := rubiksGroup() + +order rc + +orbits rc + +-- Can we interchange just two pieces with two visible faces on the cube +-- and leave everything else fixed? + +member? (cycles([[12,14],[32,22]])$(PERM INT),rc) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/perman.input.pamphlet b/src/input/perman.input.pamphlet new file mode 100644 index 00000000..0046235c --- /dev/null +++ b/src/input/perman.input.pamphlet @@ -0,0 +1,29 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input PERMAN.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from PermanentXmpPage +)clear all + +kn n == + r : MATRIX INT := new(n,n,1) + for i in 1..n repeat + r.i.i := 0 + r +permanent(kn(5) :: SQMATRIX(5,INT)) +[permanent(kn(n) :: SQMATRIX(n,INT)) for n in 1..13] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/pfr.input.pamphlet b/src/input/pfr.input.pamphlet new file mode 100644 index 00000000..b1ef7d1f --- /dev/null +++ b/src/input/pfr.input.pamphlet @@ -0,0 +1,123 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input pfr.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{Partial Fractions} +A {\it partial fraction} is a decomposition of a quotient into a +sum of quotients where the denominators of the summands are +powers of primes. +For example, the rational number $1 \over 6$ can be decomposed +into ${{1 \over 2} + {-1 \over 3}}.$ It is possible to compute +partial fractions of quotients of objects belonging to domains +belonging to the category {\sf EuclideanDomain}. +For example, {\sf Integer, Gaussian(Integer)} and {\sf +UnivariatePoly(x, RationalNumber)} all belong to {\sf +EuclideanDomain}. +In the examples below, we'll demonstrate how to decompose +quotients of each of these kind of objects into partial fractions. + +It is necessary that we know how to factor the denominator when +we want to compute a partial fraction. Although the interpreter +can often do this automatically, it is easier if you just include +a call to {\em factor}. The main function for computing partial +fractions is called {\em partialFraction} and we'll use this to +compute a decomposition of $1 \over {10!}$. +The first argument to {\em partialFraction} is the numerator of +the quotient and the second argument is the factored denominator. +<<code>>= +partialFraction(1,factor factorial 10) +@ +Since the denominators are powers of primes, it may be possible to +further expand the numerators with respect to those primes. Use the +function {\em padicFraction} to do this. The function +{\em compactFraction} returns an expanded fraction into the usual +form. The compacted version is used internally for computational +efficiency. +<<code>>= +f := padicFraction % +compactFraction % +@ +Given a partial fraction, it is possible to add, subtract, multiply +and divide them. In addition, it is possible to extract the parts +of the decomposition. The number of terms in fractional part is +computed by {\em numberOfFractionalTerms}. +<<code>>= +numberOfFractionalTerms f +@ +This does {\it not} include the whole part of the fraction, though +it can be gotten by calling {\em wholePart}. +<<code>>= +wholePart f +@ +Individual terms can be extracted with {\em nthFractionalTerm}. +<<code>>= +t3 := nthFractionalTerm(f,3) +@ +The numerator and denominator of the first fractional term are gotten +by calling {\em firstNumer} and {\em firstDenom}, respectively. +<<code>>= +firstNumer t3 +firstDenom t3 +@ +Given two gaussian integers (see \S \ref{gaussz}), it is possible +to decompose their quotient into a partial fraction. +<<code>>= +g := - 13 + 14 * %i +1/g +partialFraction(1,factor g) +@ +To convert back to a quotient, simply use a coercion. +<<code>>= +% :: FRAC COMPLEX INT +@ +Also, since {\sf QF G I} is {\it isomorphic} to +{\sf G RN} is further possible to +coerce the last result to a gaussian with rational number real and +imaginary parts. +<<code>>= +% :: COMPLEX FRAC INT + +)clear all +@ +To conclude this section, we'll compute the decomposition of +$$ +1 \over {\prod_{i=1}^{4} {{(x+1)}^i}} +$$ +The polynomials in this object will be of type +{\sf UnivariatePoly(x, RationalNumber)}, though it is easier to write +as {\sf P[x] RN}. +We'll use the {\em prfac} function (see \S \ref{factobj}) to +directly compute the denominator in factored form. +<<code>>= +u : FR UP(x,FRAC INT) := reduce(*,[primeFactor(x+i,i) for i in 0..4]) +@ +The compact and expanded partial fractions for the quotient are +<<code>>= +partialFraction(1,u) +padicFraction % +@ +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)set out len 57 +)time off +)clear all + +<<code>> +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/pfr1.input.pamphlet b/src/input/pfr1.input.pamphlet new file mode 100644 index 00000000..78094f62 --- /dev/null +++ b/src/input/pfr1.input.pamphlet @@ -0,0 +1,32 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input PFR.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from PartialFractionXmpPage +)clear all + +partialFraction(1,factorial 10) +f := padicFraction(%) +compactFraction(f) +numberOfFractionalTerms(f) +nthFractionalTerm(f,3) +partialFraction(1,- 13 + 14 * %i) +% :: Fraction Complex Integer +u : FR UP(x, FRAC INT) := reduce(*,[primeFactor(x+i,i) for i in 1..4]) +partialFraction(1,u) +padicFraction % +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/pinch.input.pamphlet b/src/input/pinch.input.pamphlet new file mode 100644 index 00000000..5273dc8c --- /dev/null +++ b/src/input/pinch.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input pinch.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- @(#)pinch.input 1.1 89/09/07 20:55:10 +draw((x**2 - y**2)/(x**2 + y**2),x = -1..1,y = -1..1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/plotfile.input.pamphlet b/src/input/plotfile.input.pamphlet new file mode 100644 index 00000000..e99d78a5 --- /dev/null +++ b/src/input/plotfile.input.pamphlet @@ -0,0 +1,84 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input plotfile.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +--Here is an input file which will plot a list of 2d data from a file. + +)clear all + +g := graphImage()$GRIMAGE +p1 := point [0,0]$(Point DoubleFloat) +p2 := point [.25,.25]$(Point DoubleFloat) +p3 := point [.5,.5]$(Point DoubleFloat) +p4 := point [.75,.75]$(Point DoubleFloat) +p5 := point [1,1]$(Point DoubleFloat) +component(g,p1)$GRIMAGE +component(g,p2)$GRIMAGE +appendPoint(g,p3)$GRIMAGE +appendPoint(g,p4)$GRIMAGE +appendPoint(g,p5)$GRIMAGE +g1 := makeGraphImage(g)$GRIMAGE +makeViewport2D(g1,[title("Graph Points")])$VIEW2D + +-- This line is equivalent to using component(g2,pi) for each point +g2 := coerce([[p1],[p2],[p3],[p4],[p5]])$GRIMAGE +v := viewport2D()$VIEW2D +options(v,[title("Just Points")]) +putGraph(v,g2,1) +makeViewport2D(v)$VIEW2D + +--------------------------------------------- +-- Create a 2d viewport of a list of points from a file +--------------------------------------------- + +drawList(lp:List Point DoubleFloat):VIEW2D == + n := #lp + g := graphImage()$GRIMAGE + for p in lp repeat + point(g,p,pointColorDefault())$GRIMAGE +-- component(g,p,pointColorDefault(),lineColorDefault(),pointSizeDefault())$GRIMAGE + gi := makeGraphImage(g)$GRIMAGE + makeViewport2D(gi,[title("Points")])$VIEW2D + +plotData2D(name, title) == + f:File(DoubleFloat) := open(name,"input") + lp:LIST(Point DoubleFloat) := empty() + while ((x := readIfCan!(f)) case DoubleFloat) repeat + y : DoubleFloat := read!(f) + lp := cons(point [x,y]$(Point DoubleFloat), lp) + lp + close!(f) + drawList(lp) + +--plotData(``file.data'', ``2D Data Plot'') + +)clear all + +drawFun(f:DoubleFloat->DoubleFloat):VIEW2D == + g := graphImage()$GRIMAGE + lp : LIST(Point DoubleFloat) := empty() + for i in 1..10 repeat + lp := cons(point [i, f(i)]$(Point DoubleFloat), lp) + component(g, lp, pointColorDefault(), lineColorDefault(), pointSizeDefault()) + gi := makeGraphImage(g)$GRIMAGE + makeViewport2D(gi, [title("Points")])$VIEW2D +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/plotlist.input.pamphlet b/src/input/plotlist.input.pamphlet new file mode 100644 index 00000000..7dd581ef --- /dev/null +++ b/src/input/plotlist.input.pamphlet @@ -0,0 +1,57 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input plotlist.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +)clear all +<<license>> + +--draws x**i for i in 1..5, x=-1..1 + +makePoint(x:DoubleFloat,y:DoubleFloat):(Point DoubleFloat) == + point(l :List DoubleFloat := [x,y])$(Point DoubleFloat) + +drawFun(fn:DoubleFloat->DoubleFloat, seg:Segment Float):List(List(Point DoubleFloat)) == + fp := (t:DoubleFloat):Point DoubleFloat +-> makePoint(t, fn(t)) + plot := pointPlot(fp, segment(convert(lo seg)@DoubleFloat, convert(hi seg)@DoubleFloat))$PLOT + lp := listBranches(plot)$PLOT + +drawFuns(fl:List(DoubleFloat->DoubleFloat), seg:SegmentBinding Float):VIEW2D == + v := viewport2D()$VIEW2D + i : PositiveInteger := 1 + for f in fl repeat + g := graphImage()$GRIMAGE + s : Segment Float := segment seg + llp : List(List(Point DoubleFloat)) := drawFun(f, s) + g :GRIMAGE := graphCurves(llp)$VIEW + putGraph(v,g,i)$VIEW2D + i := i + 1 + makeViewport2D(v)$VIEW2D + +makeListFuns(fl:List(Expression Integer),_ + seg:SegmentBinding Float):List(DoubleFloat->DoubleFloat) == + lfuns:List(DoubleFloat->DoubleFloat) := empty() + for f in fl repeat + ff : (DoubleFloat->DoubleFloat) := makeFloatFunction(f, variable seg)$MakeFloatCompiledFunction(Expression Integer) + lfuns := cons(ff, lfuns) + lfuns + +drawFuns(makeListFuns([x**i for i in 1..5], x=-1..1), x=-1..1) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/pmint.input.pamphlet b/src/input/pmint.input.pamphlet new file mode 100644 index 00000000..35d8542b --- /dev/null +++ b/src/input/pmint.input.pamphlet @@ -0,0 +1,548 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input pmint.input} +\author{Manuel Bronstein} +\maketitle +\begin{abstract} +pmint is a very short (95 lines) Maple program for integrating +transcendental elementary or special functions. It is based on recent +improvements to a powerful heuristic called parallel +integration. While it is not meant to be as complete as the large +commercial integrators based on the Risch algorithm, its very small +size makes it easy to port to any computer algebra system or library +capable of factoring multivariate polynomials. Because it is +applicable to special functions (such as Airy, Bessel, Whittaker, +Lambert), it is able to compute integrals not handled by the existing +integrators. + +pmint is not meant as a replacement for existing integrators, but +either as an extension, or as a cheap and powerful alternative for any +computer algebra project. + +\end{abstract} +\eject +\tableofcontents +\eject +\section{pmint} +These come from Manuel Bronstein's pages at +http://www-sop.inria.fr/cafe/Manuel.Bronstein/pmint/examples + +\section{The Maple Code} +The maple code is: +\begin{verbatim} + +# The Poor Man's Integrator, a parallel integration heuristic +# Version 1.1 --- May 10, 2005 (c) M.Bronstein and INRIA 2004-2005 +pmint := proc(f,x) + local ff, si, li, lin, lout, ld, q, d, l, vars, dx, ls, fint, lc; + ff := eval(convert(f, tan)); # convert trigs to tan + si := select(proc(d) diff(d,x) <> 0 end, indets(ff)); + si := select(proc(d) diff(d,x) <> 0 end, indets(map(diff, si, x))) union si; + li := [op(si)]; # list of terms in integrand and its derivative + lin := [seq(d=`tools/genglobal`(x), d=li)]; # substitution terms->indets + lout := [seq(rhs(d)=lhs(d), d=lin)]; # substitution indets->terms + ld := subs(lin, map(diff, li, x)); # derivatives of all the terms + q := lcm(seq(denom(d), d=ld)); # denominator of the total derivation + l := [seq(normal(q * d), d=ld)]; # q * derivatives of all the terms + vars := map(lhs, lout); + dx := totalDerivation(vars, l); # vector field dx = q * d/dx + ls := [seq(getSpecial(d, lin), d=li)]; # list of known Darboux for dx + fint := subs(lout, pmIntegrate(subs(lin, ff), dx, q, vars, ls)); + lc := select(proc(d) convert(d,string)[1]="_"; end, indets(fint, name)); + subs({seq(d = 0, d=lc minus si)}, fint); +end; + +getSpecial := proc(f, l) local p; # return known Darboux polys + p := op(0,f); + if p = `tan` then [1+subs(l,f)^2, false]; + elif p = `tanh` then [1 + subs(l,f), false], [1 - subs(l,f), false]; + elif p = `LambertW` then [subs(l,f), true]; + else NULL; fi; +end; + +totalDerivation := proc(lv, ld) + proc(f) local fp, i; + fp := 0; for i to nops(ld) do fp := fp + ld[i] * diff(f, lv[i]); od; + fp; + end; +end; + +pmIntegrate := proc(f, d, q, vars) + local ls, splq, s, ff, df, spl, cden, dg, monomials, cand, lunk, sol, i; + if nargs = 5 then ls := args[5]; else ls := []; fi; + splq := splitFactor(q, d); + s := splq[1]; for i to nops(ls) do if ls[i][2] then s := s*ls[i][1]; fi; od; + ff := normal(f); df := denom(ff); spl := splitFactor(df, d); + cden := s * spl[1] * deflation(spl[2], d); + dg := 1 + degree(s) + max(degree(numer(ff)), degree(denom(ff))); + monomials := [op(enumerateMonoms(vars, dg))]; + cand := add('_A'[i] * monomials[i], i = 1..nops(monomials)) / cden; + lunk := { seq('_A'[i], i = 1..nops(monomials)) }; + sol:= tryIntegral(f, d, q, vars, cand, lunk, spl[1], spl[2], splq[1], ls, 0); + if sol[1] then sol := tryIntegral(f, d, q, vars, cand, lunk, + spl[1], spl[2], splq[1], ls, I); fi; + if sol[1] then Int(f); else sol[2]; fi; +end; + +tryIntegral := proc(f, d, q, vars, cand, lunk, l1, l2, l3, ls, K) + local candlog, p, candidate, i, sol; + candlog := [op({ myfactors(l1, K), myfactors(l2, K), myfactors(l3, K) } + union { seq(p[1], p=ls) })]; + candidate := cand + add('_B'[i] * log(candlog[i]), i = 1..nops(candlog)); + sol := solve({coeffs(numer(normal(f - d(candidate)/q)), {op(vars)})}, + lunk union { seq('_B'[i], i = 1..nops(candlog)) }); + [evalb(sol=NULL), subs(sol,candidate)]; +end; + +myfactors := proc(p, K) local l, fact; + if K = 0 then l := factors(p); else l := factors(p, K); fi; + seq(fact[1], fact=l[2]); +end; + +enumerateMonoms := proc(vars, d) local n, x, i, v, s, w; + n := nops(vars); + if n = 0 then {1}; else + x := vars[n]; + v := [seq(vars[i], i = 1..n-1)]; + s := enumerateMonoms(v, d); + for i to d do s := s union {seq(x^i*w,w=enumerateMonoms(v,d-i))}; od; + s; + fi; +end; + +splitFactor := proc(p, d) local si, x, c, q, spl, s, splh; + si := select(proc(z) d(z) <> 0 end, indets(p,name)); + if si = {} then RETURN([1,p]) fi; + x := si[1]; + c := content(p, x, 'q'); + spl := splitFactor(c, d); + s := normal(gcd(q, d(q)) / gcd(q, diff(q, x))); + if degree(s) = 0 then RETURN([spl[1], q * spl[2]]); fi; + splh := splitFactor(normal(q / s), d); + [spl[1] * splh[1] * s, spl[2] * splh[2]]; +end; + +deflation := proc(p, d) local si, x, c, q; + si := select(proc(z) d(z) <> 0 end, indets(p,name)); + if si = {} then RETURN(p) fi; + x := si[1]; + c := content(p, x, 'q'); + deflation(c, d) * gcd(q, diff(q, x)); +end; + +\end{verbatim} +\section{rational functions} +<<rational functions>>= +)clear all +-- Rational Functions + +f:=(x^7-24*x^4-4*x^2+8*x-8)/(x^8+6*x^6+12*x^4+8*x^2) +-- should be: +-- 7 4 2 +-- x - 24x - 4x + 8x - 8 +-- (1) ------------------------ +-- 8 6 4 2 +-- x + 6x + 12x + 8x +-- Type: Fraction Polynomial Integer + +g:=integrate(f,x) +-- should be: +-- 5 3 3 2 +-- (x + 4x + 4x)log(x) + 3x + 8x + 6x + 4 +-- (2) ------------------------------------------ +-- 5 3 +-- x + 4x + 4x +-- Type: Union(Expression Integer,...) + +differentiate(g,x) +-- should be: +-- 7 4 2 +-- x - 24x - 4x + 8x - 8 +-- (3) ------------------------ +-- 8 6 4 2 +-- x + 6x + 12x + 8x +-- Type: Expression Integer + +@ +\section{trigonometric functions} +<<trigonometric functions>>= +)clear all +-- Trigonometric Functions + +f:=(x-tan(x))/tan(x)^2 + tan(x) +-- should be: +-- 3 +-- tan(x) - tan(x) + x +-- (1) -------------------- +-- 2 +-- tan(x) +-- Type: Expression Integer + +g:=integrate(f,x) +-- should be: +-- 2 2 +-- tan(x)log(tan(x) + 1) - x tan(x) - 2x +-- (2) -------------------------------------- +-- 2tan(x) +-- Type: Union(Expression Integer,...) + +differentiate(g,x) +-- should be: +-- 3 +-- tan(x) - tan(x) + x +-- (3) -------------------- +-- 2 +-- tan(x) +-- Type: Expression Integer + +@ +\section{log-exp functions} +<<log-exp functions>>= +)clear all +-- Log-Exp Functions + +f:=(1+x+x*exp(x))*(x+log(x)+exp(x)-1)/(x+log(x)+exp(x))^2/x +-- should be: +-- x x 2 2 x 2 +-- (x %e + x + 1)log(x) + x (%e ) + (x + 1)%e + x - 1 +-- (1) --------------------------------------------------------- +-- 2 x 2 x 2 2 x 3 +-- x log(x) + (2x %e + 2x )log(x) + x (%e ) + 2x %e + x +-- Type: Expression Integer + +g:=integrate(f,x) +-- should be: +-- x x +-- (log(x) + %e + x)log(log(x) + %e + x) + 1 +-- (2) ------------------------------------------- +-- x +-- log(x) + %e + x +-- Type: Union(Expression Integer,...) + +differentiate(g,x) +-- should be: +-- x x 2 2 x 2 +-- (x %e + x + 1)log(x) + x (%e ) + (x + 1)%e + x - 1 +-- (3) --------------------------------------------------------- +-- 2 x 2 x 2 2 x 3 +-- x log(x) + (2x %e + 2x )log(x) + x (%e ) + 2x %e + x +-- Type: Expression Integer + +@ +\section{liouvillian functions} +<<liouvillian functions>>= +)clear all +-- Liouvillian special functions + +f:=exp(-x^2)+erf(x)/(erf(x)^3-erf(x)^2-erf(x)+1) +-- should be: +-- 2 +-- 3 2 - x +-- (erf(x) - erf(x) - erf(x) + 1)%e + erf(x) +-- (4) ----------------------------------------------- +-- 3 2 +-- erf(x) - erf(x) - erf(x) + 1 +-- Type: Expression Integer + +-- +-- 2 +-- x 3 2 - %G +-- ++ (erf(%G) - erf(%G) - erf(%G) + 1)%e + erf(%G) +-- (2) | ---------------------------------------------------- d%G +-- ++ 3 2 +-- erf(%G) - erf(%G) - erf(%G) + 1 +-- Type: Union(Expression Integer,...) + + + +f:=(exp(-x^2)+erf(x))/(erf(x)^3-erf(x)^2-erf(x)+1) +-- should be: +-- 2 +-- - x +-- %e + erf(x) +-- (3) ------------------------------ +-- 3 2 +-- erf(x) - erf(x) - erf(x) + 1 +-- Type: Expression Integer + +integrate(f,x) +-- should be: +-- 1 sqrt(%pi) 1 1 +-- - - ------------ - - sqrt(%pi) log(erf(x)+1) + - sqrt(%pi) log(erf(x)-1) +-- 4 erf(x) - 1 8 8 + +-- but axiom cannot do this and gives: +-- 2 +-- x - %G +-- ++ %e + erf(%G) +-- (4) | --------------------------------- d%G +-- ++ 3 2 +-- erf(%G) - erf(%G) - erf(%G) + 1 +-- Type: Union(Expression Integer,...) + +@ +\section{airy functions} +<<airy functions>>= +)clear all +-- Airy Functions + +-- f:=(x-airyAi(x)*airyAi(1,x))/(x^2-airyAi(x)^2) +-- Axiom does not have a 2 argument form of the airyAi function + +-- integrate(f,x) +-- should be: +-- 1 1 +-- - log(x+airyAi(x)) + - log(x-airyAi(x)) +-- 2 2 + +f:=x^2*airyAi(x) +-- should be: +-- 2 +-- (1) x airyAi(x) +-- Type: Expression Integer + +g:=integrate(f,x) +-- should be: +-- -airyAi(x) + airyAi(1,x) x +-- but Axiom cannot integrate this and gives: +-- +-- x +-- ++ 2 +-- (2) | %H airyAi(%H)d%H +-- ++ +-- Type: Union(Expression Integer,...) + +@ +\section{bessel functions} +<<bessel functions>>= +)clear all +-- Bessel functions + +f:=besselJ(y+1,x)/besselJ(y,x) +-- should be: +-- besselJ(y + 1,x) +-- (1) ---------------- +-- besselJ(y,x) +-- Type: Expression Integer + +g:=integrate(f,x) +-- should be: +-- y log(x) - log(besselJ(y,x)) +-- but Axiom cannot integrate it and gives: +-- +-- x +-- ++ besselJ(y + 1,%H) +-- (2) | ----------------- d%H +-- ++ besselJ(y,%H) +-- Type: Union(Expression Integer,...) + +-- f:=normal(y*besselJ(y,x)/x = besselJ(y+1,x)) +-- Axiom does not have Maple's normal function +-- should be: +-- besselJ(y+1,x) x - y besselJ(y,x) +-- - --------------------------------- +-- x +-- + +@ +\section{whittaker functions} +<<whittaker functions>>= +)clear all +-- Whittaker functions + +-- f:=WhittakerW(u+1,n,x)/(WhittakerW(u,n,x)*x) +-- Axiom does not implement WhittakerW +-- should be: +-- Whittaker(u+1,n,x) +-- ------------------ +-- Whittaker(u,n,x) x + +-- integrate(f,x) +-- should be: +-- x +-- - - u log(x) - log(WhattakerW(u,n,x)) +-- 2 + +@ +\section{lambertW function} +<<lambertW function>>= +)clear all +-- The Lambert W function + +-- f:=LambertW(x) +-- Axiom does not implement LambertW + +-- g:=integrate(f,x) +-- should be: +-- 2 2 2 2 +-- x + LambertW(x) x - LambertW(x) x +-- ------------------------------------ +-- x LambertW(x) + +--integrate(sin(LambertW(x)),x) +--should be: +-- +- -+ +-- | 2 | +-- | +- -+ | +-- | 1 | 1 | 2 | +-- | - LambertW(x) tan | - LambertW(x) | x + | +-- | 2 | 2 | | +-- | +- -+ | +-- | | +-- | +- -+ | +-- | | 1 | 2 | +-- | LambertW(x) tan | - LambertW(x) | x + | +-- | | 2 | | +-- | +- -+ | +-- | | +-- | +- -+ | +-- | | 1 | 2 1 2 | +-- | tan | - LambertW(x) | x - - LambertW(x) x | +-- | | 2 | 2 | +-- | +- -+ | +-- +- -+ +-- ------------------------------------------------------ +-- +- 2 -+ +-- | +- -+ | +-- | | 1 | | +-- x LambertW(x) | 1 + tan | - LambertW(x) | | +-- | | 2 | | +-- | +- -+ | +-- +- -+ + +-- f:=((x^2+2)*LambertW(x^2)^2+x^2*(2*LambertW(x^2)+1))/(x*(1+LambertW(x^2)^3)) +--should be: +-- 2 +-- 2 2 2 2 +-- (x + 2) LambertW(x ) + x (2 LambertW(x ) + 1) +-- ------------------------------------------------ +-- 3 +-- 2 +-- x (1 + LambertW(x )) + +--integrate(f,x) +--should be: +-- 2 4 +--1 4 2 4 2 x 2 2 2 2 +--- x LambertW(x ) + x LambertW(x ) + -- + LambertW(x ) x + x LambertW(x ) +--2 2 +----------------------------------------------------------------------------- +-- 2 +-- 2 2 2 +-- x LambertW(x ) (1 + LambertW(x )) +-- +-- + +-- 2 +-- log(1 + LambertW(x )) + +--f:=(2*LambertW(x^2)*cos(LambertW(x^2))*(a*x+LambertW(x^2))+a*x*(1+LambertW(x^2)) + 2*LambertW(x^2))/((1+LambertW(x^2))*(a*x+LambertW(x^2))*x) +--+- -+ +--| | +--| 2 2 2 | +--| 2 LambertW(x ) cos(LambertW(x )) (a x + LambertW(x )) + | +--| | +--| 2 2 | +--| a x (1 + LambertW(x )) + 2 LambertW(x ) | +--| | +--+- -+ +------------------------------------------------------------- +-- 2 2 +-- (1 + LambertW(x ))(a x+LambertW(x )) x +-- + +--integrate(f,x) +-- +-- +- -+ +-- | 1 2 | +-- 2 tan | - LambertW(x ) | +-- | 2 | +-- +- -+ 2 +-- --------------------------- + log(a x + LambertW(x )) +-- 2 +-- +- -+ +-- | 1 2 | +-- 1 + tan | - LambertW(x ) | +-- | 2 | +-- +- -+ +-- +-- + +@ +wright omega function} +<<wright omega function>>= +)clear all +-- The Wright omega function + +-- omega:=proc(z) LambertW(exp(z)); end; +-- should be (in Maple notation) +-- +-- proc(z) LambertW(exp(z)) end proc +-- +--normal(integrate(omega(x),x)) +-- +-- 1 x x +-- - LambertW(%e )(LambertW(%e )+2) +-- 2 +-- +--f:=(1+LambertW(%e^x)*(2+cos(LambertW(%e^x))*(x+LambertW(%e^x))))/((1+LambertW(%e^x))*(x+LambertW(%e^x))) +-- +--integrate(f,x) +-- +-- +- -+ +-- | 1 x | +-- 2 tan | - LambertW(%e ) | +-- | 2 | +-- +- -+ x +-- ---------------------------- + log(x + LambertW(%e )) +-- 2 +-- +- -+ +-- | 1 x | +-- 1 + tan | - LambertW(%e ) | +-- | 2 | +-- +- -+ +-- + +@ +\section{License} +<<license>>= +--Version 1.1 --- May 10, 2005 (c) M.Bronstein and INRIA 2004-2005 +@ +<<*>>= +<<license>> +<<rational functions>> +<<trigonometric functions>> +<<log-exp functions>> +<<liouvillian functions>> +<<airy functions>> +<<bessel functions>> +<<whittaker functions>> +<<lambertW function>> +<<wright omega function>> +@ +\section{\eject +\begin{thebibliography}{99} +\bibitem{1} J.H.Davenport (1982): +On the Parallel Risch Algorithm (I), +Proceedings of EUROCAM'82, LNCS 144, Springer, 144-157. +\bibitem{2} J.H.Davenport (1982): +On the Parallel Risch Algorithm (III): Use of Tangents, +SIGSAM Bulletin 16, 3-6. +\bibitem{3} J.H.Davenport, B.M.Trager (1985): +On the Parallel Risch Algorithm (II), +ACM Transactions on Mathematical Software 11, 356-362. +\bibitem{4} J.Fitch (1981): +User-based integration software, +Proceedings of SYMSAC'81, ACM Press, 245-248. +\bibitem{5} K.Geddes, L.Stefanus (1989): +On the Risch-Norman Integration Method and its Implementation in Maple, +Proceedings of ISSAC'89, ACM Press, 212-217. +\bibitem{6} S.H.Harrington (1979): +A new symbolic integration system in reduce, +The Computer Journal 22, 127-131. +\bibitem{7} A.C.Norman, P.M.A.Moore (1977): +Implementing the new Risch Integration Algorithm, +Proceedings of the 4th International Colloquium on Advanced Computing +Methods in Theoretical Physics, 99-110. +\end{thebibliography} +\end{document} diff --git a/src/input/pollevel.input.pamphlet b/src/input/pollevel.input.pamphlet new file mode 100644 index 00000000..b317de86 --- /dev/null +++ b/src/input/pollevel.input.pamphlet @@ -0,0 +1,47 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input pollevel.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> + +-- This file tests variables moving to the correct level within +-- polynomial towers. + +)clear all + +f(y : UP(x, POLY INT)): UP(x, POLY INT) == x * y +f(x) + +)clear all + +y := operator 'y + +eq1 := D(y x,x,2) - x*y(x)=0 +seriesSolve(eq1,y,x=0,[0,a]) + +eq2 := D(y x,x) - x*cos(y x) - exp(x) +seriesSolve(eq2,y,x=0,y(0) = 0) + +)clear all + +p : UP(x, POLY INT) := x +u := (z*x) +u * p +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/poly.input.pamphlet b/src/input/poly.input.pamphlet new file mode 100644 index 00000000..37fdb61d --- /dev/null +++ b/src/input/poly.input.pamphlet @@ -0,0 +1,96 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input poly.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page PolynomialSingleRootPage +)clear all + +a := rootOf(a**4+1,a) +definingPolynomial a +b := rootOf(b**2-a-1,b) +a + b +% ** 5 +rootOf(c**2+c+1,c) +zeroOf(d**2+d+1,d) +rootOf(e**5-2,e) +zeroOf(f**5-2,f) + +-- Input for page PolynomialGCDPage +)clear all + +p := 3*x**8 + 2*x**7 + 6*x**2 + 7*x + 2 +q := 2*x**13 + 9*x**7 + 2*x**6 + 10*x + 5 +gcd(p,q) +resultant(p,q,x) + +-- Input for page PolynomialSubstitutionPage +)clear all + +p := x**2 + y**2 +eval(p,x=5) +eval(p,[x = a + b,y = c + d]) +q := x**3 + 5*x - y**4 +eval(q,[x=y,y=x]) +px := eval(p, y = sin(2.0)) +eval(px, x = cos(2.0)) + +-- Input for page PolynomialFactorizationPage +)clear all + +factor(x**3 - 3*x + 2) +factor(x**2/4 + x*y + y**2) +p := x**3 + x*y + 2*x**2*y**2 + 2*y**3 + 3*x**2*z + 6*x*y**2*z +factors := factor p +nthFactor(factors,1) +nthFactor(factors,2) + +-- Input for page PolynomialBasicPage +)clear all + +p := a*x**2 + b*x*y + c*y**2 +q := 13*x**2 + 3*z +p + q +p - 3*q +p**2 + p*q +r := (p + q)**2 +setVariableOrder [a,b,c,x,y,z] +p +q +r +resetVariableOrder() +p +coefficient(q,x,2) +coefficient(r,x,3) +c := coefficient(r,z,1) +coefficient(c,x,2) +coefficient(q**2, [x,z], [2,1]) +coefficient(r, [x,y], [2,2]) + +-- Input for page PolynomialRootsPage +)clear all + +l := rootsOf(x**4+1,x) +x0**5 +definingPolynomial x0 +definingPolynomial x1 +definingPolynomial x2 +x3 := last l +x0 + x1 + x2 + x3 +x0 * x1 * x2 * x3 +zerosOf(y**4+1,y) +definingPolynomial y1 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/poly1.input.pamphlet b/src/input/poly1.input.pamphlet new file mode 100644 index 00000000..a2b4fcf8 --- /dev/null +++ b/src/input/poly1.input.pamphlet @@ -0,0 +1,68 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input POLY.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from PolynomialXmpPage +)clear all + +x + 1 +z - 2.3 +y**2 - z + 3/4 +y **2 + x*y + y +% :: DMP([y,x],INT) +p := (y-1)**2 * x * z +q := (y-1) * x * (z+5) +factor(q) +p - q**2 +gcd(p,q) +factor % +lcm(p,q) +content p +resultant(p,q,z) +resultant(p,q,x) +mainVariable p +mainVariable(1 :: POLY INT) +ground? p +ground?(1 :: POLY INT) +variables p +degree(p,x) +degree(p,y) +degree(p,z) +degree(p,[x,y,z]) +minimumDegree(p,z) +totalDegree p +leadingMonomial p +reductum p +p - leadingMonomial p - reductum p +leadingCoefficient p +p +eval(p,x,w) +eval(p,x,1) +eval(p,x,y**2 - 1) +D(p,x) +D(p,y) +D(p,z) +integrate(p,y) +qr := monicDivide(p,x+1,x) +qr.remainder +p - ((x+1) * qr.quotient + qr.remainder) +p/q +(2/3) * x**2 - y + 4/5 +% :: FRAC POLY INT +% :: POLY FRAC INT +map(numeric,%) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/polycoer.input.pamphlet b/src/input/polycoer.input.pamphlet new file mode 100644 index 00000000..dd2c598b --- /dev/null +++ b/src/input/polycoer.input.pamphlet @@ -0,0 +1,71 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input polycoer.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- This file demonstrates the capabilities of the interpreter to +-- perform coercions among different polynomial types. +)clear all +u : UP(x,COMPLEX INT) +u := (2+3*%i)*x**5 - 7*x**4 +x**2 + 89 +m : MPOLY([x,y,z],COMPLEX INT) +m := u +m := m*y - z**2 +m1 : MPOLY([r,z,t,x,s,y],COMPLEX INT) +m1 := m +v : DMP([x,y,z],COMPLEX INT) +v := u +u := v +v1 : DMP([r,z,t,x,s,y],COMPLEX INT) +v1 := v +v := m +v1 := m1 +)clear all +u : DMP([x,y],INT) +f : UP(x,UP(y,INT)) +u := x + y +f := u +u := x**2*y**9 - x**2*y**2 +f := u +)clear all +u : DMP([z,x,y],INT) +f : UP(x,DMP([y,z],INT)) +u := x + y + z +f := u +u := x**2*y - z*x**2 + y*z - x**3*y*z + 3 +f := x**2*y - z*x**2 + y*z - x**3*y*z + 3 +f := u +)clear all +u : DMP([x,y,z,w],INT) +f : UP(w,DMP([y,z],INT)) +u := y**2 - w**5*y**2 - z*w + 3 +f := y**2 - w**5*y**2 - z*w + 3 +f := u +)clear all +(x1,x2,x3) : DMP([a,b,c,d,e,f],Fraction INT) +x1 := 2*a + 3*b - c +x2 := 3 - 3*e + f +x3 := a + b + c + d + e + f +l1 : List DMP([a,b,c,d,e,f],Fraction INT) +l2 : List UP(f,DMP([a,b,c,d,e],Fraction INT)) +l1 := [x1,x2,x3] +l2 := l1 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/psgenfcn.input.pamphlet b/src/input/psgenfcn.input.pamphlet new file mode 100644 index 00000000..70096a21 --- /dev/null +++ b/src/input/psgenfcn.input.pamphlet @@ -0,0 +1,80 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input psgenfcn.input} +\author{Clifton J. Williamson} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +--% Power Series Generating Functions +-- We obtain Fibonacci numbers, Bernoulli numbers and polynomials, and +-- Euler numbers and polynomials as power series coefficients +-- Author: Clifton J. Williamson +-- Date Created: 1 June 1990 +-- Date Last Updated: 1 June 1990 +-- Keywords: Fibonacci, Bernoulli, Euler +-- References: + +-- We will compute power series in two different ways, then test equality +-- of coefficients up to a specified order. The function that tests +-- 'approximate equality' will return an error message if the test fails. + +)cl all + +ORD := 20 + +approximateEquality(series1,series2) == + -- tests that 2 series are equal to order ORD + uts1 := series1 :: UTS(EXPR INT,'t,0) + uts2 := series2 :: UTS(EXPR INT,'t,0) + flag := (order(uts1 - uts2,ORD) = ORD) :: Boolean + flag => true + error "series do not agree to specified order" + +bernoulliPolynomial(n) == + -- returns the nth Bernoulli polynomial as an EXPR INT + sup := bernoulli(n)$(PNTHEORY) + p : POLY FRAC INT := multivariate(sup,'x) + p :: (EXPR INT) + +eulerPolynomial(n) == + -- returns the nth Euler polynomial as an EXPR INT + sup := euler(n)$(PNTHEORY) + p : POLY FRAC INT := multivariate(sup,'x) + p :: (EXPR INT) + +f1 := taylor(t/(1 - t - t**2)) +f2 := taylor(n +-> fibonacci(n),t = 0) +approximateEquality(f1,f2) + +g1 := taylor(t/(exp(t) - 1)) +g2 := taylor(n +-> bernoulli(n)/factorial(n),t = 0) +approximateEquality(g1,g2) + +gg1 := taylor(t*exp(t*x)/(exp(t) - 1),t = 0) +gg2 := taylor(n +-> bernoulliPolynomial(n)/factorial(n),t = 0) +approximateEquality(gg1,gg2) + +h1 := taylor(2*exp(t/2)/(exp(t) + 1)) +h2 := taylor(n +-> euler(n)/(2**n * factorial(n)),t = 0) +approximateEquality(h1,h2) + +hh1 := taylor(2*exp(t*x)/(exp(t) + 1),t = 0) +hh2 := taylor(n +-> eulerPolynomial(n)/factorial(n),t = 0) +approximateEquality(hh1,hh2) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/quat.input.pamphlet b/src/input/quat.input.pamphlet new file mode 100644 index 00000000..93c35fee --- /dev/null +++ b/src/input/quat.input.pamphlet @@ -0,0 +1,73 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input quat.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- This file demonstrates some operations with quaternions. + +)clear all + +-- The basic function for creating quaternions is "quatern". This is +-- a quaternion over the rational numbers. +q := quatern(2/11,-8,3/4,1) + +-- The four arguments are the real part, the i imaginary part, the +-- j imaginary part and the k imaginary part, respectively. These are +-- extracted with the following functions. + +real q +imagI q +imagJ q +imagK q + +-- Because q is over the rationals (and nonzero), you can invert it ... +inv q + +-- in addition to the normal arithmetic (ring) operations. +q**6 +r := quatern(-2,3,23/9,-89) +q + r +q - r + +-- In general, multiplication is not commutative. +q * r +r * q + +-- There are no predefined constants for the imaginary i, j and k but +-- you can easily define them. + +i := quatern(0,1,0,0) +j := quatern(0,0,1,0) +k := quatern(0,0,0,1) + +i*i +j*j +k*k +i*j +j*k +k*i +q * i + +-- The norm is the quaternion times its conjugate +norm q +conjugate q +q * % +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/quat1.input.pamphlet b/src/input/quat1.input.pamphlet new file mode 100644 index 00000000..91cd0205 --- /dev/null +++ b/src/input/quat1.input.pamphlet @@ -0,0 +1,33 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input QUAT.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from QuaternionXmpPage +)clear all + +q := quatern(2/11,-8,3/4,1) +[real q, imagI q, imagJ q, imagK q] +inv q +q**6 +r := quatern(-2,3,23/9,-89); q + r +q * r - r * q +i:=quatern(0,1,0,0); j:=quatern(0,0,1,0); k:=quatern(0,0,0,1) +[i*i, j*j, k*k, i*j, j*k, k*i, q*i] +norm q +conjugate q +q * % +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/r20abugs.input.pamphlet b/src/input/r20abugs.input.pamphlet new file mode 100644 index 00000000..3c020e99 --- /dev/null +++ b/src/input/r20abugs.input.pamphlet @@ -0,0 +1,104 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input r20abugs.input} +\author{Mike Dewar} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> + + +-- This file tests bugs fixed/additions made since release 2.0a. +-- Created by Mike Dewar, 17.5.95 + +-- Added eval for aggregates +)clear completely +m : Matrix Expression Integer := matrix [[i*x^j for i in 1..3] for j in 1..3] +eval(m,x=0) + +-- Added seed function +)clear completely +s:= seed(); +r1 := randnum(); +for i in 1..10 repeat randnum(); +reseed s; +r2 := randnum(); +r1 - r2 + +-- Fixed some problems with %e etc in rules +)clear completely +r3:=rule(3==%pi) -- biblical approximation +numeric(%pi) +numeric(r3(3)) + +)clear completely +-- Added some extra simplifications +sin(atan(sqrt 3)/2) + +)clear completely +-- Fix to poly from Quitte +R := IntegerMod(4) +PolR := UP('X, R) +X : PolR := monomial(1, 1) +a : PolR := 2 * X**2 +b : PolR := X**2 + 2*X + 1 +-- Used to give a 0 remainder! +qr := monicDivide(a, b) +a - (qr.quotient * b + qr.remainder) + +)clear completely +-- This used not to return 0 +limit(%e^(1/x^2)/(%e^(1/x^2) + %e^(1/x^4)), x=0) + +)clear completely +-- This used to crash because we generated tan(%pi/2) +integrate((sin(t))*sin((%pi-t)/6),t) + +)clear completely +-- This used not to return 1.0! +(x+1.0)/(x+1.0) + +)clear completely +-- This used to return a formal integral +b := D(Ci(x),x) +integrate(b,x) +-- This used to return -Si(x) rather than log(x) - Si(x) +integrate((1 - sin x)/x,x) + +)clear completely +-- This used to return "failed" +limit(erf(x),x=c) + +-- Used only to do structural equality for algebraic numbers, now try +-- to do true mathematical equality +(sqrt(2)*sqrt(3)=sqrt(6))@Boolean + +-- New case we couldn't handle before +integrate((a + b*x)*exp(-x^2),x) + +-- This used to give an infinite recursion +laplace(sin(t)^2/t^(3/2),t,s) + +)clear completely +-- The following used to fail +P:=x^4+x^3+x^2+x+1 +Q:=x^5+x^4+2*x^3+2*x^2+2*x-2+4*sqrt(-1+sqrt(3)) +int := P/Q +int2 := int pretend FRAC POLY IAN +ans:=integrate(int2,x) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/r20bugs.input.pamphlet b/src/input/r20bugs.input.pamphlet new file mode 100644 index 00000000..d9ad5acd --- /dev/null +++ b/src/input/r20bugs.input.pamphlet @@ -0,0 +1,82 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input r20bugs.input} +\author{Mike Dewar} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> + +--Copyright The Numerical Algorithms Group Limited 1996. +-- This file tests bugs fixed at release 2.0a. +-- Mike Dewar 17-5-95 + +)clear completely +x := operator 'x +sum( (x i - mu)**2, i=1..N ) +D(%,mu) + +)clear completely +z := log(x+.3*%i) +z1 : EXPR Complex Float := z +complexForm(z1)$CTRIGMNP(Float, EXPR Complex Float) + +)clear completely +acot(-1) + +)clear completely +sqrt(-1.0::COMPLEX FLOAT) +log(x+%i)::EXPR COMPLEX FLOAT + +)clear completely +positiveRemainder(-1,-5) + +)clear completely +f:POLY FRAC COMPLEX INT := x^2+y^2 +factor f + +)clear completely +acot(-y) + +)clear completely +a:=matrix [[1,2],[2,-1]] +eigenMatrix a + +)clear completely +positiveRemainder(-1::SINT,-5::SINT) + +)clear completely +complexRoots([u**2-v+1,v**2-4],[u,v],0.01) +complexRoots([u**2-v+1,v**2-4],[v,u],0.01) + +)clear completely +R := Record(key:Symbol,entry:Integer) +tab := table([[a,1]$R,[b,2]$R,[c,3]$R])$Table(Symbol,Integer) +remove!(b::Symbol,tab) + +)clear completely +limit((x^a-a^x)/(x^x-a^a),x=a) + +)clear completely +(4*x^6+16*x^4+16*x^2)*y^2+(-4*x^6+16*x^2)*y-8*x^6-16*x^4 +eval(%,x,z) +exquo(%,expand factor %) + +)clear completely +log exp z +normalize % +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/r21bugs.input.pamphlet b/src/input/r21bugs.input.pamphlet new file mode 100644 index 00000000..5ae72489 --- /dev/null +++ b/src/input/r21bugs.input.pamphlet @@ -0,0 +1,184 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input r21bugs.input} +\author{Mike Dewar} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> + + +-- This file tests bugs fixed since release 2.1. +-- Mike Dewar 19-11-96 + +)clear completely +-- This bug, spotted by Claude Quitte, meant that we generated incorrect +-- expressions for Chebyshev polynomials of the second kind, so that they +-- did not satisfy the recurrence relation: +-- U_n(x) - x U_{n-1}(x) = T_n(x) + +)set expose add constructor PolynomialNumberTheoryFunctions +X : UP('x, Integer) := x +[chebyshevU(n) - X*chebyshevU(n-1) - chebyshevT(n) for n in 1 .. ] + +)clear completely +Fp:=PF 2 +poly:=createIrreduciblePoly(4)$FFPOLY(Fp) +Fq:=FFP(Fp, poly) -- Field with 16 elements +R:=DMP([X,Y,Z],Fq) +Q:=FRAC R +F:=X**4+X*Z**3 +G:=X**4+X**2*Y**2+Z**4 +h:Q:=F/G + +)clear completely + +squareFree ((c^15*e^8+c^23*d^4)::POLY PF 2) + +)clear completely +FiniteFieldExtensionByPolynomial(FF(3,3),1+2*x**2+x**3) + +)clear completely +Field has Ring + +)clear completely +-- from bmt +y:=operator y +u:=operator u +eval(y x, y, c[1]*x,x) +eval(y x, y, D(u t,t),t) +eval(y x ,y, integral(u t,t),t) +eval(y x ,y, integral(u z,z=z0..t),t) +eval(y x+D(y x,x), y, u t+ D(u t,t),t) +eval(D(y x,x)+y(x),y,D(u x,x)+u(x),x) + + +)clear completely +-- from bmt +ps:=x::TS FRAC INT +D(ps,x) -- fails to find function +D(ps,[x]) -- works +D(ps,[y]) -- causes ccl to disappear (at least under windows) + + +)clear completely +-- from bmt +T1:=3 +a | a^2+1 +--gets an error while trying to display the type of the expression +--since it uses fortran code generation stuff which wants to use +-- the variable name T1 for some other purpose + +)clear completely +-- from bmt +u1 := operator 'u1 +u2 := operator 'u2 +eq1 := D(u1(t),t,2) + 5*u1(t) = 2*u2(t) +eq2 := D(u2(t),t,2) + 2*u2(t) = 2*u1(t) +eq1/2 +_rule(rhs %, lhs %) +%(lhs eq2) +eval(%,t=0) + +)clear completely +-- from bmt +bug := [exp(sqrt(-5))] +complexForm(bug.1) -- works +map(complexForm,bug::List EXPR COMPLEX INT) -- works +map(complexForm,bug) -- fails + + +)clear completely +-- from bmt +f x == c[1]*exp(x) +f x -- works +g(x:EXPR(INT)):EXPR(INT) == c[1]*exp(x) +g x -- fails +g(x:EXPR(INT)):EXPR(INT) == (c[1]::EXPR INT)*exp(x) +g x -- fails + +)clear completely +-- from bmt +a | a**8+a**4+a**3+a**2+(1::PF 2) +tt:Matrix SAEa:=[_ +[0,0,0,1,1,1,0,1],_ +[1,0,0,0,0,0,0,0],_ +[0,1,0,0,0,0,0,0],_ +[0,0,1,0,0,0,0,0],_ +[0,0,0,1,0,0,0,0],_ +[0,0,0,0,1,0,0,0],_ +[0,0,0,0,0,1,0,0],_ +[0,0,0,0,0,0,1,0]]; +T:=transpose tt +T0:=T**91 +T1:=T**95 + +)clear completely +-- from bmt +u1:=operator 'u1 +u2:=operator 'u2 +eq1 := D(u1(t),t,2) + 5*u1(t) = 2*u2(t) +eq2 := D(u2(t),t,2) + 2*u2(t) = 2*u1(t) +eq1/2 +_rule(rhs %, lhs %) +%(lhs eq2)=%(rhs eq2) +rightZero % +-2*% +eval(lhs %,u1,exp(r*t),t) +%/exp(r*t) +solve(%,r) +[eval(exp(r*t),eq) for eq in %] +map(complexForm, %::List EXPR COMPLEX INT) +[real %(1), imag %(1), real %(3), imag %(3)] +gform:= u1(t)=reduce(+, [c[i]*%.i for i in 1..#%]) +_rule(lhs %, rhs %) +%(lhs eq1)=rhs eq1 +%/2 +--part c +inits := [u1(0)=1, eval(D(u1 t,t),t=0)=0, u2(0)=2, eval(D(u2 t,t),t=0)=0] +eqq := eq1-5*u1(t) +eval(eqq,t=0) +eval(%,inits) +inits:=cons(%,inits) +D(eqq,t) +eval(%,t=0) + + +)clear completely +-- from bmt +u:=operator 'u +exp:=D(u t,t) +k:=kernels(exp).1 +l:=argument % +difop:=operator k +l2:=[l.1+l.2,l.2,l.3] +bug:=evaluate(difop,l2) +kernels(bug).1 +argument % +eval(bug,t=0) + +)clear completely +R := Polynomial(PrimeField(3)) ; +A := UP('X, R) +X : A := monomial(1, 1) ; +f : A := a*X^3 + b*X^2 + c*X + d +discriminant(f) +s := differentiate f +resultant(f,s) +exquo(%,leadingCoefficient(f)) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/r21bugsbig.input.pamphlet b/src/input/r21bugsbig.input.pamphlet new file mode 100644 index 00000000..9affe00e --- /dev/null +++ b/src/input/r21bugsbig.input.pamphlet @@ -0,0 +1,63 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input r21bugsbig.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- takes a long time +)clear completely +)set expose add constructor CyclotomicPolynomialPackage +)set message type off +)set message time off +n : PositiveInteger := 5 +UZn : List(PositiveInteger) := [i for i in 1 .. n-1 | gcd(i,n) = 1] +-- K = Q(t), corps des fractions rationnelles a Phi(n) indeterminees sur Q +vars : List(Symbol) := [concat("t", i::String)::Symbol for i in 0 ..#UZn-1] ; +Zt := DistributedMultivariatePolynomial(vars, Integer) ; K :=Fraction(Zt) ; +t : List(K) := [v::K for v in vars] +-- ATTENTION : on specialise certains des indeterminees +t(#t) := 0 ; t +Zn := IntegerMod(n) ; +rapport(i : Integer, j : Integer) : Integer == -- returns <i/j> modulo n + k : Zn := i * recip(j::Zn)::Zn + return convert(k) +Phi : UP('xi, K) := map(coerce, cyclotomic(n)) +-- E est l'extension cyclotomique de K par les racines n-iemes de l'unite +E := SimpleAlgebraicExtension(K, UP('xi, K), Phi) ; +xi : E := generator()$E ; +bList : List(E) := [reduce(+, [t(i+1) * xi**(i*j) for i in 0 .. #UZn-1]) for j in UZn] +-- delta(j) = delta(j, 1) avec les nouvelles notations +delta : List(E) := + [reduce(*, [b**((j*rapport(1,k)) quo n) for b in bList for k in UZn]) for j in UZn] ; +-- verification en introduisant la liste B des Bj +B : List(E) := [reduce(*, [b**rapport(j,i) for b in bList for i in UZn]) for j in UZn] ; +[B(1)**j - b * d**n for b in B for d in delta for j in UZn] +L := SimpleAlgebraicExtension(E, UP('C1, E), C1**n - B(1)) ; C1 : L := generator()$L ; +-- retracter de L sur Zt : Zt < K < E < L +retraction(z : L) : Zt == + zE : E := retract(z) + zK : K := retract(zE) + zt : Zt := retract(zK) + return zt +)set message time on +C : List(L) := [C1**j / d for j in UZn for d in delta] ; +-- en principe [c**n for c in C] = B +r : List(L) := [reduce(+, [c * xi**(k*j) for j in UZn for c in C]) for k in 0 .. n-1] ; +LX := UP('X, L) ; X : LX := monomial(1, 1) ; +g : LX := reduce(*, [X - rho for rho in r]) ; +f : UP('X, Zt) := map(retraction, g) + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/radff.input.pamphlet b/src/input/radff.input.pamphlet new file mode 100644 index 00000000..8beeb1a7 --- /dev/null +++ b/src/input/radff.input.pamphlet @@ -0,0 +1,53 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input radff.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)cl all +P0 := UP(x, INT) +P1 := UP(y, FRAC P0) +-- curve given by x^20 + y^20 = 1 +R := RADFF(INT, P0, P1, 1 - x**20, 20) +definingPolynomial()$R +genus()$R +rank()$R +numberOfComponents()$R +integralBasisAtInfinity()$R +branchPoint?(0)$R +branchPoint?(1)$R +y := generator()$R +norm y +trace y +-- curve given by y^4 = 2 x^2 +R2 := RADFF(INT, P0, P1, 2 * x**2, 4) +definingPolynomial()$R2 +rank()$R2 +absolutelyIrreducible?()$R2 +numberOfComponents()$R2 +genus()$R2 +integralBasis()$R2 +y := generator()$R2 +integralCoordinates(y**3) +integralRepresents(%.num, %.den)$R2 +norm y +trace y +regularRepresentation y +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/radix.input.pamphlet b/src/input/radix.input.pamphlet new file mode 100644 index 00000000..0b08b6ee --- /dev/null +++ b/src/input/radix.input.pamphlet @@ -0,0 +1,39 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input RADIX.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from RadixExpansionXmpPage +)clear all + +111::RadixExpansion(5) +(5/24)::RadixExpansion(2) +(5/24)::RadixExpansion(3) +(5/24)::RadixExpansion(8) +(5/24)::RadixExpansion(10) +(5/24)::RadixExpansion(12) +(5/24)::RadixExpansion(16) +(5/24)::RadixExpansion(36) +(5/24)::RadixExpansion(38) +a := (76543/210)::RadixExpansion(8) +w := wholeRagits a +f0 := prefixRagits a +f1 := cycleRagits a +u:RadixExpansion(8):=wholeRadix(w)+fractRadix(f0,f1) +v: RadixExpansion(12) := fractRadix([1,2,3,11], [0]) +fractRagits(u) +a :: Fraction(Integer) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/realclos.input.pamphlet b/src/input/realclos.input.pamphlet new file mode 100644 index 00000000..e56da691 --- /dev/null +++ b/src/input/realclos.input.pamphlet @@ -0,0 +1,67 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input realclos.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +)clear all + +-- computing without a table manipulation when creating objects +Ran := RECLOS(FRAC INT) +-- Some simple signs for square roots, these correspond to an extension +-- of degree 16 of the rational numbers. + +fourSquares(a:Ran,b:Ran,c:Ran,d:Ran):Ran == + sqrt(a)+sqrt(b) - sqrt(c)-sqrt(d) + + + +squareDiff := fourSquares(73,548,60,586) +recip(squareDiff) +sign(squareDiff) +squareDiff := fourSquares(165,778,86,990) +recip(squareDiff) +sign(squareDiff) +squareDiff := fourSquares(217,708,226,692) +recip(squareDiff) +sign(squareDiff) +squareDiff := fourSquares(155,836,162,820) +recip(squareDiff) +sign(squareDiff) +squareDiff := fourSquares(591,772,552,818) +recip(squareDiff) +sign(squareDiff) +squareDiff := fourSquares(434,1053,412,1088) +recip(squareDiff) +sign(squareDiff) +squareDiff := fourSquares(514,1049,446,1152) +recip(squareDiff) +sign(squareDiff) + +squareDiff := fourSquares(190,1751,208,1698) +recip(squareDiff) +sign(squareDiff) +)cl prop s2 s5 s10 l + +-- a more complicated test that involve an extension of degree 256 +(s2, s5, s10) := (sqrt(2)$Ran, sqrt(5)$Ran, sqrt(10)$Ran); +sqrt(s10+3)*sqrt(s5+2) - sqrt(s10-3)*sqrt(s5-2) = sqrt(10*s2+10) +%::Boolean + +-- the sum of these 4 numbers is 0 +l := allRootsOf((x^2-2)^2-2)$Ran +l.1+l.2+l.3+l.4 + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/reclos.input.pamphlet b/src/input/reclos.input.pamphlet new file mode 100644 index 00000000..43634594 --- /dev/null +++ b/src/input/reclos.input.pamphlet @@ -0,0 +1,122 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input RECLOS.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +This input file was updated by Renaud Rioboo in January 2004 +<<*>>= + +-- Input generated from RealClosureXmpPage +)clear all +Ran := RECLOS(FRAC INT) +-- +-- Some simple signs for square roots, these correspond to an extension +-- of degree 16 of the rational numbers. +-- these examples were given to me by J. Abbot +-- +fourSquares(a:Ran,b:Ran,c:Ran,d:Ran):Ran == sqrt(a)+sqrt(b) - sqrt(c)-sqrt(d) +squareDiff1 := fourSquares(73,548,60,586) +recip(squareDiff1) +sign(squareDiff1) +squareDiff2 := fourSquares(165,778,86,990) +recip(squareDiff2) +sign(squareDiff2) +squareDiff3 := fourSquares(217,708,226,692) +recip(squareDiff3) +sign(squareDiff3) +squareDiff4 := fourSquares(155,836,162,820) +recip(squareDiff4) +sign(squareDiff4) +squareDiff5 := fourSquares(591,772,552,818) +recip(squareDiff5) +sign(squareDiff5) +squareDiff6 := fourSquares(434,1053,412,1088) +recip(squareDiff6) +sign(squareDiff6) +squareDiff7 := fourSquares(514,1049,446,1152) +recip(squareDiff7) +sign(squareDiff7) +squareDiff8 := fourSquares(190,1751,208,1698) +recip(squareDiff8) +sign(squareDiff8) +relativeApprox(squareDiff8,10**(-3))::Float +-- +-- test the Renaud Rioboo fix (Jan 2004) +-- +allRootsOf((x-2)*(x-3)*(x-4))$RECLOS(FRAC INT) +-- +-- check out if the sum of all roots is null +-- example from P.V. Koseleff +-- +l := allRootsOf((x**2-2)**2-2)$Ran +l.1+l.2+l.3+l.4 +removeDuplicates map(mainDefiningPolynomial,l) +map(mainCharacterization,l) +[reduce(+,l),reduce(*,l)-2] +-- +-- a more complicated test that involve an extension of degree 256 +-- example by prof Kahan at ISSAC'92 +-- +)cl prop s2 s5 10 +(s2, s5, s10) := (sqrt(2)$Ran, sqrt(5)$Ran, sqrt(10)$Ran) +eq1:=sqrt(s10+3)*sqrt(s5+2) - sqrt(s10-3)*sqrt(s5-2) = sqrt(10*s2+10) +eq1::Boolean +-- +-- analogous one by [rr] +-- +eq2:=sqrt(s5+2)*sqrt(s2+1) - sqrt(s5-2)*sqrt(s2-1) = sqrt(2*s10+2) +eq2::Boolean +-- +-- these came from J.M. Arnaudies +-- +)cl prop s4 s7 e1 e2 +s3 := sqrt(3)$Ran +s7:= sqrt(7)$Ran +e1 := sqrt(2*s7-3*s3,3) +e2 := sqrt(2*s7+3*s3,3) +-- this should be null +ee1:=e2-e1=s3 +ee1::Boolean +)cl prop pol r1 alpha beta +pol : UP(x,Ran) := x**4+(7/3)*x**2+30*x-(100/3) +r1 := sqrt(7633)$Ran +-- cubic roots +alpha := sqrt(5*r1-436,3)/3 +beta := -sqrt(5*r1+436,3)/3 +-- this should be null +pol.(alpha+beta-1/3) +)cl prop qol r2 alpha beta +r2 := sqrt(153)$Ran +-- roots of order 5 +alpha2 := sqrt(r2-11,5) +beta2 := -sqrt(r2+11,5) +qol : UP(x,Ran) := x**5+10*x**3+20*x+22 +qol(alpha2+beta2) +dst1:=sqrt(9+4*s2)=1+2*s2 +dst1::Boolean +s6:Ran:=sqrt 6 +dst2:=sqrt(5+2*s6)+sqrt(5-2*s6) = 2*s3 +dst2::Boolean +s29:Ran:=sqrt 29 +dst4:=sqrt(16-2*s29+2*sqrt(55-10*s29)) = sqrt(22+2*s5)-sqrt(11+2*s29)+s5 +dst4::Boolean +dst6:=sqrt((112+70*s2)+(46+34*s2)*s5) = (5+4*s2)+(3+s2)*s5 +dst6::Boolean +f3:Ran:=sqrt(3,5) +f25:Ran:=sqrt(1/25,5) +f32:Ran:=sqrt(32/5,5) +f27:Ran:=sqrt(27/5,5) +dst5:=sqrt((f32-f27,3)) = f25*(1+f3-f3**2) +dst5::Boolean +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/reductio.input.pamphlet b/src/input/reductio.input.pamphlet new file mode 100644 index 00000000..ea487ed5 --- /dev/null +++ b/src/input/reductio.input.pamphlet @@ -0,0 +1,42 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input reductio.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input for page Reductions +)clear all + +u := [30,2,5] +reduce(+,u) +reduce(*,u) +u := [30,2,5] +reduce(max,u) +reduce(min,u) +reduce(gcd,u) +u := []; v := [1] +reduce(max,u,0) +reduce(min,v,0) +u := [1, 7, 5, -12, 15, 3] +reduce(or,[u.i < 0 for i in 0..]) +reduce(or,[x < 0 for x in u]) +reduce(min,[i for i in 0.. while u.i > 0]) +reduce(and,[x > 0 for x in u]) +v := [1, 1, 0, 1, 0] +reduce(+,[v.(n - i) * 2**i for i in 0..(n := maxIndex v)]) +reduce(+,[x * y for x in u for y in v]) +reduce(+,[r for x in u for y in v | (r := y/x) > 0]) +reduce(max,[x for x in u for y in v | y = 1]) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/regset.input.pamphlet b/src/input/regset.input.pamphlet new file mode 100644 index 00000000..1e52bfb7 --- /dev/null +++ b/src/input/regset.input.pamphlet @@ -0,0 +1,56 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input REGSET.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from RegularTriangularSetXmpPage +)clear all + +R := Integer +ls : List Symbol := [x,y,z,t] +V := OVAR(ls) +E := IndexedExponents V +P := NSMP(R, V) +x: P := 'x +y: P := 'y +z: P := 'z +t: P := 't +T := REGSET(R,E,V,P) +p1 := x ** 31 - x ** 6 - x - y +p2 := x ** 8 - z +p3 := x ** 10 - t +lp := [p1, p2, p3] +zeroSetSplit(lp)$T +lts := zeroSetSplit(lp,false)$T +[coHeight(ts) for ts in lts] +f1 := y**2*z+2*x*y*t-2*x-z +f2 := -x**3*z+ 4*x*y**2*z+ 4*x**2*y*t+ 2*y**3*t+ 4*x**2- 10*y**2+ 4*x*z- 10*y*t+ 2 +f3 := 2*y*z*t+x*t**2-x-2*z +f4 := -x*z**3+ 4*y*z**2*t+ 4*x*z*t**2+ 2*y*t**3+ 4*x*z+ 4*z**2-10*y*t- 10*t**2+2 +lf := [f1, f2, f3, f4] +zeroSetSplit(lf)$T +lts2 := zeroSetSplit(lf,false)$T +[coHeight(ts) for ts in lts2] +degrees := [degree(ts) for ts in lts2] +reduce(+,degrees) +u : R := 2 +q1 := 2*(u-1)**2+ 2*(x-z*x+z**2)+ y**2*(x-1)**2- 2*u*x+ 2*y*t*(1-x)*(x-z)+ 2*u*z*t*(t-y)+ u**2*t**2*(1-2*z)+ 2*u*t**2*(z-x)+ 2*u*t*y*(z-1)+ 2*u*z*x*(y+1)+ (u**2-2*u)*z**2*t**2+ 2*u**2*z**2+ 4*u*(1-u)*z+ t**2*(z-x)**2 +q2 := t*(2*z+1)*(x-z)+ y*(z+2)*(1-x)+ u*(u-2)*t+ u*(1-2*u)*z*t+ u*y*(x+u-z*x-1)+ u*(u+1)*z**2*t +q3 := -u**2*(z-1)**2+ 2*z*(z-x)-2*(x-1) +q4 := u**2+4*(z-x**2)+3*y**2*(x-1)**2- 3*t**2*(z-x)**2 +3*u**2*t**2*(z-1)**2+u**2*z*(z-2)+6*u*t*y*(z+x+z*x-1) +lq := [q1, q2, q3, q4] +zeroSetSplit(lq,true,true)$T +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/repa6.input.pamphlet b/src/input/repa6.input.pamphlet new file mode 100644 index 00000000..769c6d65 --- /dev/null +++ b/src/input/repa6.input.pamphlet @@ -0,0 +1,163 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input repa6.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +)cls + +-- This file demonstrates Representation Theory in Scratchpad +-- using the packages REP1, REP2, IRSN and SGCF, which are the +-- abbreviations for RepresentationPackage1, RepresentationPackage2 +-- IrrRepSymNatPackage and SymmetricGroupCombinatoricFunctions. + +-- authors: Holger Gollan, Johannes Grabmeier +-- release 1.0 09/30/87 +-- release 2.0 11/10/88: J. Grabmeier: add functions from IRSN +-- release 2.1 08/04/89: J. Grabmeier: adjusting to new PERM +-- and modified REP1 +-- release 2.2 06/05/89: J. Grabmeier: adjusting to new algebra +-- release 2.3 08/20/89: J. Grabmeier: minor adjustments + +-- In the sequel we show how to get all 2-modular irreducible +-- representations of the alternating group A6. + +-- We generate A6 by the permutations threecycle x=(1,2,3) +-- and the 5-cycle y=(2,3,4,5,6) + +genA6 : List PERM INT := [cycle [1,2,3], cycle [2,3,4,5,6]] + +-- pRA6 is the permutation representation over the Integers... + +pRA6 := permutationRepresentation (genA6, 6) + +-- ... and pRA6m2 is the permutation representation over PrimeField 2: + +pRA6m2 : List Matrix PrimeField 2 := pRA6 + +-- Now try to split pRA6m2: + +sp0 := meatAxe pRA6m2 + +-- We have found the trivial module as a factormodule +-- and a 5-dimensional submodule. + +dA6d1 := sp0.2 + +-- Try to split again... + +sp1 := meatAxe sp0.1 + +-- ... and find a 4-dimensional submodule, say dA6d4a, and the +-- trivial one again. + +dA6d4a := sp1.2 + +-- Now we want to test, whether dA6d4a is absolutely irreducible... + +isAbsolutelyIrreducible? dA6d4a + +-- ...and see: dA6d4a is absolutely irreducible. +-- So we have found a second irreducible representation. + +-- Now construct a representation from reducing an irreducible one +-- of the symmetric group S_6 over the integers taken mod 2 +-- What is the degree of the representation belonging to partition +-- [2,2,1,1]? + + +-- lambda : PRTITION := partition [2,2,1,1] +lambda := [2,2,1,1] +dimIrrRepSym lambda + +-- now create the restriction to A6: + +d2211 := irrRepSymNat(lambda, genA6) + +-- ... and d2211m2 is the representation over PrimeField 2: + +d2211m2 : List Matrix PrimeField 2 := d2211 + +-- and split it: + +sp2 := meatAxe d2211m2 + +-- A 5 and a 4-dimensional one. + +-- we take the 4-dimensional one, say dA6d4b: + +dA6d4b := sp2.1 + +-- This is absolutely irreducible, too ... + +isAbsolutelyIrreducible? dA6d4b + +-- ... and dA6d4a and dA6d4b are not equivalent: + +areEquivalent? ( dA6d4a , dA6d4b ) + +-- So the third irreducible representation is found. + +-- Now construct a new representation with the help of the tensorproduct + +dA6d16 := tensorProduct ( dA6d4a , dA6d4b ) + +-- and try to split it... + +sp3 := meatAxe dA6d16 + +-- The representation is irreducible, but may be not +-- absolutely irreducible. + +isAbsolutelyIrreducible? dA6d16 + +-- So let's try the same over the field with 4 elements: + +gf4 := FiniteField(2,2) + +dA6d16gf4 : List Matrix gf4 := dA6d16 +sp4 := meatAxe dA6d16gf4 + +-- Now we find two 8-dimensional ones, dA6d8a and dA6d8b. + +dA6d8a : List Matrix gf4 := sp4.1 +dA6d8b : List Matrix gf4 := sp4.2 + +-- Both are absolutely irreducible... + +isAbsolutelyIrreducible? dA6d8a +isAbsolutelyIrreducible? dA6d8b + +-- and they are not equivalent... + +areEquivalent? ( dA6d8a, dA6d8b ) + +-- So we have found five absolutely irreducible representations of A6 +-- in characteristic 2. + +-- The theory tells us that there are no more irreducible ones. +-- Here again are all absolutely irreducible 2-modular +-- representations of A6 + +dA6d1 +dA6d4a +dA6d4b +dA6d8a +dA6d8b + +-- And here again is the irreducible, but not absolutely irreducible +-- representations of A6 over PrimeField 2 + +dA6d16 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/ribbon.input.pamphlet b/src/input/ribbon.input.pamphlet new file mode 100644 index 00000000..d5fc4853 --- /dev/null +++ b/src/input/ribbon.input.pamphlet @@ -0,0 +1,39 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ribbon.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +--the first attempt +drawRibbons(flist,xrange) == + sp := createThreeSpace() + y0 := 0 + for f in flist repeat + makeObject(f,xrange,y=y0..y0+1, + space==sp, var2Steps ==1) + y0 := y0+1 + vp:=makeViewport3D(sp,"Ribbons") + drawStyle(vp,"shade") + outlineRender(vp,"on") + showRegion(vp,"on") + n := # flist + zoom(vp,n,1,n) + rotate(vp,0,75) + vp +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/ribbons.input.pamphlet b/src/input/ribbons.input.pamphlet new file mode 100644 index 00000000..2fe8dd03 --- /dev/null +++ b/src/input/ribbons.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ribbons.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +--the second attempt +drawRibbons(flist, xrange, yrange) == + sp := createThreeSpace() + num := # flist + yVar := variable yrange + y0:Float := lo segment yrange + width:Float := (hi segment yrange - y0)/num + for f in flist for color in 1..num repeat + makeObject(f, xrange, yVar = y0..y0+width, + var2Steps == 1, colorFunction == (x,y) +-> color, + space ==sp) + y0:= y0 + width + vp := makeViewport3D(sp, "Ribbons") + drawStyle(vp, "shade") + outlineRender(vp, "on") + showRegion(vp, "on") + vp + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/ribbonsNew.input.pamphlet b/src/input/ribbonsNew.input.pamphlet new file mode 100644 index 00000000..444c7632 --- /dev/null +++ b/src/input/ribbonsNew.input.pamphlet @@ -0,0 +1,40 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ribbonsNew.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +drawRibbons(flist, xrange, yrange) == + sp := createThreeSpace() + num := # flist + yVar := variable yrange + y0:Float := lo segment yrange + width:Float := (hi segment yrange - y0)/num + for f in flist for color in 1..num repeat + makeObject(f, xrange, yVar = y0..y0+width, + var2Steps == 1, colorFunction == (x,y) +-> color, + space ==sp) + y0:= y0 + width + vp := makeViewport3D(sp, "Ribbons") + drawStyle(vp, "shade") + outlineRender(vp, "on") + showRegion(vp, "on") + vp + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/rk4draw.input.pamphlet b/src/input/rk4draw.input.pamphlet new file mode 100644 index 00000000..209ebb90 --- /dev/null +++ b/src/input/rk4draw.input.pamphlet @@ -0,0 +1,85 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input rk4draw.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- Two scripts which can be combined to show how accurate the Runge-Kutta +-- method is for simple problems. + +-- The first script finds the exact solution for y'= cos(y)/(2+x) given +-- the initial value condition. This is then plotted. + +)clear all +y := operator y +deq := D(y x,x) = cos(y x)/(2+x) +solve(deq,y,x=3,[0]) +eval (%,y(x)=z) +solve(%,z) +%.1 +rhs % +draw(%,x=3..4) + +-- The second script uses rk4 to solve the same equation form x=3..4 +-- Each point is merged into a list which is then plotted. +-- The two graphs can then be superimposed using the pick and drop facilities. + +)clear all +y:Vector Float :=[0.0] +x1:=3.0 +p0 := point[x1::SF,(y.1)::SF]$(Point SF) +n:=1 +h:=0.1 +der(d:Vector Float,y:Vector Float,x:Float):Void == setelt(d,1,cos(y.1)/(2+x)) +rk4(y,n,x1,h,der) +y +x1:=x1+h +p1 := point[x1::SF,(y.1)::SF]$(Point SF) +rk4(y,n,x1,h,der);x1:=x1+h;y +p2 := point[x1::SF,(y.1)::SF]$(Point SF) +rk4(y,n,x1,h,der);x1:=x1+h;y +p3 := point[x1::SF,(y.1)::SF]$(Point SF) +rk4(y,n,x1,h,der);x1:=x1+h;y +p4 := point[x1::SF,(y.1)::SF]$(Point SF) +rk4(y,n,x1,h,der);x1:=x1+h;y +p5 := point[x1::SF,(y.1)::SF]$(Point SF) +rk4(y,n,x1,h,der);x1:=x1+h;y +p6 := point[x1::SF,(y.1)::SF]$(Point SF) +rk4(y,n,x1,h,der);x1:=x1+h;y +p7 := point[x1::SF,(y.1)::SF]$(Point SF) +rk4(y,n,x1,h,der);x1:=x1+h;y +p8 := point[x1::SF,(y.1)::SF]$(Point SF) +rk4(y,n,x1,h,der);x1:=x1+h;y +p9 := point[x1::SF,(y.1)::SF]$(Point SF) +rk4(y,n,x1,h,der);x1:=x1+h;y +p10 := point[x1::SF,(y.1)::SF]$(Point SF) +llp := [[p0,p1],[p1,p2],[p2,p3],[p3,p4],[p4,p5],_ + [p5,p6],[p6,p7],[p7,p8],[p8,p9],[p9,p10]] +pc2 := dim green() +lpc := [pc2, pc2, pc2, pc2, pc2, pc2, pc2, pc2, pc2, pc2] +lc := [pastel blue(), light yellow(), dim green(),_ + bright red(), light green(),dim yellow(), _ + bright blue(),dark red(), pastel red(), light blue()] +size1 := 4::PositiveInteger +lsize := [size1, size1, size1, size1, size1, size1, size1, size1, size1, size1] +g:= makeGraphImage(llp,lpc,lc,lsize)$GRIMAGE +makeViewport2D(g,[title("RK4")])$VIEW2D + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/robidoux.input.pamphlet b/src/input/robidoux.input.pamphlet new file mode 100644 index 00000000..70c286f3 --- /dev/null +++ b/src/input/robidoux.input.pamphlet @@ -0,0 +1,46 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input robidoux.input} +\author{Nicolas Robidoux} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +-- from the paper: +-- Does Axiom Solve Systems of O.D.E.'s Like Mathematica? +-- Nicolas Robidoux University of New Mexico 24 June 1993 +X1:=operator 'X1 +deq1:=D(X1 t,t)=(1+ cos t /(2+sin t)) * X1 t +solve(deq1,X1,t) +C1*%.basis.1 +function(%,'x1,'t) +x1 +X2:=operator 'X2 +deq2:=D(X2 t,t)=x1 t - X2 t +solve(deq2,X2,t) +%.particular +simplify % +%+C2*%%(-3).basis.1 +function(%,'x2,'t) +x2 +-- we can stop here because the answer is improved over the +-- one given in the paper. +x1 t + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/roman.input.pamphlet b/src/input/roman.input.pamphlet new file mode 100644 index 00000000..9e62c652 --- /dev/null +++ b/src/input/roman.input.pamphlet @@ -0,0 +1,32 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ROMAN.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from RomanNumeralXmpPage +)clear all + +f := operator 'f +D(f x,x,7) +a := roman(1978 - 1965) +x : UTS(ROMAN,'x,0) := x +recip(1 - x - x**2) +m : MATRIX FRAC ROMAN +m := matrix [[1/(i + j) for i in 1..3] for j in 1..3] +inverse m +y := factorial 10 +roman y +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/romnum.as.pamphlet b/src/input/romnum.as.pamphlet new file mode 100644 index 00000000..b70f027d --- /dev/null +++ b/src/input/romnum.as.pamphlet @@ -0,0 +1,68 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input romnum.as} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +-- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. +-- All rights reserved. +-- +-- Redistribution and use in source and binary forms, with or without +-- modification, are permitted provided that the following conditions are +-- met: +-- +-- - Redistributions of source code must retain the above copyright +-- notice, this list of conditions and the following disclaimer. +-- +-- - Redistributions in binary form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in +-- the documentation and/or other materials provided with the +-- distribution. +-- +-- - Neither the name of The Numerical ALgorithms Group Ltd. nor the +-- names of its contributors may be used to endorse or promote products +-- derived from this software without specific prior written permission. +-- +-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +-- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +-- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +-- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +-- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +-- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +-- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +-- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +-- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +-- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +@ +<<*>>= +<<license>> +#pile +#include "axiom.as" + +RomanNumber : IntegerNumberSystem == Integer add + import from NumberFormats + coerce(r:%):OutputForm == + import from Integer + n := convert(r)@Integer + -- okay, we stretch it + zero? n => n::OutputForm + negative? n => - ((-r)::OutputForm) + import from PositiveInteger + message FormatRoman(n::PositiveInteger) + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/roots.input.pamphlet b/src/input/roots.input.pamphlet new file mode 100644 index 00000000..16889aa0 --- /dev/null +++ b/src/input/roots.input.pamphlet @@ -0,0 +1,36 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input roots.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)cl completely +-- This will compute all the roots of x**4 + 1 = 0 +lr:=rootsOf(x**4+1,x) +-- the new expressions satisfy +definingPolynomial %x0 +definingPolynomial %x1 +--the product of the first three is a root +lr.1 * lr.2 * lr.3 +%**4 +-- so is the sum +lr.1 + lr.2 + lr.3 +%**4 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/rules.input.pamphlet b/src/input/rules.input.pamphlet new file mode 100644 index 00000000..ab7e6981 --- /dev/null +++ b/src/input/rules.input.pamphlet @@ -0,0 +1,66 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input rules.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)clear all +-- first a single rule +logrule := rule log(x) + log(y) == log(x * y) +f := log sin x + log x +logrule f + +-- now a pile of several rules +logrules := rule + log(x) + log(y) == log(x * y) + y * log x == log(x ** y) +f := a * log(sin x) - 2 * log x +logrules f + +-- example of a predicate attached to a pattern variable +logrules2 := rule + log(x) + log(y) == log(x * y) + (y | integer? y) * log x == log(x ** y) +logrules2 f + +-- rules for linearizing sines and cosines +trigLinearize := rule + sin(x) * sin(y) == cos(x-y)/2 - cos(x+y)/2 + cos(x) * cos(y) == cos(x+y)/2 + cos(x-y)/2 + sin(x) * cos(y) == sin(x+y)/2 + sin(x-y)/2 + sin(x) ** (n | integer? n and n > 1) == (1-cos(2*x))/2 * sin(x)**(n-2) + cos(x) ** (n | integer? n and n > 1) == (1+cos(2*x))/2 * cos(x)**(n-2) +g := sin(a)*cos(b) + sin(a)*cos(a) + cos(2*a)*cos(3*a) +trigLinearize g + +-- here we show the use of ? to indicate an 'optional' pattern variables +eirule := rule integral((?y + exp x)/x,x) == integral(y/x,x) + Ei x +eirule integral(exp u/u, u) +eirule integral(sin u + exp u/u, u) + +-- here we show the use of : to indicate a 'multiple' pattern variables +u := operator u +v := operator v +myrule := rule u(x + y) == u x + v y +h := u(a + b + c + d) +myrule h +myrule2 := rule u(:x + y) == u x + v y +myrule2 h +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/ruleset.input.pamphlet b/src/input/ruleset.input.pamphlet new file mode 100644 index 00000000..626cb51b --- /dev/null +++ b/src/input/ruleset.input.pamphlet @@ -0,0 +1,51 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ruleset.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)cl all +-- This is the example from "Programming in Mathematica", p.139 + +TrigLinearRules := rule + sin(x) * sin(y) == cos(x-y)/2 - cos(x+y)/2 + cos(x) * cos(y) == cos(x+y)/2 + cos(x-y)/2 + sin(x) * cos(y) == sin(x+y)/2 + sin(x-y)/2 + sin(x)**(n | integer? n and n > 0) == (1-cos(2*x))/2 * sin(x)**(n-2) + cos(x)**(n | integer? n and n > 0) == (1+cos(2*x))/2 * cos(x)**(n-2) + +sin(a)*cos(b) + sin(a)*cos(a) + cos(2*a)*cos(3*a) +TrigLinearRules % + +sin(a) * sin(2*a) * sin(3*a) * sin(4*a) +TrigLinearRules % + +-- Defining an operator to be linear w.r.t. its 2nd argument + +f := operator 'f + +FLinearRules := rule + f(a + b, x) == f(a, x) + f(b, x) + f(c * a, x | freeOf?(c, x)) == c * f(a, x) + +f(2*x + a * log(x) + x * log(x), x) +FLinearRules % + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s01eaf.input.pamphlet b/src/input/s01eaf.input.pamphlet new file mode 100644 index 00000000..e7a2ed7a --- /dev/null +++ b/src/input/s01eaf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s01eaf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s01eaf(complex(-0.5,2.0),-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s13aaf.input.pamphlet b/src/input/s13aaf.input.pamphlet new file mode 100644 index 00000000..0301868e --- /dev/null +++ b/src/input/s13aaf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s13aaf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s13aaf(2.0,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s13acf.input.pamphlet b/src/input/s13acf.input.pamphlet new file mode 100644 index 00000000..d6e16be3 --- /dev/null +++ b/src/input/s13acf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s13acf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s13acf(0.2,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s13adf.input.pamphlet b/src/input/s13adf.input.pamphlet new file mode 100644 index 00000000..22479b54 --- /dev/null +++ b/src/input/s13adf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s13adf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s13adf(0.2,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s14aaf.input.pamphlet b/src/input/s14aaf.input.pamphlet new file mode 100644 index 00000000..8feeafa7 --- /dev/null +++ b/src/input/s14aaf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s14aaf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s14aaf(1.25,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s14abf.input.pamphlet b/src/input/s14abf.input.pamphlet new file mode 100644 index 00000000..e2090cc1 --- /dev/null +++ b/src/input/s14abf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s14abf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s14abf(1.25,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s14baf.input.pamphlet b/src/input/s14baf.input.pamphlet new file mode 100644 index 00000000..49128dee --- /dev/null +++ b/src/input/s14baf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s14baf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s14baf(2.0,3.0,1.1102230246251600E-16,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s15adf.input.pamphlet b/src/input/s15adf.input.pamphlet new file mode 100644 index 00000000..594ba5c0 --- /dev/null +++ b/src/input/s15adf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s15adf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s15adf(-10.0,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s15aef.input.pamphlet b/src/input/s15aef.input.pamphlet new file mode 100644 index 00000000..be8c8bd4 --- /dev/null +++ b/src/input/s15aef.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s15aef.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s15aef(-6.0,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s17acf.input.pamphlet b/src/input/s17acf.input.pamphlet new file mode 100644 index 00000000..f7f6ac24 --- /dev/null +++ b/src/input/s17acf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s17acf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s17acf(0.5,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s17adf.input.pamphlet b/src/input/s17adf.input.pamphlet new file mode 100644 index 00000000..c8f15270 --- /dev/null +++ b/src/input/s17adf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s17adf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s17adf(0.5,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s17aef.input.pamphlet b/src/input/s17aef.input.pamphlet new file mode 100644 index 00000000..2a1a878e --- /dev/null +++ b/src/input/s17aef.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s17aef.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s17aef(0.5,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s17aff.input.pamphlet b/src/input/s17aff.input.pamphlet new file mode 100644 index 00000000..c0fe8cee --- /dev/null +++ b/src/input/s17aff.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s17aff.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s17aff(0.5,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s17agf.input.pamphlet b/src/input/s17agf.input.pamphlet new file mode 100644 index 00000000..8e806e48 --- /dev/null +++ b/src/input/s17agf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s17agf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s17agf(-10.0,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s17ahf.input.pamphlet b/src/input/s17ahf.input.pamphlet new file mode 100644 index 00000000..294a5d11 --- /dev/null +++ b/src/input/s17ahf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s17ahf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s17ahf(-10.0,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s17ajf.input.pamphlet b/src/input/s17ajf.input.pamphlet new file mode 100644 index 00000000..abeb9e99 --- /dev/null +++ b/src/input/s17ajf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s17ajf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s17ajf(-10.0,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s17akf.input.pamphlet b/src/input/s17akf.input.pamphlet new file mode 100644 index 00000000..dd6db245 --- /dev/null +++ b/src/input/s17akf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s17akf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s17akf(-10.0,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s17dcf.input.pamphlet b/src/input/s17dcf.input.pamphlet new file mode 100644 index 00000000..a8768b8a --- /dev/null +++ b/src/input/s17dcf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s17dcf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s17dcf(0.0,complex(0.3,0.4),2,"u", -1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s17def.input.pamphlet b/src/input/s17def.input.pamphlet new file mode 100644 index 00000000..3ee0374c --- /dev/null +++ b/src/input/s17def.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s17def.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s17def(0.0,complex(0.3,0.4),2,"u", -1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s17dgf.input.pamphlet b/src/input/s17dgf.input.pamphlet new file mode 100644 index 00000000..d66dd143 --- /dev/null +++ b/src/input/s17dgf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s17dgf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s17dgf("f",complex(0.3,0.4),"u", -1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s17dhf.input.pamphlet b/src/input/s17dhf.input.pamphlet new file mode 100644 index 00000000..ce488594 --- /dev/null +++ b/src/input/s17dhf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s17dhf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s17dhf("f",complex(0.3,0.4),"u", -1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s17dlf.input.pamphlet b/src/input/s17dlf.input.pamphlet new file mode 100644 index 00000000..91919c93 --- /dev/null +++ b/src/input/s17dlf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s17dlf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s17dlf(1, 0.0,complex(0.3,0.4),2,"u", -1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s18acf.input.pamphlet b/src/input/s18acf.input.pamphlet new file mode 100644 index 00000000..ccd38919 --- /dev/null +++ b/src/input/s18acf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s18acf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s18acf(0.4,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s18adf.input.pamphlet b/src/input/s18adf.input.pamphlet new file mode 100644 index 00000000..07cfcac4 --- /dev/null +++ b/src/input/s18adf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s18adf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s18adf(0.4,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s18aef.input.pamphlet b/src/input/s18aef.input.pamphlet new file mode 100644 index 00000000..8819c03e --- /dev/null +++ b/src/input/s18aef.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s18aef.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s18aef(0.5,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s18aff.input.pamphlet b/src/input/s18aff.input.pamphlet new file mode 100644 index 00000000..34ddbd2f --- /dev/null +++ b/src/input/s18aff.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s18aff.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s18aff(0.5,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s18dcf.input.pamphlet b/src/input/s18dcf.input.pamphlet new file mode 100644 index 00000000..8f8b2f5b --- /dev/null +++ b/src/input/s18dcf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s18dcf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s18dcf(0.0,complex(0.3,0.4),2,"u", -1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s18def.input.pamphlet b/src/input/s18def.input.pamphlet new file mode 100644 index 00000000..5f575d18 --- /dev/null +++ b/src/input/s18def.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s18def.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s18def(0.0,complex(0.3,-0.4),2,"u", -1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s19aaf.input.pamphlet b/src/input/s19aaf.input.pamphlet new file mode 100644 index 00000000..708326c4 --- /dev/null +++ b/src/input/s19aaf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s19aaf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s19aaf(1.0,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s19abf.input.pamphlet b/src/input/s19abf.input.pamphlet new file mode 100644 index 00000000..dc6e2bf1 --- /dev/null +++ b/src/input/s19abf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s19abf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s19abf(0.1,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s19acf.input.pamphlet b/src/input/s19acf.input.pamphlet new file mode 100644 index 00000000..1b8ce288 --- /dev/null +++ b/src/input/s19acf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s19acf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s19acf(0.1,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s19adf.input.pamphlet b/src/input/s19adf.input.pamphlet new file mode 100644 index 00000000..23128508 --- /dev/null +++ b/src/input/s19adf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s19adf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s19adf(0.0,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s20acf.input.pamphlet b/src/input/s20acf.input.pamphlet new file mode 100644 index 00000000..f6ba0530 --- /dev/null +++ b/src/input/s20acf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s20acf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s20acf(0.5,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s20adf.input.pamphlet b/src/input/s20adf.input.pamphlet new file mode 100644 index 00000000..47433371 --- /dev/null +++ b/src/input/s20adf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s20adf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s20adf(0.5,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s21baf.input.pamphlet b/src/input/s21baf.input.pamphlet new file mode 100644 index 00000000..f2c39d0c --- /dev/null +++ b/src/input/s21baf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s21baf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s21baf(0.5,1.0,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s21bbf.input.pamphlet b/src/input/s21bbf.input.pamphlet new file mode 100644 index 00000000..5654738b --- /dev/null +++ b/src/input/s21bbf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s21bbf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s21bbf(0.5,1.0,1.5,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s21bcf.input.pamphlet b/src/input/s21bcf.input.pamphlet new file mode 100644 index 00000000..a63aee56 --- /dev/null +++ b/src/input/s21bcf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s21bcf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s21bcf(0.5,0.5,1.0,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/s21bdf.input.pamphlet b/src/input/s21bdf.input.pamphlet new file mode 100644 index 00000000..64b3ddf4 --- /dev/null +++ b/src/input/s21bdf.input.pamphlet @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input s21bdf.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +showArrayValues true +showScalarValues true +result:=s21bdf(0.5,0.5,0.5,2.0,-1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/saddle.input.pamphlet b/src/input/saddle.input.pamphlet new file mode 100644 index 00000000..a280c629 --- /dev/null +++ b/src/input/saddle.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input saddle.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- @(#)saddle.input 1.1 89/09/07 20:55:18 +draw(x**2 - y**2,x = -2..2, y = -2..2) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/scherk.input.pamphlet b/src/input/scherk.input.pamphlet new file mode 100644 index 00000000..11ae1bbb --- /dev/null +++ b/src/input/scherk.input.pamphlet @@ -0,0 +1,74 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input scherk.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- Scherk's minimal surface. +-- Defined by: +-- exp(z) * cos(x) = cos(y) +-- See: A comprehensive Introduction to Differential Geometry, Vol. 3, +-- by Michael Spivak, Publish Or Persih, Berkeley, 1979, pp 249-252. + +-- Off set for a single piece of Scherk's minimal surface +(xOffset, yOffset):DoubleFloat + +-- DrawScherk's minimal surface on an m by n patch. +drawScherk(m,n) == + free xOffset, yOffset + space := create3Space()$ThreeSpace(DoubleFloat) + for i in 0..m-1 repeat + xOffset := i*%pi + for j in 0 .. n-1 repeat + rem(i+j, 2) = 0 => 'iter + yOffset := j*%pi + drawOneScherk(space) + makeViewport3D(space, "Scherk's Minimal Surface") + +-- The four patches which make up a single piece of Scherk's minimal surface. +scherk1(u,v) == + x := cos(u)/exp(v) + point [xOffset + acos(x), yOffset + u, v, abs(v)] + +scherk2(u,v) == + x := cos(u)/exp(v) + point [xOffset - acos(x), yOffset + u, v, abs(v)] + +scherk3(u,v) == + x := exp(v) * cos(u) + point [xOffset + u, yOffset + acos(x), v, abs(v)] + +scherk4(u,v) == + x := exp(v) * cos(u) + point [xOffset + u, yOffset - acos(x), v, abs(v)] + + +-- We draw the surface by breaking it into 4 patches, and drawing them +-- into a single space. +drawOneScherk(s) == + makeObject(scherk1, -%pi/2..%pi/2, 0..%pi/2, space == s, _ + var1Steps == 28, var2Steps == 28) + makeObject(scherk2, -%pi/2..%pi/2, 0..%pi/2, space == s, _ + var1Steps == 28, var2Steps == 28) + makeObject(scherk3, -%pi/2..%pi/2, -%pi/2..0, space == s, _ + var1Steps == 28, var2Steps == 28) + makeObject(scherk4, -%pi/2..%pi/2, -%pi/2..0, space == s, _ + var1Steps == 28, var2Steps == 28) + void() +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/scope.input.pamphlet b/src/input/scope.input.pamphlet new file mode 100644 index 00000000..40043aeb --- /dev/null +++ b/src/input/scope.input.pamphlet @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input scope.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> + + +showbug1():Void == + for i in 1..1 repeat + z:="I'm OK" + print(z) + showbug2() + print(z) + +showbug2():Void == + for i in 1..1 repeat + z:="I'm nasty" + +-- used to print: +-- I'm OK +-- I'm nasty + +showbug1() +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/seg.input.pamphlet b/src/input/seg.input.pamphlet new file mode 100644 index 00000000..98a1daa4 --- /dev/null +++ b/src/input/seg.input.pamphlet @@ -0,0 +1,32 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input SEG.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from SegmentXmpPage +)clear all + +s := 3..10 +lo s +hi s +t := 10..3 by -2 +incr s +incr t +l := [1..3, 5, 9, 15..11 by -1] +expand s +expand t +expand l +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/segbind.input.pamphlet b/src/input/segbind.input.pamphlet new file mode 100644 index 00000000..907f5ef0 --- /dev/null +++ b/src/input/segbind.input.pamphlet @@ -0,0 +1,28 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input SEGBING.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from SegmentBindingXmpPage +)clear all + +x = a..b +sum(i**2, i = 0..n) +draw(x**2, x = -2..2) +sb := y = 1/2..3/2 +variable(sb) +segment(sb) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/series.input.pamphlet b/src/input/series.input.pamphlet new file mode 100644 index 00000000..a9df6050 --- /dev/null +++ b/src/input/series.input.pamphlet @@ -0,0 +1,56 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input series.input} +\author{Clifton J. Williamson} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +--% Expression To Power Series +-- We compute series expansions of various functions using EXPR2UPS. +-- Author: Clifton J. Williamson +-- Date Created: 1 June 1990 +-- Date Last Updated: 1 June 1990 +-- Keywords: Taylor, Laurent, Puiseux, series +-- References: + +)clear all + +-- Test functions in EXPR2UPS: + +xT := taylor(x) +sin(tan(xT)) +taylor(asec(2+x)) +sec % +taylor(sin(x),x = %pi/4) + +xL := laurent(x) +1/xL - cot(xL) +laurent(csc(x)) +laurent(1/log(x),x = 1) + +xP := puiseux(x) +sqrt(xP) - sqrt(sin(xP)) +puiseux(sqrt(1 - cos(x))/x) +puiseux(sqrt(1 - tan(x)),x = %pi/2) + +xS := series(x) +sin(xS)**(1/3) - sin(xS**(1/3)) +series(log(tan(x))) +series(log(cot(x)),x = %pi/2) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/series2.input.pamphlet b/src/input/series2.input.pamphlet new file mode 100644 index 00000000..4239789b --- /dev/null +++ b/src/input/series2.input.pamphlet @@ -0,0 +1,95 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input series2.input} +\author{Clifton J. Williamson} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +--% Expression To Power Series +-- We compute series expansions of various functions using EXPR2UPS and STTF. +-- Author: Clifton J. Williamson +-- Date Created: 12 August 1992 +-- Date Last Updated: 12 August 1992 +-- Keywords: Taylor series +-- References: + +-- Power series expansions around branch points +-- (Well not really, since we have x**2, not x. Otherwise, our series +-- expansions would have fractional powers.) + +f1 := taylor(1 - x**2,x = 0) + +asin f1 +sin % + +acos f1 +cos % + +f2 := taylor(1 + x**2,x = 0) + +acsc f2 +csc % + +asec f2 +sec % + +f3 := taylor(1 - (x - a)**2,x = a) + +asin f3 +sin % + +acos f3 +cos % + +f4 := taylor(1 + (x - a)**2,x = a) + +acsc f4 +csc % + +asec f4 +sec % + +f5 := taylor(%i + x**2,x = 0) + +asinh f5 +map(normalize,sinh %) + +acosh f1 +map(normalize,cosh %) + +asech f2 +sech % + +acsch f1 +map(normalize,csch %) + +f6 := taylor(%i + (x - a)**2,x = a) + +asinh f6 +map(normalize,sinh %) + +acosh f3 +map(normalize,cosh %) + +asech f4 +sech % + +acsch f3 +map(normalize,csch %) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/sersolve.input.pamphlet b/src/input/sersolve.input.pamphlet new file mode 100644 index 00000000..cb0ecd92 --- /dev/null +++ b/src/input/sersolve.input.pamphlet @@ -0,0 +1,38 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input sersolve.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> + +y := operator 'y +eq := D(y x,x) - x*cos(y x) - exp(x) +seriesSolve(eq,y,x=0,y(0) = 0) +)set streams calculate 10 +R := EXPR INT +uts := UTS(R,'x,0) +foo: uts -> uts +foo y == + xx := monomial(1,1)$uts + xx * cos(y) + exp(xx) +y := ode1(foo,0)$UTSODE(R,uts) +x : uts := x +x * cos(y) + exp(x) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/set.input.pamphlet b/src/input/set.input.pamphlet new file mode 100644 index 00000000..85e582ec --- /dev/null +++ b/src/input/set.input.pamphlet @@ -0,0 +1,42 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input SET.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from SetXmpPage +)clear all + +s := set [x**2-1, y**2-1, z**2-1] +t := set [x**i - i+1 for i in 2..10 | prime? i] +i := intersect(s,t) +u := union(s,t) +difference(s,t) +symmetricDifference(s,t) +member?(y, s) +member?((y+1)*(y-1), s) +subset?(i, s) +subset?(u, s) +gs := set [g for i in 1..11 | primitive?(g := i::PF 11)] +complement gs +a := set [i**2 for i in 1..5] +insert!(32, a) +remove!(25, a) +a +b := b0 := set [i**2 for i in 1..5] +b := union(b, {32}) +b := difference(b, {25}) +b0 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/sinCosEx.input.pamphlet b/src/input/sinCosEx.input.pamphlet new file mode 100644 index 00000000..a3355075 --- /dev/null +++ b/src/input/sinCosEx.input.pamphlet @@ -0,0 +1,33 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input sinCosEx.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +sinCosExpand := rule + sin(-x) == - sin(x) + cos(-x) == cos(x) + sin(x + y) == sin(x) * cos(y) + sin(y) * cos(x) + cos(x + y) == cos(x) * cos(y) - sin(x) * sin(y) + sin((n | integer? n and n > 1) * x) ==_ + sin(x) * cos((n-1)*x) + sin((n-1)*x) * cos(x) + cos((n | integer? n and n > 1) * x) ==_ + cos(x) * cos((n-1)*x) - sin(x) * sin((n-1)*x) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/sininv.input.pamphlet b/src/input/sininv.input.pamphlet new file mode 100644 index 00000000..ed90c5d3 --- /dev/null +++ b/src/input/sininv.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input sininv.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- @(#)sininv.input 1.1 89/09/07 20:55:20 +draw(sin inv x,x = -1.03..3) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/sinsin.input.pamphlet b/src/input/sinsin.input.pamphlet new file mode 100644 index 00000000..0cdcf039 --- /dev/null +++ b/src/input/sinsin.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input sinsin.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- @(#)sinsin.input 1.1 89/09/07 20:55:22 +draw(sin(x) * sin(y),x = 0..2*%pi, y = 0..2*%pi) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/sinsin2.input.pamphlet b/src/input/sinsin2.input.pamphlet new file mode 100644 index 00000000..cecaf075 --- /dev/null +++ b/src/input/sinsin2.input.pamphlet @@ -0,0 +1,19 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input sinsin2.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +draw(sin(x) * sin(y),x = 20*%pi..22*%pi, y = 20*%pi..22*%pi) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/sint.input.pamphlet b/src/input/sint.input.pamphlet new file mode 100644 index 00000000..d51fbb5d --- /dev/null +++ b/src/input/sint.input.pamphlet @@ -0,0 +1,33 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input SINT.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from SingleIntegerXmpPage +)clear all + +min()$SingleInteger +max()$SingleInteger +a := 1234 :: SingleInteger +b := 124$SingleInteger +gcd(a,b) +lcm(a,b) +mulmod(5,6,13)$SingleInteger +positiveRemainder(37,13)$SingleInteger +And(3,4)$SingleInteger +shift(1,4)$SingleInteger +shift(31,-1)$SingleInteger +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/skew.input.pamphlet b/src/input/skew.input.pamphlet new file mode 100644 index 00000000..4c86808f --- /dev/null +++ b/src/input/skew.input.pamphlet @@ -0,0 +1,113 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input skew.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- make sure that LALG, EAB, ANTISYM are loaded +-- +)cl all + +-- We will look at the deRham complex of Euclidean 3-space and use +-- coordinates (x,y,z). +lv:List Symbol := [x,y,z] + +-- Next is our ring of functions. We can have functions of any +-- number of variables, but since we've chosen to work with ordinary +-- Euclidean 3-space, an expression like f(x,t,r,y,u,z) will be treated +-- as a parameterized function of (x,y,z) and will be considered to be +-- constant in the variables t,r,u. We choose expressions with integer +-- coefficients in this example. +macro coefRing == Integer +R := Expression coefRing + +-- The declaration for the deRham complex takes arguments a ring coefRing +-- and a list of variables (lv is of type List Symbol). +der := DERHAM(coefRing,lv) + +-- here are some functions chosen at random. +f:R:=x**2*y*z-5*x**3*y**2*z**5 +g:R:=z**2*y*cos(z)-7*sin(x**3*y**2)*z**2 +h:R:=x*y*z-2*x**3*y*z**2 + +-- The multiplicative basis elements for the exterior algebra over R are +-- defined here. +dx :der := generator(1) +dy :der := generator(2) +dz :der := generator(3) +-- A nice alternate for the assignments above is +[dx,dy,dz] := [generator(i)$der for i in 1..3] + +-- Now some 1-forms chosen at random. +alpha:der := f*dx + g*dy + h*dz +beta:der := cos(tan(x*y*z)+x*y*z)*dx + x*dy + +-- we know that exteriorDifferential^2 = 0, let's see that: +exteriorDifferential alpha +exteriorDifferential % + +-- exteriorDifferential is long, let's shorten that. +macro exD == exteriorDifferential + +-- we know that exD is a (graded) derivation, let's see that: +gamma := alpha * beta + +delta := exD gamma +-- need the "-" because alpha is a 1-form and 1 is odd. +epsilon := exD(alpha)*beta - alpha * exD(beta) + +delta - epsilon + +-- We define some operators. +a:BOP := operator('a) +b:BOP := operator('b) +c:BOP := operator('c) + +-- Now some indeterminate one and two forms. +alpha := a(x,y,z) * dx + b(x,y,z) * dy + c(x,y,z) * dz +beta := a(x,y,z) * dx * dy + b(x,y,z) * dx * dz + c(x,y,z) * dy * dz + +-- the "gradient". +totalDifferential(a(x,y,z))$der +-- the "curl". +exD alpha +-- the "divergence". +exD beta + +-- Note that the deRham complex is an algebra with 1. +id:der := 1 + +-- Now some parameterized functions (and fomrs -- left as an exercise). +-- Note how the system keeps track of where your coordinate functions +-- are located in expressions. By multiplying the expressions below by +-- 1 in the deRham complex, we automatically convert them to 0-forms, +-- i.e., functions on our space. +g1:der := a([x,t,y,u,v,z,e]) * id +h1:der := a([x,y,x,t,x,z,y,r,u,x]) * id + +exD g1 +exD h1 + +-- Now note that we can find the coefficient of some basis term in +-- any form (the basis in this case consists of the 8 forms +-- 1, dx, dx, dz, dx dy, dx dz, dy dz, dx dy dz. +coefficient(gamma, dx*dy) +coefficient(gamma, id) +coefficient(g1,id) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/slowint.input.pamphlet b/src/input/slowint.input.pamphlet new file mode 100644 index 00000000..64078f9b --- /dev/null +++ b/src/input/slowint.input.pamphlet @@ -0,0 +1,29 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input slowint.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- test intalg.spad +k := 7/5 +mu := sqrt ( ((k-1)*m**2 + 2)/(2*k*m**2 -(k-1))) +km := 2/ ( (1+(2/(k+1)) * (1-mu**2)/mu)*(2*mu + 1 + 1/(m**2))) +f := - 2*m / ((m**2-1)*km) +integrate(f,m) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/solvetra.input.pamphlet b/src/input/solvetra.input.pamphlet new file mode 100644 index 00000000..adc05633 --- /dev/null +++ b/src/input/solvetra.input.pamphlet @@ -0,0 +1,62 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input solvetra.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +solve(sin(x)-8=0) +solve(sin(x)-8=0,x) +solve(sin(x)-8) +solve(sin(x)-8,x) +solve(sin(x**2)-2,x) +solve(sin(x**2)-3,x) +solve(sin(x**2)**2-3,x) +solve(sin(x+2)-2,x) +solve(sin(x**2+2)-2,x) +solve(sin(x)*cos(8)*tan(88)*567-y*3+3,x) +solve(sin(x-77)*cos(8)*tan(88)*567-y*3+3,x) +solve(sin(x**2-77)*cos(8)*tan(88)*567-y*3+3,x) +solve(sin(x)*cos(x)-2,x) +solve(sin(x**3-77)*cos(8)*tan(88)*567-y*3+3,x) +solve(cos(x)+cos(3*x)+cos(5*x) ,x) +solve(3*tan(3*x)-tan(x)+2,x) +solve(3*sech(x)**2+4*tanh(x)+1,x) +solve(cosh(x)-3*sinh(x),x) +solve(2*sinh(x)+6*cosh(x)-5,x) +solve(exp(3*x)-4*exp(x)+3*exp(-x),x) +solve(log(x+1)+log(x-1)-3,x) +solve(sin(x)*cos(x)-2,x) +solve(- cos(- x + a)*sin(x) + 2*cos(x)*sin(- x + a),x) +solve(sin(x)+cos(x)=2,x) +solve(- cos(- x )*sin(x),x) +solve(- cos(- x + a)*sin(x),x) +solve(log(sqrt(sqrt(sqrt(x+1)+4)+7))+5,x) +solve(2**x-6,x) +solve(sqrt(x+1)+sqrt(x+7)+1,x) +solve(sqrt(sin(x))+1,x) +solve(sqrt(sin(x))+sqrt(cos(x))+1,x) +solve(sqrt(sin(x)+1)+(sin(x)+1)**(1/3)+7,x) +solve(sqrt(sqrt(sqrt(1+x)+7)+1)+8-2,x) +solve(sqrt(sin(x)+1)+(sin(x)+5)**(1/3)+7,x) +solve(sqrt(sin(x+1))+sqrt(sin(x+7))+1,x) +solve(asin(x)+acot(x)-2,x) +solve(asinh(x)+acoth(x)-2,x) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/space3.input.pamphlet b/src/input/space3.input.pamphlet new file mode 100644 index 00000000..7974fee7 --- /dev/null +++ b/src/input/space3.input.pamphlet @@ -0,0 +1,283 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input space3.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +-- test for ThreeSpace domain + +)clear all + +space := create3Space()$(ThreeSpace DoubleFloat) +p0 := point [1,1,1]$(Point DoubleFloat) +p1 := point [1,0,0]$(Point DoubleFloat) +p2 := point [0,0,0]$(Point DoubleFloat) +p3 := point [0,1,1]$(Point DoubleFloat) +closedCurve(space,[p0,p1,p2,p3]) + +closedCurve(space,[[1,1,1],[1,0,0],[0,0,0],[0,1,1]]) + +cspace := closedCurve([p0,p1,p2,p3])$(ThreeSpace DoubleFloat) + +closedCurve cspace + +)clear all + +space := create3Space()$(ThreeSpace DoubleFloat) +p0 := point [1,1,1]$(Point DoubleFloat) +p1 := point [1,0,0]$(Point DoubleFloat) +p2 := point [0,0,0]$(Point DoubleFloat) +p3 := point [0,1,1]$(Point DoubleFloat) +closedCurve(space,[p0,p1,p2,p3]) +closedCurve? space + +curve(space,[p0,p1,p2,p3]) +point(space,p0) +components(space) + +space1 := create3Space()$(ThreeSpace DoubleFloat) +curve(space1,[p0,p1,p2,p3]) +point(space1,p0) +space2 := point(p0)$(ThreeSpace DoubleFloat) +space3 := curve[p0,p1,p2]$(ThreeSpace DoubleFloat) +composite [space1,space2,space3] + +curve(space,[p0,p1,p2,p3]) +point(space,p0) +point(space,p1) +closedCurve(space,[p0,p1,p2]) +composite [space1,space2,space3] +composites(space) + +curve(space,[p0,p1,p2,p3]) +point(space,p0) +space4 := copy space + +curve(space,[p0,p1,p2]) +point(space,p0) +sub := subspace(space) +spNew := create3Space(sub)$(ThreeSpace DoubleFloat) + +curve(space,[p0,p1,p2,p3]) + +curve(space,[[1,1,1],[1,0,0],[0,0,0],[0,1,1]]) + +cspace := curve([p0,p1,p2,p3])$(ThreeSpace DoubleFloat) + +curve cspace + +)clear all + +space := create3Space()$(ThreeSpace DoubleFloat) +p0 := point [1,1,1]$(Point DoubleFloat) +p1 := point [1,0,0]$(Point DoubleFloat) +p2 := point [0,0,0]$(Point DoubleFloat) +p3 := point [0,1,1]$(Point DoubleFloat) +curve(space,[p0,p1,p2,p3]) +curve? space + +)clear all + +space := create3Space()$(ThreeSpace DoubleFloat) +p0 := point [1,1,1]$(Point DoubleFloat) +p1 := point [1,0,0]$(Point DoubleFloat) +p2 := point [0,0,0]$(Point DoubleFloat) +p3 := point [0,1,1]$(Point DoubleFloat) +closedCurve(space,[p0,p1,p2,p3]) +curve(space,[p0,p1,p2,p3]) +point(space,p0) +point(space,p3) +polygon(space,[p0,p1,p3]) +polygon(space,[p0,p2,p3]) +lllip(space) + +closedCurve(space,[p0,p1,p2,p3]) +curve(space,[p0,p1,p2,p3]) +point(space,p0) +polygon(space,[p0,p1,p3]) +llprop(space) +lprop(space) + +closedCurve(space,[p0,p1,p2,p3]) +curve(space,[p0,p1,p2,p3]) +point(space,p0) +polygon(space,[p0,p1,p3]) +lp(space) + +enterPointData(space,[p0,p1,p2,p3]) + +)clear all + +space1 := create3Space()$(ThreeSpace DoubleFloat) +p0 := point [1,1,1]$(Point DoubleFloat) +p1 := point [1,0,0]$(Point DoubleFloat) +p2 := point [0,0,0]$(Point DoubleFloat) +p3 := point [0,1,1]$(Point DoubleFloat) +curve(space1,[p0,p1,p2,p3]) +space2 := copy space1 +point(space1,p3) +space3 := copy space1 +curve(space3,[p0,p1,p2]) +newSpace1 := merge [space1,space2,space3] +newSpace2 := merge(space2,space3) + +space := create3Space()$(ThreeSpace DoubleFloat) +prop := new()$SubSpaceComponentProperty() +lprop := [prop, prop, prop] +mesh(space,[[p0,p1,p2],[p1,p2,p3],[p0,p2,p3]],lprop,prop) + +mesh(space,[[p0,p1,p2],[p1,p2,p3],[p0,p2,p3]],lprop,prop) + +mesh(space,[[p0,p1,p2],[p1,p2,p3],[p0,p2,p3]],closed?(prop),closed?(prop)) +b := close(prop,true) +mesh(space,[[p0,p1,p2],[p1,p2,p3],[p0,p2,p3]],b,b) + +mesh(space,[[p0,p1,p2],[p1,p2,p3],[p0,p2,p3]],closed?(prop),closed?(prop)) +mesh(space,[[[1,1,1],[1,0,0],[0,0,0]],[[1,0,0],[0,0,0],[0,1,1]],[[1,1,1],[0,0,0],[0,1,1]]],closed?(prop),closed?(prop)) + +mesh(space,[[[1,1,1],[1,0,0],[0,0,0]],[[1,0,0],[0,0,0],[0,1,1]],[[1,1,1],[0,0,0],[0,1,1]]],b,b) + +)clear all + +p0 := point [1,1,1]$(Point DoubleFloat) +p1 := point [1,0,0]$(Point DoubleFloat) +p2 := point [0,0,0]$(Point DoubleFloat) +p3 := point [0,1,1]$(Point DoubleFloat) + +space := mesh([[p0,p1,p2],[p1,p2,p3],[p0,p2,p3]])$(ThreeSpace DoubleFloat) +space1 := mesh([[p0,p1,p2],[p1,p2,p3],[p0,p2,p3]],false,false)$(ThreeSpace DoubleFloat) + +)clear all + +p0 := point [1,1,1]$(Point DoubleFloat) +p1 := point [1,0,0]$(Point DoubleFloat) +p2 := point [0,0,0]$(Point DoubleFloat) +p3 := point [0,1,1]$(Point DoubleFloat) +space := mesh([[p0,p1,p2],[p1,p2,p3],[p0,p2,p3]])$(ThreeSpace DoubleFloat) +mesh(space) +s := mesh([[p0,p1,p2],[p1,p2,p3],[p0,p2,p3]])$(ThreeSpace DoubleFloat) +mesh(s) + +space2 := create3Space()$(ThreeSpace DoubleFloat) +curve(space2,[p0,p1,p2,p3]) +mesh?(space2) +s1 := mesh([[p0,p1,p2],[p1,p2,p3],[p0,p2,p3]])$(ThreeSpace DoubleFloat) +mesh?(s1) + +i := enterPointData(space2,[p0,p1,p2,p3])::NNI +modifyPointData(space2,i,p2) + +point(space2,p0) +curve(space2,[p0,p1,p2,p3]) +numberOfComponents(space2) + +)clear all + +space1 := create3Space()$(ThreeSpace DoubleFloat) +numberOfComposites(space1) +p0 := point [1,1,1]$(Point DoubleFloat) +p1 := point [1,0,0]$(Point DoubleFloat) +p2 := point [0,0,0]$(Point DoubleFloat) +p3 := point [0,1,1]$(Point DoubleFloat) +curve(space1,[p0,p1,p2,p3]) +point(space1,p0) +space2 := point(p0)$(ThreeSpace DoubleFloat) +space3 := curve [p0,p1,p2]$(ThreeSpace DoubleFloat) +s := composite [space1,space2,space3] +numberOfComposites(s) + +space := create3Space()$(ThreeSpace DoubleFloat) +point(space,p0) +curve(space,[p0,p1,p2,p3]) +closedCurve(space,[p0,p1,p2]) +objects space + +)clear all + +s := create3Space()$(ThreeSpace DoubleFloat) +p := point [1,1,1]$(Point DoubleFloat) +point(s,p) + +point(s,[1,1,1]) + +p0 := point [1,0,0]$(Point DoubleFloat) +point(s,p) +i := enterPointData(s,[p0])::NNI +point(s,i) + +p := point [1,1,1]$(Point DoubleFloat) +space := point(p)$(ThreeSpace DoubleFloat) + +)clear all + +s := create3Space()$(ThreeSpace DoubleFloat) +p0 := point [1,1,1]$(Point DoubleFloat) +curve(s,[p0,p0]) +space1 := point(p0)$(ThreeSpace DoubleFloat) +point(space1) + +)clear all + +s := create3Space()$(ThreeSpace DoubleFloat) +p0 := point [1,1,1]$(Point DoubleFloat) +curve(s,[p0,p0,p0]) +point? s +space := point(p0)$(ThreeSpace DoubleFloat) +point? space + +)clear all + +space := create3Space()$(ThreeSpace DoubleFloat) +p0 := point [1,1,1]$(Point DoubleFloat) +p1 := point [1,0,0]$(Point DoubleFloat) +p2 := point [0,0,0]$(Point DoubleFloat) +p3 := point [0,1,1]$(Point DoubleFloat) +polygon(space,[p0,p1,p2,p3]) + +polygon(space,[[1,1,1],[0,0,-1],[1,0,1]]) + +s := polygon([p0,p1,p2,p3])$(ThreeSpace DoubleFloat) + +)clear all + +space := create3Space()$(ThreeSpace DoubleFloat) +p0 := point [1,1,1]$(Point DoubleFloat) +p1 := point [1,0,0]$(Point DoubleFloat) +p2 := point [0,0,0]$(Point DoubleFloat) +p3 := point [0,1,1]$(Point DoubleFloat) +curve(space,[p0,p1,p2,p3]) +s := polygon([p0,p1,p2,p3])$(ThreeSpace DoubleFloat) +polygon s + +)clear all + +space := create3Space()$(ThreeSpace DoubleFloat) +p0 := point [1,1,1]$(Point DoubleFloat) +p1 := point [1,0,0]$(Point DoubleFloat) +p2 := point [0,0,0]$(Point DoubleFloat) +p3 := point [0,1,1]$(Point DoubleFloat) +curve(space,[p0,p1,p2,p3]) +polygon? space +s := polygon([p0,p1,p2,p3])$(ThreeSpace DoubleFloat) +polygon s + +space1 := create3Space()$(ThreeSpace DoubleFloat) +sub := subspace(space1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/spadprof.input.pamphlet b/src/input/spadprof.input.pamphlet new file mode 100644 index 00000000..d1ff6eb9 --- /dev/null +++ b/src/input/spadprof.input.pamphlet @@ -0,0 +1,43 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input spadprof.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- This file is read on start-up by the Scratchpad system. It is +-- most commonly used to customize the user's environment via the +-- )set system commands. This version is for AIX. + +-- read the system synonym file for system commands, if it exists +)read "synonym.input" )ifthere )quiet +-- read the user's synonym file for system commands, if it exists +)read "mysyns.input" )ifthere )quiet + +-- do not enter lisp break on error +)set break nobreak + +-- start up the workspace history facility +)set history on + +-- use the simple character set +)set output char plain + +-- everyone uses this +)set userlevel development + +-- make the highlighting characters go away +)set mess high off + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/spiral.input.pamphlet b/src/input/spiral.input.pamphlet new file mode 100644 index 00000000..6c1cdddb --- /dev/null +++ b/src/input/spiral.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input spiral.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- @(#)spiral.input 1.1 89/09/07 20:55:24 +draw(t/100,t = 0..100,[coordinates polar]) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/sqmatrix.input.pamphlet b/src/input/sqmatrix.input.pamphlet new file mode 100644 index 00000000..b9ce36fd --- /dev/null +++ b/src/input/sqmatrix.input.pamphlet @@ -0,0 +1,28 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input SQMATRIX.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from SquareMatrixXmpPage +)clear all + +)set expose add constructor SquareMatrix +m := squareMatrix [[1,-%i],[%i,4]] +m*m - m +mm := squareMatrix [[m, 1], [1-m, m**2]] +p := (x + m)**2 +p::SquareMatrix(2, ?) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/sregset.input.pamphlet b/src/input/sregset.input.pamphlet new file mode 100644 index 00000000..d87c7439 --- /dev/null +++ b/src/input/sregset.input.pamphlet @@ -0,0 +1,45 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input SREGSET.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from SquareFreeRegularTriangularSetXmpPage +)clear all + +R := Integer +ls : List Symbol := [x,y,z,t] +V := OVAR(ls) +E := IndexedExponents V +P := NSMP(R, V) +x: P := 'x +y: P := 'y +z: P := 'z +t: P := 't +ST := SREGSET(R,E,V,P) +p1 := x ** 31 - x ** 6 - x - y +p2 := x ** 8 - z +p3 := x ** 10 - t +lp := [p1, p2, p3] +zeroSetSplit(lp)$ST +zeroSetSplit(lp,false)$ST +T := REGSET(R,E,V,P) +lts := zeroSetSplit(lp,false)$T +ts := lts.2 +pol := select(ts,'y)$T +tower := collectUnder(ts,'y)$T +pack := RegularTriangularSetGcdPackage(R,E,V,P,T) +toseSquareFreePart(pol,tower)$pack +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/stbl.input.pamphlet b/src/input/stbl.input.pamphlet new file mode 100644 index 00000000..5765b6b9 --- /dev/null +++ b/src/input/stbl.input.pamphlet @@ -0,0 +1,29 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input STBL.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from SparseTableXmpPage +)clear all + +t: SparseTable(Integer, String, "Try again!") := table() +t.3 := "Number three" +t.4 := "Number four" +t.3 +t.2 +keys t +entries t +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/stream.input.pamphlet b/src/input/stream.input.pamphlet new file mode 100644 index 00000000..46f8edd5 --- /dev/null +++ b/src/input/stream.input.pamphlet @@ -0,0 +1,34 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input STREAM.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from StreamXmpPage +)clear all + +ints := [i for i in 0..] +f : List INT -> List INT +f x == [x.1 + x.2, x.1] +fibs := [i.2 for i in [generate(f,[1,1])]] +[i for i in ints | odd? i] +odds := [2*i+1 for i in ints] +scan(0,+,odds) +[i*j for i in ints for j in odds] +map(*,ints,odds) +first ints +rest ints +fibs 20 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/stream2.input.pamphlet b/src/input/stream2.input.pamphlet new file mode 100644 index 00000000..1cf80cc8 --- /dev/null +++ b/src/input/stream2.input.pamphlet @@ -0,0 +1,102 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input stream2.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{compiler bug fix} +<<compiler bug fix>>= +)set functions compile on +@ +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)clear all +)set stream calculate 20 +)set functions cache all +<<compiler bug fix>> +u==[i+j for i in (-4)..10 | i < 5 for j in 4.. | j < 10] +u +reduce(0::Integer,+,u) +)clear all +u(m,n)==[i for i in m..n] +u(3,6) +reduce(+,u(3,6)) +reduce(+,u(3,8)) +)clear all +n==10 +u:=[i for i in 0..n] +v==[i for i in 0..n] +v +n==15 +u +v +)clear all +n:=2 +m:=3 +u:=[[i*j for j in 1..n] for i in 1..m] +n:=10 +u +)clear all +u==[i for i in m..n] +)set mes test off +u +)set mes test on +n:=7 +m:=3 +u +reduce(+,u) +n:=2 +u +reduce(+,u) +m:=-3 +u +reduce(+,u) +)clear all +u==[[i+j for i in 0..j] for j in 0..n] +)set mes test off +u +)set mes test on +n:=5 +u +n:=10 +u +n:=1 +u +n:= 0 +u +n:=-1 +u +)clear all +)set streams calculate 10 +u==[[i+j for i in 0..] for j in 0..] +u +)clear all +u(m,n)==[[i+j for j in 1..m] for i in 1..n] +u(3,6) +reduce(append,u(3,6)) +)clear all +u(m,n)==[[i*j for j in m..] for i in n..] +u(3,6) +)clear all +)set streams calculate 3 +[[[i+j+k for i in 0..] for j in 0..] for k in 0..] +n:=5 +[[[i+j+k for i in 0..] for j in 0..] for k in 0..n] +[[[i+j+k for i in 0..j] for j in 0..k] for k in 0..] +[[[i+j+k for i in 0..j] for j in 0..k] for k in 0..n] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/streams.input.pamphlet b/src/input/streams.input.pamphlet new file mode 100644 index 00000000..bb141791 --- /dev/null +++ b/src/input/streams.input.pamphlet @@ -0,0 +1,70 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input streams.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)clear all +)set streams calculate 5 +)set streams showall on +--at least 5 stream elements will be evaluated +--the stream of integers starting at 1 +a := [i for i in 1..] +b := [i+1 for i in a] +--select the 20th element +b.20 +--the first 20 elements of b (and a) are evaluated +b +a +--the first 10 elements of a +first(a,10) +--all except the first 10 elements of a +rest(a,10) +--the stream of odd integers +[i for i in a | odd? i] +--combining two streams +c := [[i,j] for i in a for j in b] +-- selecting the first from each pair +[first i for i in c] +)set streams calculate 10 +--concat(a,b) concatenates streams a and b, better if a is finite +concat([i for i in a while i<7],a) +concat(a,a) +upto:NNI->STREAM INT +upto n == first(a,n) +d := [upto n for n in a] +--concat flattens a stream of streams into a one level stream +concat d +--the sum of a finite stream +reduce(0,_+$INT,first(a,10)) +--a stream of cumulative sums +scan(0,_+$INT,a) +scan(0,_+$INT,[2*i-1 for i in a]) +ff:(LIST INT)->(LIST INT) +ff(x)==[x.1+x.2,x.1] +--generate(f,x) operates on an A->A function f and an initial A, x +--to produce the stream x,f x,f(f x),... +fibs := generate(ff,[1,1]) +--first([first i for i in fibs], 100) +mt:SQMATRIX(2,INT) := matrix [[1,2],[3,4]] +mplm:SQMATRIX(2,INT)->SQMATRIX(2,INT) +mplm x == x*mt +generate(mplm,mt) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/string.input.pamphlet b/src/input/string.input.pamphlet new file mode 100644 index 00000000..6e494146 --- /dev/null +++ b/src/input/string.input.pamphlet @@ -0,0 +1,57 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input STRING.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from StringXmpPage +)clear all + +hello := "Hello, I'm AXIOM!" +said := "Jane said, _"Look!_"" +saw := "She saw exactly one underscore: __." +gasp: String := new(32, char "x") +#gasp +hello.2 +hello 2 +hello(2) +hullo := copy hello +hullo.2 := char "u"; [hello, hullo] +saidsaw := concat ["alpha","---","omega"] +concat("hello ","goodbye") +"This " "is " "several " "strings " "concatenated." +hello(1..5) +hello(8..) +split(hello, char " ") +other := complement alphanumeric(); +split(saidsaw, other) +trim ("## ++ relax ++ ##", char "#") +trim ("## ++ relax ++ ##", other) +leftTrim ("## ++ relax ++ ##", other) +rightTrim("## ++ relax ++ ##", other) +upperCase hello +lowerCase hello +prefix?("He", "Hello") +prefix?("Her", "Hello") +suffix?("", "Hello") +suffix?("LO", "Hello") +substring?("ll", "Hello", 3) +substring?("ll", "Hello", 4) +n := position("nd", "underground", 1) +n := position("nd", "underground", n+1) +n := position("nd", "underground", n+1) +position(char "d", "underground", 1) +position(hexDigit(), "underground", 1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/strtbl.input.pamphlet b/src/input/strtbl.input.pamphlet new file mode 100644 index 00000000..d44af9a5 --- /dev/null +++ b/src/input/strtbl.input.pamphlet @@ -0,0 +1,27 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input STRTBL.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from StringTableXmpPage +)clear all + +t: StringTable(Integer) := table() +for s in split("My name is Ian Watt.",char " ") + repeat + t.s := #s +for key in keys t repeat output [key, t.key] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/symbol.input.pamphlet b/src/input/symbol.input.pamphlet new file mode 100644 index 00000000..a4c025fa --- /dev/null +++ b/src/input/symbol.input.pamphlet @@ -0,0 +1,46 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input SYMBOL.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from SymbolXmpPage +)clear all + +X: Symbol := 'x +XX: Symbol := x +A := 'a +B := b +x**2 + 1 +"Hello"::Symbol +new()$Symbol +new()$Symbol +new("xyz")$Symbol +X[i,j] +U := subscript(u, [1,2,1,2]) +V := superscript(v, [n]) +P := argscript(p, [t]) +scripted? U +scripted? X +string X +name U +scripts U +name X +scripts X +M := script(Mammoth, [[i,j],[k,l],[0,1],[2],[u,v,w]]) +scripts M +N := script(Nut, [[i,j],[k,l],[0,1]]) +scripts N +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/synonym.input.pamphlet b/src/input/synonym.input.pamphlet new file mode 100644 index 00000000..e8b01cc8 --- /dev/null +++ b/src/input/synonym.input.pamphlet @@ -0,0 +1,82 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input synonym.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991-94. +@ +<<*>>= +<<license>> + +-- This file contains the standard system defined system command +-- synonyms for the Axiom system. It is normally read into +-- the system by adding the line +-- )read synonym input )ifthere )quiet +-- to the start-up profile axiom.input. + +-- If you wish to have a private list of synonyms, it is suggested +-- that you create a file mysyns.input. +-- This will also automatically be read into the system by the start-up +-- profile by the line +-- )read mysyns input )ifthere )quiet + +-- The following synonyms are redefined in the system + +-- )synonym ? what commands +-- )synonym ap what things +-- )synonym apr what things +-- )synonym apropos what things +-- )synonym cache set functions cache +-- )synonym cl clear +-- )synonym cls zsystemdevelopment )cls +-- )synonym cms system +-- )synonym co compiler +-- )synonym d display +-- )synonym dep display dependents +-- )synonym dependents display dependents +-- )synonym disc system cp disc +-- )synonym e edit +-- )synonym expose set expose add constructor +-- )synonym fc zsystemdevelopment )c +-- )synonym fd zsystemdevelopment )d +-- )synonym fct zsystemdevelopment )ct +-- )synonym fctl zsystemdevelopment )ctl +-- )synonym fe zsystemdevelopment )e +-- )synonym fec zsystemdevelopment )ec +-- )synonym fect zsystemdevelopment )ect +-- )synonym fns exec spadfn +-- )synonym fortran set output fortran +-- )synonym h help +-- )synonym hd system hypertex & +-- )synonym kclam boot clearClams ( ) +-- )synonym killcaches boot clearConstructorAndLisplibCaches ( ) +-- )synonym patch zsystemdevelopment )patch +-- )synonym pause zsystemdevelopment )pause +-- )synonym prompt set message prompt +-- )synonym recurrence set functions recurrence +-- )synonym restore history )restore +-- )synonym save history )save +-- )synonym time set message time +-- )synonym type set message type +-- )synonym unexpose set expose drop constructor +-- )synonym up zsystemdevelopment )update +-- )synonym version lisp *yearweek* +-- )synonym w what +-- )synonym wc what categories +-- )synonym wd what domains +-- )synonym wp what packages +-- )synonym ws what synonyms +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/synonym2.input.pamphlet b/src/input/synonym2.input.pamphlet new file mode 100644 index 00000000..72d86ab2 --- /dev/null +++ b/src/input/synonym2.input.pamphlet @@ -0,0 +1,89 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input synonym2.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- This file contains the standard system defined system command +-- synonyms for the Scratchpad II system. It is normally read into +-- the system by adding the line +-- )read synonym input )ifthere )quiet +-- to the start-up profile SPADPROF INPUT (on CMS) or spadprof.input +-- (on AIX). + +-- If you wish to have a private list of synonyms, it is suggested +-- that you create a file MYSYNS INPUT (on CMS) or mysyns.input (on AIX). +-- This will also automatically be read into the system by the start-up +-- profile by the line +-- )read mysyns input )ifthere )quiet + +)synonym ? what commands +)synonym ap what things +)synonym apr what things +)synonym apropos what things +--)synonym bug system spadnote +)synonym cache set functions cache +)synonym cl clear +)synonym cls zsystemdevelopment )cls +)synonym cms system +--)synonym CMS system +--)synonym cp system cp +--)synonym CP system cp +)synonym co compiler +)synonym d display +)synonym dep display dependents +)synonym dependents display dependents +)synonym disc system cp disc +)synonym e edit +--)synonym exec system exec +)synonym fc zsystemdevelopment )c +)synonym fct zsystemdevelopment )ct +)synonym fe zsystemdevelopment )e +)synonym fec zsystemdevelopment )ec +)synonym fect zsystemdevelopment )ect +)synonym fns exec spadfn +)synonym fortran set output fortran +--)synonym glos system exec getgloss +)synonym h help +)synonym ht system hypertex & +)synonym include compile +)synonym kclam boot clearClams ( ) +)synonym killcaches boot clearConstructorAndLisplibCaches ( ) +--)synonym logoff system cp logoff +--)synonym note system note +)synonym patch zsystemdevelopment )patch +)synonym pause zsystemdevelopment )pause +--)synonym peek system conpeek +)synonym prompt set message prompt +--)synonym rdr system checkrdr +)synonym recurrence set functions recurrence +)synonym restore history )restore +)synonym save history )save +)synonym seq set streams +)synonym sequence set streams +)synonym storage set message storage +)synonym str set streams +)synonym streams set streams +--)synonym tell system tell +)synonym time set message time +)synonym type set message type +)synonym up zsystemdevelopment )update +)synonym version zsystemdevelopment )version +)synonym w what +)synonym wc what categories +)synonym wd what domains +)synonym wp what packages +)synonym ws what synonyms +--)synonym x system editarb +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/t111293.input.pamphlet b/src/input/t111293.input.pamphlet new file mode 100644 index 00000000..b1b32200 --- /dev/null +++ b/src/input/t111293.input.pamphlet @@ -0,0 +1,54 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input t111293.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> + + +-- This file tests things fixed on or about Nov 12, 1993 + +)clear all + +-- unions and records in function position + +y := operator y +deq := differentiate(y x, x, 2) + differentiate(y x, x) + y x +solve(deq, y, x).basis + +)clear all + +-- other objects in function position + +f := sin +f 5 +f 5.6 +g(f,x) == f x +g(cos, x) +g(f, x) +g(log, 8.38) + +)clear all + +-- still more + +sin := [1,2,3,4,5,6,7] +sin 4 +sin(4)$Expression(Integer) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/table.input.pamphlet b/src/input/table.input.pamphlet new file mode 100644 index 00000000..34b6e39e --- /dev/null +++ b/src/input/table.input.pamphlet @@ -0,0 +1,40 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input TABLE.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from TableXmpPage +)clear all + +t: Table(Polynomial Integer, String) := table() +setelt(t, x**2 - 1, "Easy to factor") +t(x**3 + 1) := "Harder to factor" +t(x) := "The easiest to factor" +elt(t, x) +t.x +t x +t.(x**2 - 1) +t (x**3 + 1) +keys t +search(x, t) +search(x**2, t) +search(x**2, t) case "failed" +remove!(x**2-1, t) +remove!(x-1, t) +#t +members t +count(s: String +-> prefix?("Hard", s), t) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/tanatan.input.pamphlet b/src/input/tanatan.input.pamphlet new file mode 100644 index 00000000..93faadef --- /dev/null +++ b/src/input/tanatan.input.pamphlet @@ -0,0 +1,61 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input tanatan.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)clear all +--Here's an equation +eq:=2*tan(x)+2*tan(2*x) +-- +-- Solve it +-- +thesols:=solve(eq,x) +-- +-- Verify the solutions +-- +theproofs:=[eval(eq,i) for i in thesols] +-- +-- Problem with simplification of tan(n*atan(y)) +-- Get the tower for each expression +-- +thetowers:=[tower i for i in theproofs]; +thesubs:LIST Record (a:LIST KERNEL EXPR INT ,b:LIST EXPR INT) +thetans:LIST LIST Record(i:INT,k:KERNEL EXPR INT,z:List Equation EXPR INT) +-- +-- apply pattern-matching to find tan(n*atan(y)) +-- and construct the structures needed +-- +thetans:=_ + [[construct(j,i.j,Is(argument(i.j).1,n * atan(y))) for j in 1..#i_ + |is?(i.j,tan) and is?(argument(i.j).1,n * atan(y))] _ + for i in thetowers] ; +-- +-- Construct the evaluation rules for tan(n*atan(y)) -> tanNa(a,n) +-- +thesubs:=_ + [construct([j.k for j in thetans.i],_ + [tanNa(rhs(j.z.2),rhs(j.z.1) ::INT)$TangentExpansions(EXPR INT)_ + for j in thetans.i]) _ + for i in 1..#theproofs]; +-- +-- Apply the evaluation rules +-- +thezeros:=[eval(i,j.a,j.b) for i in theproofs for j in thesubs] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/test.input.pamphlet b/src/input/test.input.pamphlet new file mode 100644 index 00000000..49460a96 --- /dev/null +++ b/src/input/test.input.pamphlet @@ -0,0 +1,654 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input test.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + + + +-- File of recently fixed interpreter bugs + +--- eval a polynomial with EXPR substitution values +--- Fixed by SCM, verified on 10/30/90 + +)clear all + + +eq1:= A*x**2 + B*x*y + C*y**2 +D*x + E*y + F + +eq2:= eval(eq1,[x= xdot*cos(t) - ydot*sin(t), y=xdot*sin(t) + ydot*cos(t)]) + +-- UTS coercions. Fixed by SCM, verified on 10/30/90 + +)clear all + +taylor exp x + +s := % + +s::(UTS(EXPR FLOAT, x, 0)) +s::(UTS(FLOAT, x, 0)) + +eval(s,1) +%::(Stream Float) + +-- Another bug, fixed by adding UPXS2 package, + +s := series(sin(a*x),x=0) +eval(s, 1.0) + +s - a*x + + +-- grand finale, just fixed on 3/23/91 +eval(s, 1.0) + +-- generalized resolve +-- Fixed (enhanced) by SCM in 3/23/91 + +)cl all + +v := vector [1,2,3] +(1/2)*v + +eval(x**2, x=1/2) +eval(x**2, x=0.5) +eval(3**x, x=0.5) + +-- overloading interpreter maps on arity +--- Fixed by SCM, verified on 10/30/90 + +)clear all + +f(x) == x+1 +f(x,y) == x+y + +f 3 +f(3,4) +f(5) +f(1,x) + +-- targetted function requiring a coercion +--- Fixed by SCM, verified on 10/30/90 + +)clear all +series(n +-> bernoulli(n)/factorial(n), t=0) + +-- in-homogeneous list mapping +--- Fixed by SCM, verified on 10/30/90 + +)clear all +l := [1,2,-1] +f : INT -> FRAC INT +f x == x +map(f, l) + +-- Function args to interpreter functions +--- Fixed by SCM, verified on 10/30/90 + +)cl all +f: INT -> INT +f x == x+1 +u g == g 3 +u f + +-- category modemap requiring a field to be constructed +--- Fixed by SCM, verified on 10/30/90 + +)clear all + +groebner [x**2 - y, y**3+1] + +-- operations requiring polynomials, passed variables +--- Fixed by SCM, verified on 10/30/90 + +)clear all +factor x +draw(x, x=-1..1) + +-- bracket parsing and empty-set types +--- Fixed by SCM, verified on 10/30/90 + +)clear all +brace [] -- {} +--{}$(List INT) +brace [1] -- {1} +-- The following still doesn't work +union(brace [], brace [1,2]) -- union({}, {1,2}) + +-- Shouldn't work, but no longer bombs the interpreter +--- Fixed by SCM, verified on 10/30/90 + +)clear all +)set mes test off +map(variable, [x,y]) +)set mes test on + +-- Recursive map type analysis bug +--- Fixed by SCM, verified on 10/30/90 +)set fun recur off +)clear all + +p(n,x) == if n=0 then 1 else (x+n-1)*p(n-1,x) +pp(n,x) == if n=0 then 1 else if n<0 then (-1)**n/p(-n,1-x) else p(n,x) +pp(-1,x) -- should be 1/(x-1) + +-- interpret-code mode for iterators is broken + +)cl all +f n == + for i in 1..n repeat + j:=2*i + m:SQMATRIX(j,?):=1 + print m +g n == + j:=2*n + m:SQMATRIX(j,?):=1 + print m + +g 3 +f 3 + +-- Test interpreter list destructuring + +)clear all +mp(x,l) == + l is [a,:b] => + a*x**(#b)+ mp(x,b) + 0 + +mp(x, [1,3,4, 2]) +mp(x, [1,2,-3, 4]) + +-- Tests compilation of recursive functions + +)clear all + +f1 n == + if n=0 then 1 else if n=1 then 1 else f1(n-1)+f1(n-2) + +f2 n == + m:=n + if n=0 then 1 else if n=1 then 1 else f2(n-1)+f2(n-2) + +f3 n == + n=0 => 1 + n=1 => 1 + f3(n-1)+f3(n-2) + +f4 n == + m:=n + n=0 => 1 + n=1 => 1 + m:=n + f4(n-1)+f4(n-2) + +f5 n == if n=0 or n=1 then 1 else f5(n-1)+f5(n-2) + +[f1 3,f2 3, f3 3,f4 3,f5 3] + +-- Input of GDMP types +-- Fixed by SCM on 1/22/91 + +)cl all + +g: GDMP([x,y], INT, DIRPROD(2, NNI)) := x**2 + y + +-- has test with variables +-- Fixed by SCM on 1/22/91 + +)cl all + +i := INT +i has Algebra(i) + +-- returns in functions +-- Fixed by SCM on 1/22/91 + +)cl all + +f x == if x<0 then return x else x+1 + +f 2 -- should be 3 +f(-2) -- should be -2 + +-- resolveTT not returning Any +-- Fixed by SCM 1/30/91 + +)cl all + +m = [[1,2],[2,3]] -- Should return type EQ POLY SQMATRIX(2, INT) + +[1, "asd"] -- Should be of type List Any + +)set mes test off +1+"asd" -- These should both fail in the same way +1/"asd" +)set mes test on + +-- Passing type variables to )show + +)cl all + +t := MPOLY([x,y], INT) +)show t + +-- caching nullary functions + +)set fun cache all + +u == 1 + +u +)set fun cache 0 + +-- Interpreter Only mode on collects +-- Fixed by SCM on 3/1/91 + +factorp: (UP(x,INT),PositiveInteger,PositiveInteger) -> List(UP(x,INT)) +factorp(poly,p,e) == + ppoly:UP(x,PF p):=poly + pl := [rec.factor for rec in factors factor ppoly] + facl:=pl::List(UP(x,INT)) + +factorp(x**2+x+5,7,1) + + +-- using "by" with segments +-- Fixed by SCM on 2/14/91 + +)cl all + +b:= 1..10 +for i in b by 2 repeat output i + +-- DMP resolve bug +-- Fixed by SCM 3/7/91 + +)cl all + +macro RN == FRAC INT +a51:=x+y+z+t+u; +a52:=x*y+y*z+z*t+x*u+t*u; +a53:=x*y*z+y*z*t+x*y*u+x*t*u+z*t*u; +a54:=x*y*z*t+x*y*z*u+x*y*t*u+x*z*t*u+y*z*t*u; +a55:=x*y*z*t*u-1; + +arnborg5: List HDMP([x,y,z,t,u],RN):=[a51,a52,a53,a54,a55]; +arnborg5l: List DMP([x,y,z,t,u],RN):=[a51,a52,a53,a54,a55]; + +-- construct in interpret-only mode +-- Fixed by SCM on 3/7/91 + +)cl all + +factorp(poly,p,e) == + [rec.factor for rec in factors factor (poly::UP(x, PF p))]::List UP(x, INT) + +factorp(x**2+x+5,7,1) + +-- return in interpret-only mode +-- fixed by SCM 3/11/91 + +)cl all + +f (x) == + y: PF x := 1 + x = 3 => return x + x = 4 => return(-x) + (x+1) + +f 3 + +-- incorrect handling of type of returns +-- fixed by SCM 3/11/91 + +)cl all + +f (x) == + x = 3 => return x + x = 4 => return(-x) + return (x+1) + +f 3 + +-- SquareMatrix coercion bug +-- Fixed by SCM on 4/3/91 + +)cl all + +s:SQMATRIX(2, INT) := matrix [[1,2],[2,3]] +s::SQMATRIX(2, FRAC INT) + + +-- SquareMatric resolve bug + +)cl all +Mat := SquareMatrix(2, Polynomial Integer) +s:Mat := matrix [[ 2*x + 1, x], [x, 1]] +s**3 +%::Polynomial(?) + +-- parsing bug +-- Fixed by BURGE on 4/18/91 + +)cl all +-2**2 -- Should return -4 + +-- # in constructor arguemnt list bug +-- Fixed by SCM on 4/9/91 + +)cl all +f: DMP([x,y], INT) := x**2-y**2 +coefficient(f, degree f) + +-- retract from EXPR to POLY +-- fixed by SCM and SUTOR on 5/1/91 + +)cl all +x+1::EXPR INT +%::POLY INT + +-- fixed by SCM in May + +)cl all +solve([[1,2],[2,3]],[-2,3]) + + +-- fixed by several people over a period of time +)cl all + +eval(m**2, m=[[1,2],[2,3]]) + +-- filtering various illegal declarations + +)cl all + +)set mes test off +r: Ring +w: RF INT +)set mes test on + +-- Correct representation of length 1 records + +)cl all + +r:Record(a: INT) := [1] + +-- Fast generation of POLY FLOAT graphics code + +)time on +p: POLY FLOAT := (x-1)**30 +draw(p, x=-1..1) + +)time )off + +-- Case broken in interpreter +-- fixed by SCM in early 1991 + +)cl all + +sayBranch x == _ + if x case INT then output "Integer Branch" _ + else if x case STRING then output "String Branch" _ + else if x case FLOAT then output "Float Branch" _ + else output "don't know" + +x:Union(INT,STRING,FLOAT) +x:=3 +sayBranch(x) + +-- bug in evaluateType +-- fixed by SCM in May 1991 + +)cl all + +RFI := FRAC POLY INT +g:DMP([x,y], RFI) := a**2*x**2/b**2 - c**2*y**2/d**2 +factor g + +-- bug in resolveTTSpecial +-- Fixed by SCM 6/2/91 + +)cl all + +f(u:DoubleFloat, v:DoubleFloat):DoubleFloat == u+v +g(u:DoubleFloat, v:DoubleFloat):DoubleFloat == sin(u+v) +h(u:DoubleFloat, v:DoubleFloat):DoubleFloat == u+cos(v) +draw(surface(f,g,h), 0..4, 0..2*%pi) + +-- check for package calling from categories +-- fixed by SCM 6/4/91 + +)cl all + +)set mes test off +(1+1)$Ring +)set mes test on + +-- UnivariateSeries coercions +-- Fixed by SCM 6/20/91 + +)cl all + +s := series(sin(a*x), x=0) +s - a*x +s - sin(a*x) + +-- Complex & AlgebraicNumber coercions +-- fixed by SCM 6/91 + +)cl all + +sin %i +sin sqrt 2 +%i*sqrt(2) +sin(%i*sqrt 2) +%i * sin(x) +sin(x/sqrt(2)) + +-- bug in resolve +-- fixed by SCM 8/12/91 + +)cl all + +)set test msg off +primaryDecomp xx +)set test msg on + + +-- functions with ADEFs were broken +-- fixwd by SCM 8/9/91 + +)cl all + +f l == + reduce((x,y) +-> l.1 + x + y, l) + +f [10,2,53] + +g l == + (x:INT):INT +-> l.x + +w := g [23,1,341,12] ; + +w(1) + w(3) +-- w(-1) removed tpd; causes testing to crash + +-- coerces RN to PF and POLY to EXPR +-- fixed by SCM 8/9/91 + +)cl all + +a := 2/3 +)set mes test off +a::PF 3 +)set mes test on + +b := x+1 +b:: EXPR FLOAT + +-- minivector use in coercion functions + +)cl all + +symbol(s:Symbol,i:Integer):Symbol == + st0:String:= convert(i) + st0:= concat(string(s),st0) + st0::Symbol + +f(a,b) == symbol(a,b) + +f('abc,3) + +-- coercing undeclared maps to Mapping types +-- fixed by SCM 9/3/91 +)cl all + +f := operator 'f +y := f(x) +foo(u) == sin(u) +eval(y, 'f, foo) + +-- package calling constants +-- fixed by SCM 9/3/91 + +)cl all + +init()$(PF 3) + +-- passing ADEFs to functions which require specific mapping types + +draw((x,y) +-> x**2 - y**2, -1..1, -1..1) + +-- DP bug. Don't know where this came from, but its fixed +-- DP makes problems: + + +dmp := DMP([u1,u2,u3],Fraction INT) +p : dmp := 2*u1**4*u2*u3 +e1 := degree p +-- the following doesn't work +e2 : DirectProduct(3,NonNegativeInteger) := e1 +sup(e1,e1) +-- if you give to many infos to the Interpreter it has problems +sup(e1,e1)$DirectProduct(3,NonNegativeInteger) + +-- Some other bug. +)clear all + +sum:=0 +m:=matrix [[1,2],[3,4]] +lastcol:=ncols(m) +for r in 1..nrows(m) repeat + -- interpreter having a value for "row" would cause it to hide + -- the system function + Row:=row(m,r) + for c in 1..lastcol repeat + sum:=sum+Row.c +sum + + +-- interpOnly mode left things in an incosistent state if it failed twice +-- fixed by SCM + +)cl all + +splitPoly(f,var) == + map(g +-> multivariate(g,var),monomials univariate(f,var)) + +g:=sin(x)+cos(x) +k:=kernels(g).1 + +)set mes test off +splitPoly([g],k) -- this is an incorrect call +)set mes test on +splitPoly(numer g,k) -- this is a correct call + +-- scoping of lambda variables +-- fixed by SCM in March, 1992 + +)cl all +f x == + g := (y:DoubleFloat):DoubleFloat +-> y+x + output(y+1) + g(x) + +f 3 + +-- coercing undeclared interpreter function to mapping type with +-- target which need to be coerced. +-- fixed by SCM in March, 1992 + +)cl all + +f x == 1/factorial(x) + +series(f, x=0) + +-- rule dependencies with dependencies on the operator postion + +)cl all +node_a == i1+i2+i3-i5+i6=0 +node_b == -i2-i3+i4-i6=0 +i1 == va/r1 +i2 == (va-vb)/r2 +i3 == (va-vb)/r3 +i4 == vb/r4 +node_a +node_b +ans == solve([node_a,node_b],[va,vb]) -- (*) +x1 == rhs(ans.1.1) +x2 == rhs(ans.1.2) +x1 -- (**) +r1 == 2 -- (***) +x1 -- (****) + +-- look for immediate data in operator position +-- fixed in March 1992 by SCM and RSS + +"asd" "sdfsdf" "dfgdfg" + +-- global variables that change type in a loop. +-- fixed by SCM +)clear all +s := 3.4 +while s > 1.0 repeat (s := 1/2; print s) +s + +)cl all + +f x == + free s + s := x + while s > 1.0 repeat (s := 1/2; print s) + s + +f(3.4) + +-- returns in sequences +-- fixed by SCM + +t x == + if x = 1 then (1; return [x]) + return [2] + +t 1 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/tetra.input.pamphlet b/src/input/tetra.input.pamphlet new file mode 100644 index 00000000..5b37429e --- /dev/null +++ b/src/input/tetra.input.pamphlet @@ -0,0 +1,85 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input tetra.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- Sierpinsky's Tetrahedron + +-- Bring DH matrices into the environment +)set expose add con DenavitHartenbergMatrix + +)read dhtri + +-- set up the coordinates of the corners of a tetrahedron +x1:DoubleFloat := sqrt(2.0@DoubleFloat/3.0@DoubleFloat) +x2:DoubleFloat := sqrt(3.0@DoubleFloat)/6 + +p1 := point [-0.5@DoubleFloat, -x2, 0.0@DoubleFloat] +p2 := point [0.5@DoubleFloat, -x2, 0.0@DoubleFloat] +p3 := point [0.0@DoubleFloat, 2*x2, 0.0@DoubleFloat] +p4 := point [0.0@DoubleFloat, 0.0@DoubleFloat, x1] + +-- The base of the tetrahedron +baseTriangle := [p2, p1, p3] + +-- The "middle triangle" inscribed in the base of the tetrahedon +mt := [0.5@DoubleFloat*(p2+p1), 0.5@DoubleFloat*(p1+p3), 0.5@DoubleFloat*(p3+p2)] + +-- The bases of the triangles of the subdivided tetrahedon +bt1 := [mt.1, p1, mt.2] +bt2 := [p2, mt.1, mt.3] +bt3 := [mt.2, p3, mt.3] +bt4 := [0.5@DoubleFloat*(p2+p4), 0.5@DoubleFloat*(p1+p4), 0.5@DoubleFloat*(p3+p4)] + +-- create the transformations which bring the base of the tetrahedron +-- to the bases of the subdivided tetrahedron +tt1 := tri2tri(baseTriangle, bt1) +tt2 := tri2tri(baseTriangle, bt2) +tt3 := tri2tri(baseTriangle, bt3) +tt4 := tri2tri(baseTriangle, bt4) + +-- Draw a Sierpinsky tetrahedron with n levels of recursive subdivision +drawPyramid(n) == + s := create3Space()$ThreeSpace DoubleFloat + dh := rotatex(0.0@DoubleFloat) + drawPyramidInner(s, n, dh) + makeViewport3D(s, "Sierpinsky Tetrahedron")$VIEW3D + +-- Recursively draw a Sierpinsky tetrahedron +drawPyramidInner(s, n, dh) == + n = 0 => makeTetrahedron(s, dh, n) + -- draw the 4 recursive pyramids + drawPyramidInner(s, n-1, dh * tt1) + drawPyramidInner(s, n-1, dh * tt2) + drawPyramidInner(s, n-1, dh * tt3) + drawPyramidInner(s, n-1, dh * tt4) + +-- draw a tetrahedron into the given space, with the given color, +-- transforming it by the given DH matrix +makeTetrahedron(sp, dh, color) == + w1 := dh*p1 + w2 := dh*p2 + w3 := dh*p3 + w4 := dh*p4 + polygon(sp, [w1, w2, w4]) + polygon(sp, [w1, w3, w4]) + polygon(sp, [w2, w3, w4]) + void() +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/textfile.input.pamphlet b/src/input/textfile.input.pamphlet new file mode 100644 index 00000000..1a81e924 --- /dev/null +++ b/src/input/textfile.input.pamphlet @@ -0,0 +1,35 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input TEXTFILE.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from TextFileXmpPage +)clear all + +f1: TextFile := open("/etc/group", "input") +f2: TextFile := open("/tmp/MOTD", "output") +l := readLine! f1 +writeLine!(f2, upperCase l) +while not endOfFile? f1 repeat + s := readLine! f1 + writeLine!(f2, upperCase s) +close! f1 +write!(f2, "-The-") +write!(f2, "-End-") +writeLine! f2 +close! f2 +)system rm /tmp/MOTD +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/tknot.input.pamphlet b/src/input/tknot.input.pamphlet new file mode 100644 index 00000000..707a4265 --- /dev/null +++ b/src/input/tknot.input.pamphlet @@ -0,0 +1,52 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input tknot.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- Create a (p,q) torus-knot with radius r around the curve. +-- The formula was derived by Larry Lambe. + +-- To produce a trefoil knot: +-- torusKnot(2, 3, 0.5, 10, 200) + +-- compile, don't interpret functions +)set function compile on + +-- read in the numeric generalized tube program +)read ntube + +-- Create a (p,q) torus-knot with radius r around the curve. +-- The formula was derived by Larry Lambe. +-- To produce a trefoil knot: +-- torusKnot(2, 3, 0.5) +torusKnot(p:DFLOAT, q:DFLOAT, r:DFLOAT, uSteps:PI, tSteps:PI):VIEW3D == + -- equation for the torus knot + knot := (t:DFLOAT):Point DFLOAT +-> + fac := 4/(2.2@DFLOAT-sin(q*t)) + fac * point [cos(p*t), sin(p*t), cos(q*t)] + -- equation for the cross section of the tube + circle := (u:DFLOAT, t:DFLOAT):Point DFLOAT +-> + r * point [cos u, sin u] + -- draw the tube around the knot + ntubeDrawOpt(knot, circle, 0..2*%pi, 0..2*%pi, var1Steps == uSteps, + var2Steps == tSteps) + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/torus.input.pamphlet b/src/input/torus.input.pamphlet new file mode 100644 index 00000000..81ea7b79 --- /dev/null +++ b/src/input/torus.input.pamphlet @@ -0,0 +1,22 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input torus.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +)cl all +f(x:SF):SF == x +torus : TUBE := tubePlot(sin t,cos t,0,f,0..2*%pi,0.5::SF,12,"closed") +makeViewport3D(torus,"torus")$VIEW3D +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/tree.input.pamphlet b/src/input/tree.input.pamphlet new file mode 100644 index 00000000..45a67188 --- /dev/null +++ b/src/input/tree.input.pamphlet @@ -0,0 +1,78 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input tree.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +)cl all +)load TREE BTREE +bt := BinaryTree INT +ebtree:=empty()$(BTREE INT) +insleaf:(INT,bt)->bt +insleaf(x,t)== + empty? t=> binaryTree(x)$(BTREE INT) + x> value t => binaryTree(left t,value t,insleaf(x,right t)) + binaryTree(insleaf(x,left t),value t,right t) +b:bt:=reduce(insleaf,[8,3,5,4,6,2,1,5,7],ebtree) +bleaf x == reduce(insleaf,x,ebtree) +fln:bt-> List INT +fln t== + empty? t => empty()$(List INT) + concat(fln left t,concat(value t,fln right t)) +fln b +split:(INT,bt)->List bt +split(x,t)== + empty? t=> [ebtree,ebtree] + x> value t => + a:=split(x,right t) + [binaryTree(left t,value t,a.1),a.2] + a:=split(x,left t) + [a.1,binaryTree(a.2,value t,right t)] +split(3,b) +insroot:(INT,bt)->bt +insroot(x,t)== + a:=split(x,t) + binaryTree(a.1,x,a.2) +broot x == reduce(insroot,x,ebtree) +a:List INT:=[8,3,9,4,6,2,1,5,7] +l1:=bleaf a +r1:=broot reverse a +(l1=r1)::Boolean +broot a +bleaf reverse a +mg:(bt,bt)->bt +mg(x,y)== + empty? x => y + empty? y => x + value x > value y => binaryTree(mg(y,left x),value x,right x) + binaryTree(left y,value y,mg(x,right y)) +mg1:(INT,bt)->bt +mg1(x,t)==mg(binaryTree x,t) +btourn:List INT-> bt +btourn x == reduce(mg1,x,ebtree) +btourn a +cmp:(List INT,List INT)-> Boolean +cmp(x,y)== x.2<y.2 +sort2 : List List INT -> List List INT +sort2 x== sort(cmp,x) +invert x==[i.1 for i in sort2 [[k,l] + for k in 1..#x for l in x]] +broot a +btourn invert a +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/triglim.input.pamphlet b/src/input/triglim.input.pamphlet new file mode 100644 index 00000000..88aed759 --- /dev/null +++ b/src/input/triglim.input.pamphlet @@ -0,0 +1,52 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input triglim.input} +\author{Clifton J. Williamson} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited MCMXCII. +@ +<<*>>= +<<license>> + +--% Limits involving trig and inverse trig functions +-- Some of these limits were taken from bug reports submitted before +-- changes were made to limit and related series packages. +-- Author: Clifton J. Williamson +-- Date Created: 27 August 1992 +-- Date Last Updated: 27 August 1992 +-- Keywords: limit, trigonometric function, inverse trigonometric function +-- References: + +)clear all + +-- in each case, the argument to 'atan' has a pole and the left-hand +-- and right-hand limits differ + +limit(atan(1/sin(x)),x = 0) + +limit(atan(sqrt(1 - x**2)/x),x = 0) + +limit(atan(-sin(x)/(cos(x) + a)),x = acos(-a)) + +limit(atan(sin(x)/(cos(x) + a)),x = acos(-a)) + +-- we'll get these next two if sqrt(1 - a**2) is considered to be +-- positive by SIGNEF + +limit(atan(1/(cos(x) + a)),x = acos(-a)) + +limit(atan(1/(sin(x) + a)),x = asin(-a)) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/tschirn.input.pamphlet b/src/input/tschirn.input.pamphlet new file mode 100644 index 00000000..8ad71ab4 --- /dev/null +++ b/src/input/tschirn.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input tschirn.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- @(#)tschirn.input 1.1 89/09/07 20:55:26 +draw(curve(3*(t**2-3),t*(t**2-3)),t = -3..3, [title "Tschirnhausen's Cubic"]) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/tsetcatbutcher.input.pamphlet b/src/input/tsetcatbutcher.input.pamphlet new file mode 100644 index 00000000..d3ed9451 --- /dev/null +++ b/src/input/tsetcatbutcher.input.pamphlet @@ -0,0 +1,81 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input TSETCATButcher.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +----------------------------------------------------------------------------- +--% Domains Definitions +----------------------------------------------------------------------------- + +)clear all +ls : List Symbol := [b1,x,y,z,t,v,u,w]; +V := OVAR(ls); +R := Integer; +E := IndexedExponents V; +P := NSMP(R, V); +LP := List(P); + +----------------------------------------------------------------------------- +--% Initialisations +----------------------------------------------------------------------------- + +b1: P := 'b1; +x: P := 'x; +y: P := 'y; +z: P := 'z; +t: P := 't; +u: P := 'u; +v: P := 'v; +w: P := 'w; + +f0 := b1 + y + z - t - w; +f1 := 2*z*u + 2*y*v + 2*t*w - 2*w**2 - w - 1 ; +f2 := 3*z*u**2 + 3*y*v**2 - 3*t*w**2 + 3*w**3 + 3*w**2 - t + 4*w ; +f3 := 6*x*z*v - 6*t*w**2 + 6*w**3 - 3*t*w + 6*w**2 - t + 4*w ; +f4 := 4*z*u**3+ 4*y*v**3+ 4*t*w**3- 4*w**4 - 6*w**3+ 4*t*w- 10*w**2- w- 1 ; +f5 := 8*x*z*u*v +8*t*w**3 -8*w**4 +4*t*w**2 -12*w**3 +4*t*w -14*w**2 -3*w -1 ; +f6 := 12*x*z*v**2+12*t*w**3 -12*w**4 +12*t*w**2 -18*w**3 +8*t*w -14*w**2 -w -1; +f7 := -24*t*w**3 + 24*w**4 - 24*t*w**2 + 36*w**3 - 8*t*w + 26*w**2 + 7*w + 1 ; + +lp := [f0,f1,f2,f3,f4,f5,f6,f7]; + +----------------------------------------------------------------------------- +--% Computations +----------------------------------------------------------------------------- + +T := WUTSET(R,E,V,P); + +medialSet(lp)$T + +characteristicSet(lp)$T + +characteristicSerie(lp)$T + +zeroSetSplit(lp)$T + + +T := REGSET(R,E,V,P) + +zeroSetSplit(lp)$T + +ST := SREGSET(R,E,V,P) + +zeroSetSplit(lp)$ST + +lmpack := LAZM3PK(R,E,V,P,T,ST); + +zeroSetSplit(lp,false)$lmpack +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/tsetcatchemical.input.pamphlet b/src/input/tsetcatchemical.input.pamphlet new file mode 100644 index 00000000..c452f68d --- /dev/null +++ b/src/input/tsetcatchemical.input.pamphlet @@ -0,0 +1,70 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input TSETCATChemical.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +----------------------------------------------------------------------------- +--% Domains Definitions +----------------------------------------------------------------------------- + +)clear all +ls : List Symbol := [x4,x3,x2,x1,t]; +V := OVAR(ls); +R := Integer; +E := IndexedExponents V +P := NSMP(R, V); +LP := List(P); + +----------------------------------------------------------------------------- +--% Initialisations +----------------------------------------------------------------------------- + +x1: P := 'x1; +x2: P := 'x2; +x3: P := 'x3; +x4: P := 'x4; +t: P := 't; + + +p1 := 2 - 7 * x1 + x1 ** 2 * x2 + t * (x3 - x1) ; +p2 := 6 * x1 - x1 ** 2 * x2 + 10 * t * (x4 - x2) ; +p3 := 2 - 7 * x3 + x3 ** 2 * x4 + t * (x1 - x3) ; +p4 := 6 * x3 - x3 **2 * x4 + 1 - t * (x2 - x4) ; + +lp := [p1,p2,p3,p4]; + + +----------------------------------------------------------------------------- +--% Computations +----------------------------------------------------------------------------- + +T := WUTSET(R,E,V,P) + +medialSet(lp)$T + +characteristicSet(lp)$T + +characteristicSerie(lp)$T + +zeroSetSplit(lp)$T + + +T := REGSET(R,E,V,P) + +zeroSetSplit(lp)$T + +zeroSetSplit(lp,false)$T + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/tsetcatvermeer.input.pamphlet b/src/input/tsetcatvermeer.input.pamphlet new file mode 100644 index 00000000..87cf897b --- /dev/null +++ b/src/input/tsetcatvermeer.input.pamphlet @@ -0,0 +1,55 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input TSETCATVermeer.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +----------------------------------------------------------------------------- +--% Domains Definitions +----------------------------------------------------------------------------- + +)clear all +ls : List Symbol := [w,v,u,y,x]; +V := OVAR(ls); +R := Integer; +E := IndexedExponents V; +P := NSMP(R, V); +LP := List(P); + +----------------------------------------------------------------------------- +--% Initialisations +----------------------------------------------------------------------------- + +x: P := 'x; +y: P := 'y; +u: P := 'u; +v: P := 'v; +w: P := 'w; + +p1 := (x - u) ** 2 + (y - v) ** 2 - 1 ; +p2 := v ** 2 - u ** 3 ; +p3 := 2 * v * (x - u) + 3 * u ** 2 * (y - v) ; +f1 := (3 * w * u ** 2 - 1) ; +f2 := (2 * w * v - 1) ; +p4 := f1 * f2 ; + +lp := [p1,p2,p3,p4] ; + + +T := REGSET(R,E,V,P) + +zeroSetSplit(lp)$T + +zeroSetSplit(lp,false)$T +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/tutchap1.input.pamphlet b/src/input/tutchap1.input.pamphlet new file mode 100644 index 00000000..dab8ee0e --- /dev/null +++ b/src/input/tutchap1.input.pamphlet @@ -0,0 +1,46 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input tutChap1.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> +1+1 +123^45 +2^(3+4) +4/3 +2/2 +a := 2 +b := a +a := 3 +b +i : Integer +i := 2/3 +i := 4/2 +c : PositiveInteger := 3 +(j, k, l) : Integer +)display names +)clear properties c i +%%(1) +1 + %%(-3) +1 _ + +_ + 2 +7 * 8 -- In the next chapter we shall move beyond elementary arithmetic. +-- Commenting alone doesn't increment the command count. +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/tutchap2.input.pamphlet b/src/input/tutchap2.input.pamphlet new file mode 100644 index 00000000..ae81f5f3 --- /dev/null +++ b/src/input/tutchap2.input.pamphlet @@ -0,0 +1,113 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input tutChap2.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> +solve(3*x=x+2) +x +solve(3*x - 1 = 0) +solve(3*x - 1) +solve(3*x^2 - 7*x + 2) +solve(x^2 - 2) +solve(x^4 - 8*x^3 + 23*x^2 - 28*x + 12) +factor(x^4 - 8*x^3 + 23*x^2 - 28*x + 12) +radicalSolve(x^2 - 2) +radicalSolve(x^5+x^2+1) +solve(x^2 - 2, 0.00001) +outputGeneral 6 +%%(11) +solve(x^2 - 2, 1/100000) +solve(x^2-2*x+3,0.00001) +complexSolve(x^2-2*x+3,0.00001) +solve((x^2 - 1.21) :: Polynomial Fraction Integer,0.00001) +radicalSolve(a*x^2 + b*x + c, x) +qs := %; -- the semicolon (;) inhibits AXIOM's output display +qs1 := qs.1 +x1 := rhs % +numeric rhs %%(9).1 +xs := map(rhs, qs) +xs.1 + xs.2 +xs.1 * xs.2 +solve [x + 2*y + z = 5, 2*x - y - z = 6, x + y + 2*z = 0] +solve [x^2 + y + 1, x + y^2 - 1] +solve([x^2 + y + 1, x + y^2 - 1], 0.00001) +complexSolve([x^2 + y + 1, x + y^2 - 1], 0.00001) +solve([x^2-y^2, (x^2 -1)/(x+y)]) +a := (x + y)/2 +a :: Fraction Polynomial Integer +a +a := a :: Fraction Polynomial Integer +a +a := (x + y)/2; +b : Fraction Polynomial Integer := a +a : Fraction Polynomial Integer := a +y := x^2 + 3*x + 2 +y := y :: Factored Polynomial Integer +)clear p y -- since y has a value +P := (y + z)*x^2 + z*x + c +P :: UP(x, POLY INT) +P :: UP(x, UP(y, POLY INT)) +P := P :: UP(x, UP(y, UP(z, UP(c, INT)))) +)clear p all +sum(1/((3*r-2)*(3*r+1)*(3*r+4)), r=1..n) +limit(%, n=%plusInfinity) +SA := sum(a + (r-1)*b, r = 1..n) +SA :: UP(a, Polynomial Fraction Integer) +SA :: UP(a, UP(b, FRAC FR POLY INT)) +SG := sum(a*b^(r-1), r=1..n) +)set stream calculate 5 +series((1 + x)^n, x=0) +taylor((1 + x)^n, x=0) +%.6 +xPositive? == (x :: Float > 0) +x := 17-sqrt(300); +xPositive? +x := 18-sqrt(300); +xPositive? +)clear p x +x +xPositive? +halfSum(x, y) == (x + y)/2 +halfSum(1, 3) +halfSum(1.5, 2.5) +halfSum(2, 4) +f(n)==#((2^n)::String) +f(20) +f(n) == (local length; length := #((2^n)::String); _ + if length > 120 then "Too long!" else length) +f 100 +f 1000 +f(n : PositiveInteger) : Any == _ + (local length; length := #((2^n)::String); _ + if length > 120 then "Too long!" else length) +f 0 +g1(x) == 2*x +g2(x) == % +G := 2*x +g3(x) == G +g1(1) +g2(2) +g3(3) +l1 := [1,2,3,4,5] +l2 := map(x +-> x^2,l1) +BE(n) == taylor((1+x)^n, x=0) +BE(5) +BE(6) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/tutchap3.input.pamphlet b/src/input/tutchap3.input.pamphlet new file mode 100644 index 00000000..7ddc0bff --- /dev/null +++ b/src/input/tutchap3.input.pamphlet @@ -0,0 +1,103 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input tutChap3.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> +D(x^2,x) +D(sin x,x) +D(sin(log(x/tan(x))),x) +D(tan x,x,2) +D(tan x,x,3) +D(sin(x*y),x) +D(sin(x*y),[y,x,x]) +dalembert := operator _[_] +dalembert u +J0 := operator script(J,[[0]]::List List OutputForm) +symbol[sub1,sub2] +f := operator 'f; g := operator 'g; +D(f(x)*g(x),x) +D(f(x)/g(x),x) +D(f(g(x)),x) +r := operator 'r; theta := operator 'theta ; +x(t) == r(t)*cos theta t +y(t) == r(t)*sin theta t +D(x(t),t) +D(y(t),t) +)clear all +r := operator 'r; theta := operator 'theta; +r := r(t); theta := theta(t); +x == r*cos theta; y == r*sin theta; +ax := D(x,t,2); ay := D(y,t,2); +eval(ax,theta=0) +eval(ay,theta=0) +f := operator 'f +D(f(r,theta),t) +D(f(r,theta),t,2) +)clear p x -- since x has a value +integrate(x^2,x) +integrate(%e^x,x) +integrate(1/x,x) +integrate(sin x,x) +I ==> integrate +I(x^3,x) +I(sin sin x,x) +I(x^n,x) +% - 1/(n + 1) +limit(%,n=-1) +In := %% 17 +limit(%,n=-1) +)set stream calculate 5 +series(In,n=-1) -- expand In in powers of (n+1) +In2 := In - x*%e^(-log(x))*(n+1)^(-1) +limit(In2,n=-1) +limit(x^(n+1)/(n+1),n=-1) +limit(x^(n+1)/(n+1)-1/(n+1),n=-1) +I(1/(a+x^2),x) +series(second %, a=0) +second %% 27 +(rule atan A == acot(1/A)) % +I(atan x - acot(1/x),x) +atanRule := rule atan(A) == acot(1/A) +atanRule atan x +rSimp := rule(sqrt(x^(2*(n|even? n))) == x^n) +rSimp(sqrt(x^4)) +rSimp(sqrt(x^6)) +f := operator 'f; g := operator 'g; dprod := D(f(x)*g(x),x) +(rule f x == sin x)% +(rule g x == exp x)% +(rule (f x == sin x; g x == cos x))dprod +substitutions := (rule (f x == sec x; g x == csc x)) +substitutions dprod +I(cot x, x) +normalize % +simplify % +(rule N*log A + M*log B == log(A^N*B^M)) % +(rule log(A^N) == N*log A)% +ii:=I(1/(x^3 + x + 1),x) +T0:= (tower ii).2 ::EXPR INT +f:=definingPolynomial T0 +outputGeneral 5 +solve((numerator f) :: POLY INT,0.00001) +eval(ii :: EXPR COMPLEX FLOAT,T0= rhs first %) +solve((numerator f) :: POLY INT,1/100000) +eval(ii,T0=rhs first %) :: EXPR Complex Integer +complexForm % +% :: EXPR Float +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/tutchap4.input.pamphlet b/src/input/tutchap4.input.pamphlet new file mode 100644 index 00000000..98cc4d3b --- /dev/null +++ b/src/input/tutchap4.input.pamphlet @@ -0,0 +1,43 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input tutChap4.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> +s := operator 's +solve(D(s(t),t,2) = -k^2*s(t), s, t) +solve(D(s(t),t,2) = -k^2*s(t), s, t=0, [A, 0]) +DE := D(s(t),t,2) = -k^2*s(t) - c*D(s(t),t) +S := solve(DE, s, t=0, [A, 0]) +S1 == eval(S,[A=1,k=1,c=3]) +draw(S1, t=0..100) +S +kernels S +k3 := %.3 +eval(S,k3,%i*sqrt(4*k^2 - c^2)) +ST := trigs % +S2 == eval(ST,[A=1,k=1,c=0.1]) +draw(S2::EXPR FLOAT,t=0..100) +S3==eval(S,[A=1,k=1,c=0.1]) +draw(S3,t=0..100) +function(S1,'s1,'t) +s1(1) +function(S2,'s2,'t) +s2(0.1) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/tutchap67.input.pamphlet b/src/input/tutchap67.input.pamphlet new file mode 100644 index 00000000..f730cf8f --- /dev/null +++ b/src/input/tutchap67.input.pamphlet @@ -0,0 +1,170 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input tutChap67.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> +(vecA,vecB) : Vector Integer +vecA := vector [3,0,4] +vecB := vector [2,4,-2] +vecA + vecB +vecA - vecB +5*vecA +vecB*7 +vecB/2 +1/2 * vecB +vecA * (1/2) +dot(vecA,vecB) +sqrt dot(vecA,vecA) +magnitude vecA +direction x == 1/magnitude x * x +direction vecA +magnitude direction vecB +p := vector [u1*t,u2*t,u3*t-1/2*g*t^2] +D(p,t) +DV(s,t) == map(x+->D(x,t),s) +v := DV(p,t) -- the velocity, +a := DV(v,t) -- acceleration +j := DV(a,t) -- and jerk +)clear properties all +s := operator 's; +sSol := solve(D(s(t),t,2) - aF + r/m*D(s(t),t),s,t=0,[0,u]) +u := vector [ux,uy] +aF := vector [0,-g] +function(sSol ,'s,'t) +s t +function(numerator sSol,'n,'t) +function(1/denominator sSol*n(t),'s,'t) +s t +outputGeneral 6 +map(x+->eval(x,[m=1,ux=20,uy=10,r=0.1,g=9.8]),s t) +draw(curve(%.1,%.2),t=0..2) +map(x+->eval(x,[m=1,ux=20,uy=10,r=0,g=9.8]),s t) +map(x+->limit(x,r=0),s t) +map(x+->eval(x,[m=1,ux=20,uy=10,g=9.8]),%::Vector Expression Integer) +draw(curve(%.1,%.2),t=0..2) +Integer has Ring +PositiveInteger has Ring +has(Fraction Integer,DivisionRing) +has(Integer,DivisionRing) +List has Group +List ? has Group +Field has Ring +Group has Ring +vecC := vector [0,x +-> x,[a,b,c]] +matA := matrix [[x,0],[7.3,%i]] +vecC(1) +vecC.2 +vecC 3 +vecD : Vector Integer := [1,2,3,4,5,6] +matB : Matrix Integer := [[1,2,3],[4,5,6]] +vector [1,2,3] :: Matrix Integer +matA(1,2) +matrix [[matA]] +matrix [[matA::SquareMatrix(2,Polynomial Complex Float)]] +matrix [[squareMatrix matA]] +matC := matrix [[a,b,c],[d,e,f]] +lvec := vector [2,3] +rvec := vector [4,5,6] +lvec * matC +matC * rvec +lrvec := vector [1,2] +lrvec * ((matrix [[a,b],[c,d]] * lrvec) :: Matrix Polynomial Integer) +vecD := new(5,0) +new(3,3,0)$Matrix Integer +Z3 := %; +I3 := Z3; I3(1,1) := 1; I3(2,2) := 1; I3(3,3) := 1; +I3 +I3 := Z3; for k in [1,2,3] repeat I3(k,k) := 1 +I3 +I3 := Z3; for k in 1..3 repeat I3(k,k) := 1 +I3 +expand(-7/2..7/3) +for i in 11..20 repeat _ + ( print i; _ + if prime? i then messagePrint(" (That was prime.)")$OutputForm ) +poly := 0; +for i in [1,2,3,4] for c in ['a,'b,'c,'d] repeat poly := poly + i*c +poly +vecC := vector [n^2 for n in 1..3] +hilbert3 := matrix [[1/(i+j) for i in 1..3] for j in 1..3] +I3 := matrix [[((m,n)+->if m=n then 1 else 0)(i,j) _ + for i in 1..3] for j in 1..3] +diagonalMatrix [1,1,1] +inverse hilbert3 +% * hilbert3 +matC := matrix [[a,b],[c,d]] +inverse matC +determinant matC +(x-a)^2 + (y-b)^2 - r^2 = 0 +row1 := [1,x,y,x^2+y^2] +row2 := [eval(row1.i,[x,y],[0,1]) for i in 1..4] +row3 := [eval(row1.i,[x,y],[1,0]) for i in 1..4]; +row4 := [eval(row1.i,[x,y],[-1,-1]) for i in 1..4]; +determinant [row1,row2,row3,row4] = 0 +solve([[1/(i+j) for i in 1..3] for j in 1..3],[3,5,7]) +matD := matrix [[1,2,3,4],[2,3,4,5],[3,4,5,6],[4,5,6,7]] +c := vector [5,6,7,8] +solve(matD,c) +horizConcat(matD,c) +rank % +rank matD +solve([[2,3,4,5],[3,4,5,6],[4,5,6,7]],[5,6,7]) +subMatrix(matD,1,3,1,4) +rank horizConcat(matD,vector [5,6,7,9]) +solve(matD,[5,6,7,9]) +hilbert3 :: Matrix DoubleFloat -- continuing the previous session +% * inverse % +matrix [[1/(i+j) for i in 1..11] for j in 1..11]::Matrix DoubleFloat; +badUnit := % * inverse %; +diagEls := set [%(i,i) for i in 1..11]; +min diagEls +max diagEls +offDiags := empty()$Set DoubleFloat +for i in 1..11 repeat _ + for j in 1..11 | i ~= j repeat _ + offDiags := union(offDiags,badUnit(i,j)) +min offDiags +max offDiags +hilbert11 := matrix [[1/(i+j) for i in 1..11] for j in 1..11]; +% * inverse % +detHilbert3 := determinant hilbert3 +detHilbert11 := determinant hilbert11 +% :: DoubleFloat +determinant(hilbert11::Matrix DoubleFloat) +test3 := hilbert3 :: Matrix Polynomial Fraction Integer; +test3(1,1) := (1 + eps)/2; +determinant test3 +(% - detHilbert3)/detHilbert3 +for i in 1..3 repeat for j in 1..3 repeat _ + test3(i,j) := hilbert3(i,j) + (2*randnum(2) - 1)*eps +test3 +(determinant test3 - detHilbert3)/detHilbert3 +error3 := matrix [[eps[i,j] for i in 1..3] for j in 1..3] +test3 := hilbert3 + t*error3; +detErr := (determinant test3 - detHilbert3)/detHilbert3; +detErrReduced := coefficient(%,'t,1) +coefficient(detErr,'t,0) +epses := variables detErrReduced +coefs := coefficients detErrReduced +index := first sort((i,j)+->abs coefs.i > abs coefs.j, expand(1..9)) +epses.5 +coefs.5 +sort((i,j)+->abs i > abs j, coefs).2 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/typo.input.pamphlet b/src/input/typo.input.pamphlet new file mode 100644 index 00000000..a3283fe3 --- /dev/null +++ b/src/input/typo.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input typo.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- @(#)typo.input 1.1 89/09/07 20:55:28 +draw(curve(cos(7*t)*sin(t),sin(7*t)*cos(t)), t = 0..2*%pi) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/uniseg.input.pamphlet b/src/input/uniseg.input.pamphlet new file mode 100644 index 00000000..ed266a5d --- /dev/null +++ b/src/input/uniseg.input.pamphlet @@ -0,0 +1,31 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input UNISEG.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from UniversalSegmentXmpPage +)clear all + +pints := 1.. +nevens := (0..) by -2 +useg: UniversalSegment(Integer) := 3..10 +hasHi pints +hasHi nevens +hasHi useg +expand pints +expand nevens +expand [1, 3, 10..15, 100..] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/up.input.pamphlet b/src/input/up.input.pamphlet new file mode 100644 index 00000000..4a4a4283 --- /dev/null +++ b/src/input/up.input.pamphlet @@ -0,0 +1,58 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input UP.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from UnivariatePolynomialXmpPage +)clear all + +(p,q) : UP(x,INT) +p := (3*x-1)**2 * (2*x + 8) +q := (1 - 6*x + 9*x**2)**2 +p**2 + p*q +leadingCoefficient p +degree p +reductum p +gcd(p,q) +lcm(p,q) +resultant(p,q) +D p +p(2) +p(q) +q(p) +l := coefficients p +reduce(gcd,l) +content p +ux := (x**4+2*x+3)::UP(x,INT) +vectorise(ux,5) +squareTerms(p) == + reduce(+,[t**2 for t in monomials p]) +p +squareTerms p +(r,s) : UP(a1,FRAC INT) +r := a1**2 - 2/3 +s := a1 + 4 +r quo s +r rem s +d := divide(r, s) +r - (d.quotient * s + d.remainder) +integrate r +integrate s +t : UP(a1,FRAC POLY INT) +t := a1**2 - a1/b2 + (b1**2-b1)/(b2+3) +u : FRAC POLY INT := t +u :: UP(b1,?) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/vector.input.pamphlet b/src/input/vector.input.pamphlet new file mode 100644 index 00000000..b1730695 --- /dev/null +++ b/src/input/vector.input.pamphlet @@ -0,0 +1,33 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input VECTOR.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from VectorXmpPage +)clear all + +u : VECTOR INT := new(5,12) +v : VECTOR INT := vector([1,2,3,4,5]) +#(v) +v.2 +v.3 := 99 +v +5 * v +v * 7 +w : VECTOR INT := vector([2,3,4,5,6]) +v + w +v - w +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/vectors.input.pamphlet b/src/input/vectors.input.pamphlet new file mode 100644 index 00000000..fc6acef8 --- /dev/null +++ b/src/input/vectors.input.pamphlet @@ -0,0 +1,71 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input vectors.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1991. +@ +<<*>>= +<<license>> + +)r arrows +clipValue :SF := 6 +clipFun(x) == min(max(x,-clipValue),clipValue) +realSteps :INT := 25 +imagSteps :INT := 25 +C := Complex SF +S := Segment SF +drawComplexVectorField :(C -> C, S, S) -> VIEW3D +drawComplexVectorField(f,realRange,imagRange) == + delReal := (hi realRange - lo realRange)/realSteps + delImag := (hi imagRange - lo imagRange)/imagSteps + sp := create3Space()$ThreeSpace SF + real := lo realRange + for i in 1..realSteps + 1 repeat + imag := lo imagRange + for j in 1..imagSteps + 1 repeat + z := f complex(real, imag) + arg := argument z + len := clipFun sqrt norm z + p1 := point[real, imag, 0.0@SF, arg] + scaleLen := delReal * len + p2 := point[p1.1 + scaleLen * cos(arg), + p1.2 + scaleLen * sin(arg), 0.0@SF, arg] + arrow := makeArrow(p1, p2) + for a in arrow repeat curve(sp, a) + imag := imag + delImag + real := real + delReal + makeViewport3D(sp, "Complex Vector Field")$VIEW3D + +drawComplex :(C->C, S, S) -> VIEW3D +drawComplex(f, realRange, imagRange) == + deltaReal :SF := (hi realRange - lo realRange)/realSteps + deltaImag :SF := (hi imagRange - lo imagRange)/imagSteps + llp:List List Point SF := [] + real :SF := lo realRange + for i in 1..realSteps + 1 repeat + imag :SF := lo imagRange + lp := []$(List Point SF) + for j in 1..imagSteps + 1 repeat + z :COMPLEX SF := f(complex(real, imag)) + pt :Point SF := point[real, imag, clipFun sqrt norm z, argument z] + lp := cons(pt, lp) + imag := imag + deltaImag + real := real + deltaReal + llp := cons(reverse! lp, llp) + llp := reverse! llp + makeViewport3D(mesh(llp), "Complex Function")$VIEW3D +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/viewdef.input.pamphlet b/src/input/viewdef.input.pamphlet new file mode 100644 index 00000000..d9fc38ab --- /dev/null +++ b/src/input/viewdef.input.pamphlet @@ -0,0 +1,88 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input viewdef.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1994. +@ +<<*>>= +<<license>> +-- test for ViewDefaultsPackage package + +--Operations to set 2D graph defaults: + +axesColorDefault dark blue() + +lineColorDefault pastel yellow() + +pointColorDefault bright red() + +pointSizeDefault(5) + +unitsColorDefault dim green() + +viewDefaults() + + +--Operations which return 2D graph default information: + +axesColorDefault() + +lineColorDefault() + +pointColorDefault() + +pointColorDefault() + +unitsColorDefault() + + +--Operations to set 3D graph defaults: + +tubePointsDefault(6) + +tubeRadiusDefault(.2) + +var1StepsDefault(35) + +var2StepsDefault(35) + +--Operations which return 3D graph default information: + +tubePointsDefault() + +tubeRadiusDefault() + +var1StepsDefault() + +var2StepsDefault() + +--Operations on viewport/output characteristics: + +viewPosDefault([100,100]) + +viewPosDefault() + +viewSizeDefault([200,200]) + +viewSizeDefault() + +viewWriteAvailable() + +viewWriteDefault(["PIXMAP","POSTSCRIPT"]) + +viewWriteDefault() +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/void.input.pamphlet b/src/input/void.input.pamphlet new file mode 100644 index 00000000..07059693 --- /dev/null +++ b/src/input/void.input.pamphlet @@ -0,0 +1,28 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input VOID.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from VoidXmpPage +)clear all + +a : Integer +)set message void on +b : Fraction Integer +)set message void off +3::Void +% :: PositiveInteger +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/wester.input.pamphlet b/src/input/wester.input.pamphlet new file mode 100644 index 00000000..5e08228b --- /dev/null +++ b/src/input/wester.input.pamphlet @@ -0,0 +1,395 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input wester.input} +\author{Michael Wester} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> + + +-- ----------[ A x i o m ]---------- +-- ---------- Initialization ---------- +)set messages autoload off +)set messages time on +)set quit unprotected +)set streams calculate 7 +-- ---------- Numbers ---------- +-- Let's begin by playing with numbers: infinite precision integers +factorial(50) +factor(%) +-- Infinite precision rational numbers +1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + 1/10 +-- Arbitrary precision floating point numbers +digits(50); +-- This number is nearly an integer +exp(sqrt(163.)*%pi) +digits(20); +-- Special functions +besselJ(2, 1 + %i) +-- Complete decimal expansion of a rational number +decimal(1/7) +-- Continued fractions +continuedFraction(%pi) +-- Simplify an expression with nested square roots +s1:=sqrt(2*sqrt(3) + 4) +p:POLY FRAC INT:= (ratPoly(s1::Expression Integer)::SUP FRAC INT).'z +solp:=radicalSolve p +rhs select (z+-> real abs (complexNumeric rhs z - complexNumeric s1) < 1.E-19,solp).1 +simplify(s1) +-- Try a more complicated example (from the Putnam exam) +s1:=sqrt(14 + 3*sqrt(3 + 2*sqrt(5 - 12*sqrt(3 - 2*sqrt(2))))) +p:POLY FRAC INT:= (ratPoly(s1::Expression Integer)::SUP FRAC INT).'z +solp:=radicalSolve p +rhs select (z+-> real abs (complexNumeric rhs z - complexNumeric s1) < 1.E-19,solp).1 +simplify(s1) +-- Cardinal numbers +2*Aleph(0) - 3 +-- ---------- Statistics ---------- +-- ---------- Algebra ---------- +-- Numbers are nice, but symbols allow for variability---try some high school +-- algebra: rational simplification +(x**2 - 4)/(x**2 + 4*x + 4) +-- This example requires more sophistication +(%e**x - 1)/(%e**(x/2) + 1) +normalize(%) +-- Expand and factor polynomials +(x + 1)**20 +D(%, x) +factor(%) +x**100 - 1 +factor(%) +-- Factor polynomials over finite fields and field extensions +p:= x**4 - 3*x**2 + 1 +factor(p) +phi:= rootOf(phi**2 - phi - 1); +factor(p, [phi]) +factor(p :: Polynomial(PrimeField(5))) +expand(%) +-- Partial fraction decomposition +(x**2 + 2*x + 3)/(x**3 + 4*x**2 + 5*x + 2) +padicFraction( + partialFraction(numerator(%) :: UnivariatePolynomial(x, Fraction Integer), + factor(denominator(%) :: Polynomial Integer) :: + Factored UnivariatePolynomial(x, Fraction Integer))) +-- ---------- Inequalities ---------- +-- ---------- Trigonometry ---------- +-- Trigonometric manipulations---these are typically difficult for students +r:= cos(3*x)/cos(x) +real(complexNormalize(%)) +real(normalize(simplify(complexNormalize(r)))) +-- Use rewrite rules +sincosAngles:= rule _ + (cos((n | integer?(n)) * x) == _ + cos((n - 1)*x) * cos(x) - sin((n - 1)*x) * sin(x); _ + sin((n | integer?(n)) * x) == _ + sin((n - 1)*x) * cos(x) + cos((n - 1)*x) * sin(x) ) +sincosAngles r +-- ---------- Determining Zero Equivalence ---------- +-- The following expressions are all equal to zero +sqrt(997) - (997**3)**(1/6) +sqrt(999983) - (999983**3)**(1/6) +s1:=(2**(1/3) + 4**(1/3))**3 - 6*(2**(1/3) + 4**(1/3)) - 6 +simplify(%) +p:POLY FRAC INT:= (ratPoly(s1::Expression Integer)::SUP FRAC INT).'z +solp:=radicalSolve p +rhs select (z+-> real abs (complexNumeric rhs z - complexNumeric s1) < 1.E-19,solp).1 +-- This expression is zero for x, y > 0 and n not equal to zero +x**(1/n)*y**(1/n) - (x*y)**(1/n) +normalize(%) +-- See Joel Moses, ``Algebraic Simplification: A Guide for the Perplexed'', +-- CACM, Volume 14, Number 8, August 1971 +expr:= log(tan(1/2*x + %pi/4)) - asinh(tan(x)) +complexNormalize(%) +-- Use a roundabout method---show that expr is a constant equal to zero +D(expr, x) +normalize(rootSimp(expand(simplify(%)))) +normalize(eval(expr, x = 0)) +expr:=log((2*sqrt(r) + 1)/sqrt(4*r + 4*sqrt(r) + 1)) +D(expr, x) +eval(expr, x = 0) +(4*r + 4*sqrt(r) + 1)**(sqrt(r)/(2*sqrt(r) + 1)) _ + * (2*sqrt(r) + 1)**(1/(2*sqrt(r) + 1)) - 2*sqrt(r) - 1 +normalize(%) +-- ---------- The Complex Domain ---------- +-- Complex functions---separate into their real and imaginary parts +rectform(z) == real(z) + %i*imag(z) +rectform(log(3 + 4*%i)) +simplify(rectform(tan(x + %i*y))) +-- Check for branch abuse. See David R. Stoutemyer, ``Crimes and Misdemeanors +-- in the Computer Algebra Trade'', Notices of the AMS, Volume 38, Number 7, +-- September 1991. This first expression can simplify to sqrt(x y)/sqrt(x), +-- but no further in general (consider what happens when x, y = -1). +sqrt(x*y*abs(z)**2) / (sqrt(x)*abs(z)) +rootSimp % +-- If z = -1, sqrt(1/z) is not equal to 1/sqrt(z) +sqrt(1/z) - 1/sqrt(z) +-- If z = 3 pi i, log(exp(z)) is not equal to z +log(%e**z) +normalize(%) +-- The principal value of this expression is (10 - 4 pi) i +log(%e**(10*%i)) +normalize(%) +-- If z = pi, arctan(tan(z)) is not equal to z +atan(tan(z)) +-- If z = 2 pi i, sqrt(exp(z)) is not equal to exp(z/2) +sqrt(%e**z) - %e**(z/2) +-- ---------- Equations ---------- +-- Manipulate an equation using a natural syntax +(x = 0)/2 + 1 +-- Solve various nonlinear equations---this cubic polynomial has all real roots +radicalSolve(3*x**3 - 18*x**2 + 33*x - 19 = 0, x) +map(e +-> lhs(e) = rectform(rhs(e)), %) +-- Some simple seeming problems can have messy answers +eqn:= x**4 + x**3 + x**2 + x + 1 = 0 +radicalSolve(eqn, x) +-- Check one of the answers +eval(eqn, %.1) +%e**(2*x) + 2*%e**x + 1 = z +solve(%, x) +-- This equation is already factored and so *should* be easy to solve +(x + 1) * (sin(x)**2 + 1)**2 * cos(3*x)**3 = 0 +solve(%, x) +-- The following equations have an infinite number of solutions (let n be an +-- arbitrary integer): z = 0 [+ n 2 pi i] +solve(%e**z = 1, z) +-- x = pi/4 [+ n pi] +solve(sin(x) = cos(x), x) +solve(tan(x) = 1, x) +-- x = 0, 0 [+ n pi, + n 2 pi] +solve(sin(x) = tan(x), x) +-- This equation has no solutions +solve(sqrt(x**2 + 1) = x - 2, x) +-- Solve a system of linear equations +eq1:= x + y + z = 6 +eq2:= 2*x + y + 2*z = 10 +eq3:= x + 3*y + z = 10 +-- Note that the solution is parametric +solve([eq1, eq2, eq3], [x, y, z]) +-- Solve a system of nonlinear equations +eq1:= x**2*y + 3*y*z - 4 = 0 +eq2:= -3*x**2*z + 2*y**2 + 1 = 0 +eq3:= 2*y*z**2 - z**2 - 1 = 0 +-- Solving this by hand would be a nightmare +solve([eq1, eq2, eq3], [x, y, z]) +-- ---------- Matrix Algebra ---------- +m:= matrix([[a, b], [1, a*b]]) +-- Invert the matrix +minv:= inverse(m) +m * minv +-- Define a Vandermonde matrix (useful for doing polynomial interpolations) +matrix([[1, 1, 1, 1 ], _ + [w, x, y, z ], _ + [w**2, x**2, y**2, z**2], _ + [w**3, x**3, y**3, z**3]]) +determinant(%) +-- The following formula implies a general result +factor(%) +-- Compute the eigenvalues of a matrix from its characteristic polynomial +m:= matrix([[ 5, -3, -7], _ + [-2, 1, 2], _ + [ 2, -3, -4]]) +characteristicPolynomial(m, lambda) +solve(% = 0, lambda) +-- ---------- Tensors ---------- +-- ---------- Sums and Products ---------- +-- Sums: finite and infinite +summation(k**3, k = 1..n) +sum(k**3, k = 1..n) +limit(sum(1/k**2 + 1/k**3, k = 1..n), n = %plusInfinity) +-- Products +product(k, k = 1..n) +-- ---------- Calculus ---------- +-- Limits---start with a famous example +limit((1 + 1/n)**n, n = %plusInfinity) +limit((1 - cos(x))/x**2, x = 0) +-- Apply the chain rule---this is important for PDEs and many other +-- applications +y:= operator('y); +x:= operator('x); +D(y(x(t)), t, 2) +)clear properties x y +-- ---------- Indefinite Integrals ---------- +1/(x**3 + 2) +-- This would be very difficult to do by hand +integrate(%, x) +D(%, x) +-- This example involves several symbolic parameters +integrate(1/(a + b*cos(x)), x) +map(simplify, map(f +-> D(f, x), %)) +-- Calculus on a non-smooth (but well defined) function +D(abs(x), x) +integrate(abs(x), x) +-- Calculus on a piecewise defined function +a(x) == if x < 0 then -x else x +D(a(x), x) +integrate(a(x), x) +)clear properties a +-- The following two integrals should be equivalent. The correct solution is +-- [(1 + x)^(3/2) + (1 - x)^(3/2)] / 3 +integrate(x/(sqrt(1 + x) + sqrt(1 - x)), x) +integrate((sqrt(1 + x) - sqrt(1 - x))/2, x) +-- ---------- Definite Integrals ---------- +-- The following two functions have a pole at zero +integrate(1/x, x = -1..1) +integrate(1/x**2, x = -1..1) +-- Different branches of the square root need to be chosen in the intervals +-- [0, 1] and [1, 2]. The correct results are 4/3, [4 - sqrt(8)]/3, +-- [8 - sqrt(8)]/3, respectively. +integrate(sqrt(x + 1/x - 2), x = 0..1) +integrate(sqrt(x + 1/x - 2), x = 0..1, "noPole") +integrate(sqrt(x + 1/x - 2), x = 1..2) +integrate(sqrt(x + 1/x - 2), x = 1..2, "noPole") +integrate(sqrt(x + 1/x - 2), x = 0..2) +integrate(sqrt(x + 1/x - 2), x = 0..2, "noPole") +-- Contour integrals +integrate(cos(x)/(x**2 + a**2), x = %minusInfinity..%plusInfinity) +integrate(cos(x)/(x**2 + a**2), x = %minusInfinity..%plusInfinity, "noPole") +-- Integrand with a branch point +integrate(t**(a - 1)/(1 + t), t = 0..%plusInfinity) +integrate(t**(a - 1)/(1 + t), t = 0..%plusInfinity, "noPole") +-- Multiple integrals: volume of a tetrahedron +integrate(integrate(integrate(1, z = 0..c*(1 - x/a - y/b)), _ + y = 0..b*(1 - x/a)), _ + x = 0..a) +-- ---------- Series ---------- +-- Taylor series---this first example comes from special relativity +1/sqrt(1 - (v/c)**2) +series(%, v = 0) +1/%**2 +tsin:= series(sin(x), x = 0) +tcos:= series(cos(x), x = 0) +-- Note that additional terms will be computed as needed +tsin/tcos +series(tan(x), x = 0) +-- Look at the Taylor series around x = 1 +)set streams calculate 1 +log(x)**a*exp(-b*x) +series(%, x = 1) +)set streams calculate 7 +-- Compare the Taylor series of two different formulations of a function +taylor(log(sinh(z)) + log(cosh(z + w)), z = 0) +% - taylor(log(sinh(z) * cosh(z + w)), z = 0) +series(log(sinh(z)) + log(cosh(z + w)), z = 0) +% - series(log(sinh(z) * cosh(z + w)), z = 0) +-- Power series (compute the general formula) +log(sin(x)/x) +series(%, x = 0) +exp(-x)*sin(x) +series(%, x = 0) +-- Derive an explicit Taylor series solution of y as a function of x from the +-- following implicit relation +y:= operator('y); +x = sin(y(x)) + cos(y(x)) +seriesSolve(%, y, x = 1, 0) +)clear properties y +-- Pade (rational function) approximation +pade(1, 1, taylor(exp(-x), x = 0)) +-- ---------- Transforms ---------- +-- Laplace and inverse Laplace transforms +laplace(cos((w - 1)*t), t, s) +inverseLaplace(%, s, t) +-- ---------- Difference and Differential Equations ---------- +-- Second order linear recurrence equation +r:= operator('r); +r(n + 2) - 2 * r(n + 1) + r(n) = 2 +[%, r(0) = 1, r(1) = m] +)clear properties r +-- Second order ODE with initial conditions---solve first using Laplace +-- transforms +f:= operator('f); +ode:= D(f(t), t, 2) + 4*f(t) = sin(2*t) +map(e +-> laplace(e, t, s), %) +-- Now, solve the ODE directly +solve(ode, f, t = 0, [0, 0]) +-- First order linear ODE +y:= operator('y); +x**2 * D(y(x), x) + 3*x*y(x) = sin(x)/x +solve(%, y, x) +-- Nonlinear ODE +D(y(x), x, 2) + y(x)*D(y(x), x)**3 = 0 +solve(%, y, x) +-- A simple parametric ODE +D(y(x, a), x) = a*y(x, a) +solve(%, y, x) +D(y(x), x) = a*y(x) +solve(%, y, x) +-- ODE with boundary conditions. This problem has nontrivial solutions +-- y(x) = A sin([pi/2 + n pi] x) for n an arbitrary integer. +solve(D(y(x), x, 2) + k**2*y(x) = 0, y, x) +-- bc(%, x = 0, y = 0, x = 1, D(y(x), x) = 0) +-- System of two linear, constant coefficient ODEs +x:= operator('x); +system:= [D(x(t), t) = x(t) - y(t), D(y(t), t) = x(t) + y(t)] +solve(system,[x,y],t) +-- Check the answer +-- Triangular system of two ODEs +system:= [D(x(t), t) = x(t) * (1 + cos(t)/(2 + sin(t))), _ + D(y(t), t) = x(t) - y(t)] +-- Try solving this system one equation at a time +solve(system.1, x, t) +genericx:=C1*%.basis.1 +eval(lhs rightZero system.2,x,genericx,t) +solve(%,y,t) +genericy:=simplify (%.particular)+K1*(%.basis.1) +eval(lhs rightZero system.1,x,genericx,t) +eval(lhs rightZero system.2,[x,y],[genericx,genericy],t) +)clear properties x y +-- ---------- Operators ---------- +-- Linear differential operator +DD:= operator("D") :: Operator(Expression Integer) +evaluate(DD, e +-> D(e, x))$Operator(Expression Integer) +L:= (DD - 1) * (DD + 2) +g:= operator('g) +L(f(x)) +subst(L(subst(g(y), y = x)), x = y) +subst(L(subst(A * sin(z**2), z = x)), x = z) +-- Truncated Taylor series operator +T:= (f, xx, a) +-> subst((DD**0)(f(x)), x = a)/factorial(0) * (xx - a)**0 + _ + subst((DD**1)(f(x)), x = a)/factorial(1) * (xx - a)**1 + _ + subst((DD**2)(f(x)), x = a)/factorial(2) * (xx - a)**2 +T(f, x, a) +T(g, y, b) +Sin:= operator("sin") :: Operator(Expression Integer) +evaluate(Sin, x +-> sin(x))$Operator(Expression Integer) +T(Sin, z, c) +-- ---------- Programming ---------- +-- Write a simple program to compute Legendre polynomials +)clear properties p +p(n, x) == 1/(2**n*factorial(n)) * D((x**2 - 1)**n, x, n) +for i in 0..4 repeat { output(""); output(concat(["p(", string(i), ", x) = "])); output(p(i, x))} +eval(p(4, x), x = 1) +-- Now, perform the same computation using a recursive definition +pp(0, x) == 1 +pp(1, x) == x +pp(n, x) == ((2*n - 1)*x*pp(n - 1, x) - (n - 1)*pp(n - 2, x))/n +for i in 0..4 repeat { output(""); output(concat(["pp(", string(i), ", x) = "])); output(pp(i, x))} +)clear properties p pp +-- ---------- Translation ---------- +-- Horner's rule---this is important for numerical algorithms +a:= operator('a) +sum(a(i)*x**i, i = 1..5) +p:= factor(%) +-- Convert the result into FORTRAN syntax +)set fortran ints2floats off +outputAsFortran('p = p) +-- ---------- Boolean Logic ---------- +-- Simplify logical expressions +true and false +x or (not x) +--x or y or (x and y) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/wiggle.input.pamphlet b/src/input/wiggle.input.pamphlet new file mode 100644 index 00000000..0ffb8f04 --- /dev/null +++ b/src/input/wiggle.input.pamphlet @@ -0,0 +1,20 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input wiggle.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +-- @(#)wiggle.input 1.1 89/09/07 20:55:30 +draw(cos(x*y),x = -3..3, y = -3..3) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/wutset.input.pamphlet b/src/input/wutset.input.pamphlet new file mode 100644 index 00000000..bdbafb04 --- /dev/null +++ b/src/input/wutset.input.pamphlet @@ -0,0 +1,38 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input WUTSET.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from WuWenTsunTriangularSetXmpPage +)clear all + +R := Integer +ls : List Symbol := [x,y,z,t] +V := OVAR(ls) +E := IndexedExponents V +P := NSMP(R, V) +x: P := 'x +y: P := 'y +z: P := 'z +t: P := 't +T := WUTSET(R,E,V,P) +p1 := x ** 31 - x ** 6 - x - y +p2 := x ** 8 - z +p3 := x ** 10 - t +lp := [p1, p2, p3] +characteristicSet(lp)$T +zeroSetSplit(lp)$T +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/xpbwpoly.input.pamphlet b/src/input/xpbwpoly.input.pamphlet new file mode 100644 index 00000000..f838d248 --- /dev/null +++ b/src/input/xpbwpoly.input.pamphlet @@ -0,0 +1,59 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input XPBWPOLY.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +)cl all + +a:Symbol := 'a +b:Symbol := 'b +RN := Fraction(Integer) +word := OrderedFreeMonoid Symbol +lword := LyndonWord(Symbol) +base := PoincareBirkhoffWittLyndonBasis Symbol +dpoly := XDistributedPolynomial(Symbol, RN) +rpoly := XRecursivePolynomial(Symbol, RN) +lpoly := LiePolynomial(Symbol, RN) +poly := XPBWPolynomial(Symbol, RN) +liste : List lword := LyndonWordsList([a,b], 6) +0$poly +1$poly +p : poly := a +q : poly := b +pq: poly := p*q +pq :: dpoly +mirror pq +ListOfTerms pq +reductum pq +leadingMonomial pq +coefficients pq +leadingTerm pq +degree pq +pq4:=exp(pq,4) +log(pq4,4) - pq +lp1 :lpoly := LiePoly liste.10 +lp2 :lpoly := LiePoly liste.11 +lp :lpoly := [lp1, lp2] +lpd1: dpoly := lp1 +lpd2: dpoly := lp2 +lpd : dpoly := lpd1 * lpd2 - lpd2 * lpd1 +lp :: dpoly - lpd +p := 3 * lp +q := lp1 +pq:= p * q +pr:rpoly := p :: rpoly +qr:rpoly := q :: rpoly +pq :: rpoly - pr*qr +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/xpoly.input.pamphlet b/src/input/xpoly.input.pamphlet new file mode 100644 index 00000000..6a3353fc --- /dev/null +++ b/src/input/xpoly.input.pamphlet @@ -0,0 +1,34 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input XPOLY.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +)cl all + +poly := XPolynomial(Integer) +pr: poly := 2*x + 3*y-5 +pr2: poly := pr*pr +pd := expand pr +pd2 := pd*pd +expand(pr2) - pd2 +qr := pr**3 +qd := pd**3 + trunc(qd,2) +trunc(qr,2) +Word := OrderedFreeMonoid Symbol +w: Word := x*y**2 +rquo(qr,w) +sh(pr,w::poly) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/xpr.input.pamphlet b/src/input/xpr.input.pamphlet new file mode 100644 index 00000000..0f95be1f --- /dev/null +++ b/src/input/xpr.input.pamphlet @@ -0,0 +1,35 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input XPR.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +)cl all + +Word := OrderedFreeMonoid(Symbol) +poly:= XPR(Integer,Word) +p:poly := 2 * x - 3 * y + 1 +q:poly := 2 * x + 1 +p + q +p * q +(p +q)^2 -p^2 -q^2 - 2*p*q +M := SquareMatrix(2,Fraction Integer) +poly1:= XPR(M,Word) +m1:M := matrix [[i*j**2 for i in 1..2] for j in 1..2] +m2:M := m1 - 5/4 +m3: M := m2**2 +pm:poly1 := m1*x + m2*y + m3*z - 2/3 +qm:poly1 := pm - m1*x +qm**3 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/zdsolve.input.pamphlet b/src/input/zdsolve.input.pamphlet new file mode 100644 index 00000000..a1466210 --- /dev/null +++ b/src/input/zdsolve.input.pamphlet @@ -0,0 +1,47 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ZDSOLVE.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +R := Integer +ls : List Symbol := [x,y,z,t] +ls2 : List Symbol := [x,y,z,t,new()$Symbol] +pack := ZDSOLVE(R,ls,ls2) +p1 := x**2*y*z + x*y**2*z + x*y*z**2 + x*y*z + x*y + x*z + y*z +p2 := x**2*y**2*z + x*y**2*z**2 + x**2*y*z + x*y*z + y*z + x + z +p3 := x**2*y**2*z**2 + x**2*y**2*z + x*y**2*z + x*y*z + x*z + z + 1 +lp := [p1, p2, p3] +triangSolve(lp)$pack +univariateSolve(lp)$pack +lr := realSolve(lp)$pack +# lr +[[approximate(r,1/1000000) for r in point] for point in lr] +lpr := positiveSolve(lp)$pack +f0 := x**3 + y + z + t- 1 +f1 := x + y**3 + z + t -1 +f2 := x + y + z**3 + t-1 +f3 := x + y + z + t**3 -1 +lf := [f0, f1, f2, f3] +lts := triangSolve(lf)$pack +univariateSolve(lf)$pack +ts := lts.1 +univariateSolve(ts)$pack +realSolve(ts)$pack +lr2 := realSolve(lf)$pack +#lr2 +lpr2 := positiveSolve(lf)$pack +[approximate(r,1/10**21)::Float for r in lpr2.1] +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/zimmer.input.pamphlet b/src/input/zimmer.input.pamphlet new file mode 100644 index 00000000..3cfc0661 --- /dev/null +++ b/src/input/zimmer.input.pamphlet @@ -0,0 +1,393 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input zimmer.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +These examples come from Postel & Zimmermann's paper in the 5th Rhine +Conference on Computer Algebra. +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> +)set break resume + +-- First Order Equations + +-- 1 + +u := operator 'u +ode := (x^4-x^3)*D(u x,x) + 2*x^4*u(x) = x^3/3 + C +solve(ode,u,x) + +-- 2 +)clear all + +u := operator 'u +ode := -D(u x,x)/2 + u(x) = sin(x) +solve(ode,u,x) + +-- 3 +)clear all + +y := operator 'y +ode := D(y x,x) = y(x)/(y(x)*log(y(x)) + x) +solve(ode,y,x) + +-- 4 +)clear all + +y := operator 'y +ode := 2*y(x)*D(y x,x)^2 -2*x*D(y x,x)-y(x) = 0 +solve(ode,y,x) + +-- 5 +)clear all + +y := operator 'y +ode := D(y x,x) + y(x) = y(x)^3*sin(x) +solve(ode,y,x) + +-- 6 +)clear all + +y := operator 'y +P := operator 'P +Q := operator 'Q +ode := D(y x,x) + P(x)*y(x) = Q(x)*y(x)^n +solve(ode,y,x) +solve(eval(ode,n=1),y,x) +solve(eval(ode,n=2),y,x) +solve(eval(ode,n=%pi),y,x) +solve(eval(ode,n=%e),y,x) +solve(eval(ode,n=sqrt(2)),y,x) + +-- 7 +)clear all + +y := operator 'y +ode := (x^2-1)*D(y x,x)^2 - 2*x*y(x)*D(y x,x)+(y x)^2 - 1 = 0 +solve(ode,y,x) + +-- 8 +)clear all + +y := operator 'y +f := operator 'f +g := operator 'g +ode := f(x*D(y x,x) - y(x)) = g(D(y x,x)) +solve(ode,y,x) + +-- 9 +)clear all + +y := operator 'y +ode := D(y x,x) = (3*x^2-y(x)^2-7)/(exp(y(x))+2*x*y(x)+1) +solve(ode,y,x) + +-- 10 +)clear all + +y := operator 'y +ode := D(y x,x) = (2*x^3*y(x) - (y x)^4)/(x^4 - 2*x*(y x)^3) +solve(ode,y,x) + +-- 11 +)clear all + +y := operator 'y +ode := D(y x,x)*(D(y x,x) + y(x)) = x*(x + y(x)) +solve(ode,y,x) + +-- 12 +)clear all + +y := operator 'y +ode := D(y x,x) = x/(x^2*(y x)^2 + (y x)^5) +solve(ode,y,x) + +-- 13 +)clear all + +y := operator 'y +ode := y(x) = 2*x*D(y x,x) - a*D(y x,x)^3 +solve(ode,y,x) + +-- 14 +)clear all + +y := operator 'y +ode := y(x) = 2*x*D(y x,x) - D(y x,x)^3 +solve(ode,y,x) + +-- 15 +)clear all + +y := operator 'y +ode := D(y x,x) = exp(x)*(y x)^2 - y(x) + exp(-x) +solve(ode,y,x) + +-- 16 +)clear all + +y := operator 'y +ode := D(y x,x) = (y x)^2 - x*y(x) + 1 +solve(ode,y,x) + +-- 17 +)clear all + +y := operator 'y +ode := D(y x,x) = (9*x^8 + 1)/((y x)^2 +1) +solve(ode,y,x) + +-- 18 +)clear all + +y := operator 'y +ode := y(x)=2*x*D(y x,x) + y(x)*D(y x,x)^2 +solve(ode,y,x) + +-- 19 +)clear all +y := operator 'y +ode := x = y(x)*D(y x,x) - x*D(y x,x)^2 +solve(ode,y,x) + +-- Second Order Equations + +-- 20 +)clear all +y := operator 'y +ode := D(y x,x,2)*(a*x+b)^2+4*D(y x,x)*(a*x+b)*a+2*y(x)*a^2=0 +solve(ode,y,x) + +-- 21 +)clear all +u := operator 'u +ode := (x^2 - x)*D(u x,x,2) + (2*x^2+4*x-3)*D(u x,x) + 8*x*u(x)=1 +solve(ode,u,x) + +-- 22 +)clear all +w := operator 'w +ode := (x^2 - x)*D(w x,x,2) + (1-2*x^2)*D(w x,x) + (4*x - 2)*w(x) = 0 +solve(ode,w,x) + +-- 23 +)clear all +y := operator 'y +ode := D(y x,x,2) - D(y x,x) = 2*y(x)*D(y x,x) +solve(ode,y,x) + +-- 24 +)clear all +y := operator 'y +ode := D(y x,x,2)/y(x) - D(y x,x)^2/y(x)^2 -1 + y(x)^(-3) = 0 +solve(ode,y,x) + +-- 25 +)clear all +y := operator 'y +ode := D(y x,x,2) + 2*x*D(y x,x) = 2*x +solve(ode,y,x) + +-- 26 +)clear all +y := operator 'y +ode := 2*y(x)*D(y x,x,2) - D(y x,x)^2 = (D(y x,x) - x*D(y x,x,2))^2/3 +solve(ode,y,x) + +-- 27 +)clear all +y := operator 'y +ode := x*D(y x,x,2) = 2*y(x)*D(y x,x) +solve(ode,y,x) + +-- 28 +)clear all +y := operator 'y +ode := (1-x)*(y(x)*D(y x,x,2) - D(y x,x)^2) + x^2*y(x)^2 = 0 +solve(ode,y,x) + +-- 29 +)clear all +y := operator 'y +ode := x*y(x)*D(y x,x,2) + x*D(y x,x)^2 + y(x)*D(y x,x) = 0 +solve(ode,y,x) + +-- 30 +)clear all +y := operator 'y +ode := D(y x,x,2)^2 - 2*D(y x,x,2)*D(y x,x) + 2*y(x)*D(y x,x) -y(x)^2 = 0 +solve(ode,y,x) + +-- 31 +)clear all +y := operator 'y +ode := (x^3/2-x^2)*D(y x,x,2) + (2*x^2-3*x+1)*D(y x,x) + (x-1)*y(x) = 0 +solve(ode,y,x) + +-- 32 +)clear all +y := operator 'y +ode := D(y x,x,2) - 2*x*D(y x,x) + 2*y(x) = 3 +solve(ode,y,x) + +-- 33 +)clear all +y := operator 'y +ode := sqrt(x)*D(y x,x,2) + 2*x*D(y x,x) + 3*y(x) = 0 +solve(ode,y,x) + +-- 34 +)clear all +y := operator 'y +ode := x^2*D(y x,x,2) + 3*x*D(y x,x) = 1/(x^4*y(x)^3) +solve(ode,y,x) + +-- 35 +)clear all +y := operator 'y +ode := D(y x,x,2) - 2/x^2*y(x) = 7*x^4 +3*x^3 +solve(ode,y,x) + +-- 36 +)clear all +y := operator 'y +ode := D(y x,x,2) +y(x) = csc(x) +solve(ode,y,x) + +-- Higher Order Equations + +-- 37 +)clear all +y := operator 'y +ode := D(y x,x,7) - 14*D(y x,x,6) +80*D(y x,x,5) -242*D(y x,x,4) + _ + 419*D(y x,x,3) - 416*D(y x,x,2) +220*D(y x,x) -48*y(x) = 0 +solve(ode,y,x) + +-- 38 +)clear all +y := operator 'y +ode := D(y x,x,4) -4/x^2*D(y x,x,2) + 8/x^3*D(y x,x) -8/x^4*D(y x,x) = 0 +solve(ode,y,x) + +-- 39 +)clear all +y := operator 'y +ode := (1+x+x^2)*D(y x,x,3) + (3+6*x)*D(y x,x,2) +6*D(y x,x) = 6*x +solve(ode,y,x) + +-- 40 +)clear all +y := operator 'y +ode := (D(y x,x)^2 +1)*D(y x,x,3) - 3*D(y x,x)*D(y x,x,2) = 0 +solve(ode,y,x) + +-- 41 +)clear all +y := operator 'y +ode := 3*D(y x,x,2)*D(y x,x,4) - 5*D(y x,x,3)^2 = 0 +solve(ode,y,x) + +-- Special Equations + +-- 42 +)clear all +y := operator 'y +ode := D(y t,t) + a*y(t-1) = 0 +solve(ode,y,t) + +-- 43 +)clear all +y := operator 'y +ode := D(y(x,a),x) = a*y(x,a) +solve(ode,y,x) + +-- 44 +)clear all +y := operator 'y +ode := D(y x,x,4) = sin(x) +solve(ode,y,x=0,[0,0,0,0]) + +-- 45 +)clear all +y := operator 'y +ode := x*D(y x,x,2) + D(y x,x) +2*x*y(x) =0 +solve(ode,y,x=0,[1,0]) + +-- 46 +)clear all +y := operator 'y +ode := x*D(y x,x)^2 -(y x)^2 + 1 = 0 +solve(ode,y,x=0,[1]) + +-- 47 +)clear all +y := operator 'y +ode := D(y x,x,2) + y(x)*D(y x,x)^3 = 0 +solve(ode,y,x=0,[0,2]) + +-- Systems Of equations + +-- 48 +)clear all +x := operator 'x +y := operator 'y +z := operator 'z +odes := [D(x t,t) = -3*y(t)*z(t), D(y t,t) = 3*x(t)*z(t), D(z t,t) = -x(t)*y(t)] +solve(odes,[x,y,z],t) + +-- 49 +)clear all +x := operator 'x +y := operator 'y +a := operator 'a +b := operator 'b +odes := [D(x t,t) = a(t)*((y t)^2 - (x t)^2) + 2*b(t)*x(t)*y(t) + 2*c*x(t), + D(y t,t) = b(t)*((y t)^2 - (x t)^2) - 2*a(t)*x(t)*y(t) + 2*c*y(t)] +solve(odes,[x,y],t) + +-- 50 +)clear all +x := operator 'x +y := operator 'y +odes := [D(x t,t) = x(t)*(1+cos(t)/(2+sin(t))), D(y t,t) = x(t) - y(t)] +solve(odes,[x,y],t) + +-- 51 +)clear all +x := operator 'x +y := operator 'y +odes := [D(x t,t) = 9*x(t) + 2*y(t), D(y t,t) = x(t) + 8*y(t)] +solve(odes,[x,y],t) + +-- 52 +)clear all +x := operator 'x +y := operator 'y +odes := [D(x t,t) - x(t) - 2*y(t) = 0, D(x t,t,2) - 2*D(y t,t) = 2*t - cos(2*t)] +solve(odes,[x,y],t) + +-- 53 +)clear all +y1 := operator 'y1 +y2 := operator 'y2 +odes := [D(y1 x,x) = -1/(x*(x^2 + 1))*y1(x) + 1/(x^2*(x^2 + 1))*y2(x)+1/x, + D(y2 x,x) = -x^2/(x^2 + 1)*y1(x) + (2*x^2+1)/x/(x^2+1)*y2(x)+1] +solve(odes,[y1,y2],x) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/input/zlindep.input.pamphlet b/src/input/zlindep.input.pamphlet new file mode 100644 index 00000000..d088b7f6 --- /dev/null +++ b/src/input/zlindep.input.pamphlet @@ -0,0 +1,30 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input ZLINDEP.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +-- Input generated from IntegerLinearDependenceXmpPage +)clear all + +M := SQMATRIX(2,INT) +m1: M := squareMatrix matrix [[1, 2], [0, -1]] +m2: M := squareMatrix matrix [[2, 3], [1, -2]] +m3: M := squareMatrix matrix [[3, 4], [2, -3]] +linearlyDependentOverZ? vector [m1, m2, m3] +c := linearDependenceOverZ vector [m1, m2, m3] +c.1 * m1 + c.2 * m2 + c.3 * m3 +solveLinearlyOverQ(vector [m1, m3], m2) +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} |