diff --git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet index 0f48638..3de100e 100644 --- a/books/bookvol10.4.pamphlet +++ b/books/bookvol10.4.pamphlet @@ -128949,8 +128949,9 @@ PureAlgebraicIntegration(R, F, L): Exports == Implementation where chv(f, n, a, b) == univariate(chv0(f, n, a, b), dumk) RF2UPUP(f, modulus) == - bc := extendedEuclidean(map(#1::UP::RF, denom f), modulus, + bc := extendedEuclidean(map((z1:F):RF+->z1::UP::RF, denom f), modulus, 1)::Record(coef1:UPUP, coef2:UPUP) + -- TPD changing this to map((x1:F)::RF+->f1::UP::RF breaks tests (map(#1::UP::RF, numer f) * bc.coef1) rem modulus -- returns "failed", or (xx, c) such that f(x, y)dx = f(xx, y) c dy @@ -128973,7 +128974,7 @@ PureAlgebraicIntegration(R, F, L): Exports == Implementation where ((r := retractIfCan(rf)@Union(RF,"failed")) case RF) and rf ^= 0 => -- in this case, ff := lc(ff) y^i + r so we integrate both terms -- separately to gain time - map(#1(x::F), integrate(r::RF)) + + map(f1+->f1(x::F), integrate(r::RF)) + prootintegrate1(leadingMonomial ff, x, y, modulus) prootintegrate1(ff, x, y, modulus) @@ -128987,17 +128988,17 @@ PureAlgebraicIntegration(R, F, L): Exports == Implementation where newf := multivariate(chv.int, ku := dumk, newalg) vu := (chv.right)(x::F) vz := (chv.den)(x::F) * (y::F) * denom(newalg)::F - map(eval(#1, [ku, kz], [vu, vz]), palgint(newf, ku, kz)) + map(x1+->eval(x1, [ku, kz], [vu, vz]), palgint(newf, ku, kz)) cv := chvar(ff, modulus) r := radPoly(cv.poly)::Record(radicand:RF, deg:N) qprime := differentiate(q := retract(r.radicand)@UP)::RF not zero? qprime and ((u := chvarIfCan(cv.func, 1, q, inv qprime)) case UPUP) => m := monomial(1, r.deg)$UPUP - q::RF::UPUP - map(UPUP2F1(RF2UPUP(#1, m), cv.c1, cv.c2, x, y), + map(x1+->UPUP2F1(RF2UPUP(x1, m), cv.c1, cv.c2, x, y), rationalInt(u::UPUP, r.deg, monomial(1, 1))) curve := RadicalFunctionField(F, UP, UPUP, q::RF, r.deg) - algaddx(map(UPUP2F1(lift #1, cv.c1, cv.c2, x, y), + algaddx(map(x1+->UPUP2F1(lift x1, cv.c1, cv.c2, x, y), palgintegrate(reduce(cv.func), differentiate$UP)$ALG)$IR2, x::F) -- Do the rationalizing change of variable @@ -129088,14 +129089,14 @@ PureAlgebraicIntegration(R, F, L): Exports == Implementation where r := radPoly(modulus)::Record(radicand:RF, deg:N) rec := rootPoly(r.radicand, r.deg) dqdx := inv(differentiate(q := rec.radicand)::RF) - (uf := chvarIfCan(ff := univariate(f,x,k,p),rec.coef,q,dqdx)) case UPUP => + (uf:=chvarIfCan(ff := univariate(f,x,k,p),rec.coef,q,dqdx)) case UPUP => l := empty()$List(RF) n := rec.exponent * monomial(1, (rec.exponent - 1)::N)$UP for u in lu repeat - if ((v:=chvarIfCan(uu:=univariate(u,x,k,p),rec.coef,q,dqdx))case UPUP) + if ((v:=chvarIfCan(uu:=univariate(u,x,k,p),rec.coef,q,dqdx))case UPUP) then l := concat(n * chv(v::UPUP,rec.exponent, 1, 0), l) else FAIL m := monomial(1, rec.exponent)$UPUP - q::RF::UPUP - map(UPUP2F0(RF2UPUP(#1,m), x, k), + map(x1+->UPUP2F0(RF2UPUP(x1,m), x, k), limitedint(n * chv(uf::UPUP, rec.exponent, 1, 0), reverse_! l)) cv := chvar(ff, modulus) r := radPoly(cv.poly)::Record(radicand:RF, deg:N) @@ -129111,10 +129112,10 @@ PureAlgebraicIntegration(R, F, L): Exports == Implementation where rec := rootPoly(r.radicand, r.deg) dqdx := inv(differentiate(q := rec.radicand)::RF) ((uf:=chvarIfCan(ff:=univariate(f,x,k,p),rec.coef,q,dqdx)) case UPUP) and - ((ug:=chvarIfCan(gg:=univariate(g,x,k,p),rec.coef,q,dqdx)) case UPUP) => + ((ug:=chvarIfCan(gg:=univariate(g,x,k,p),rec.coef,q,dqdx)) case UPUP) => m := monomial(1, rec.exponent)$UPUP - q::RF::UPUP n := rec.exponent * monomial(1, (rec.exponent - 1)::N)$UP - map(UPUP2F0(RF2UPUP(#1,m), x, k), + map(x1+->UPUP2F0(RF2UPUP(x1,m), x, k), extendedint(n * chv(uf::UPUP, rec.exponent, 1, 0), n * chv(ug::UPUP, rec.exponent, 1, 0))) cv := chvar(ff, modulus) @@ -129147,7 +129148,7 @@ PureAlgebraicIntegration(R, F, L): Exports == Implementation where cv := chvar(univariate(f, x, k, p), modulus) curve := AlgebraicFunctionField(F, UP, UPUP, cv.poly) knownInfBasis(cv.deg) - algaddx(map(UPUP2F1(lift #1, cv.c1, cv.c2, x, k), + algaddx(map(x1+->UPUP2F1(lift x1, cv.c1, cv.c2, x, k), palgintegrate(reduce(cv.func), differentiate$UP)$ALG)$IR2, x::F) palglim(f, x, k, lu) == diff --git a/changelog b/changelog index 1c780ef..ff1f817 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,5 @@ +20090619 tpd src/axiom-website/patches.html 20090619.01.tpd.patch +20090619 tpd books/bookvol10.4 INTPAF +-> conversion 20090616 tpd src/axiom-website/patches.html 20090616.02.tpd.patch 20090616 tpd src/algebra/Makefile add gloss* files to 'all' stanza 20090616 tpd src/axiom-website/patches.html 20090616.01.tpd.patch diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index c469720..1f31313 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -1579,5 +1579,7 @@ bookvol10.4 PRS +-> conversion
src/algebra/Makefile add gloss* files
20090616.02.tpd.patch src/algebra/Makefile add gloss* files to 'all' stanza
+20090619.01.tpd.patch +bookvol10.4 INTPAF +-> conversion