Ronan

1486 Reputation

16 Badges

14 years, 190 days
East Grinstead, United Kingdom

MaplePrimes Activity


These are questions asked by Ronan

I need to add a library path name to get an old style package .lib to run. Currently a have to manually add the path. How do I solve this?
Also should the package be convverted to .mla type?  What is the difference?

Edit;- I am using windows 10

restart

download location https://github.com/fractal97/CLIFFORD

libname

"C:\Users\Ronan\maple\toolbox\2026\Maple Customer Support Updates\lib", "C:\Program Files\Maple 2026\lib", "C:\Users\Ronan\maple\toolbox\CodeBuilder\lib", "C:\Users\Ronan\maple\toolbox\DirectSearch\lib", "C:\Users\Ronan\maple\toolbox\OEIS\lib", "C:\Users\Ronan\maple\toolbox\personal\lib", "C:\Users\Ronan\maple\toolbox\UTF8\lib"

(1)

I have to use the following to get the package to load

savelibname:="C:/Users/Ronan/Maple/toolbox/Cliffordlib"

"C:/Users/Ronan/Maple/toolbox/Cliffordlib"

(2)

libname:=savelibname,libname:

libname

"C:/Users/Ronan/Maple/toolbox/Cliffordlib", "C:\Users\Ronan\maple\toolbox\2026\Maple Customer Support Updates\lib", "C:\Program Files\Maple 2026\lib", "C:\Users\Ronan\maple\toolbox\CodeBuilder\lib", "C:\Users\Ronan\maple\toolbox\DirectSearch\lib", "C:\Users\Ronan\maple\toolbox\OEIS\lib", "C:\Users\Ronan\maple\toolbox\personal\lib", "C:\Users\Ronan\maple\toolbox\UTF8\lib"

(3)

with(eClifford)

_known_types = [eclibasmon, eclimon, eclipolynom]

 

_known_sortings = [`sort/byegrade`, `sort/byegradenum`, `sort/byegradesymb`]

 

_known_conversions = [`convert/binarytuple_to_eclibasmon`, `convert/clibas_to_eclibas`, `convert/eclibas_to_clibas`, `convert/eclibasmon_to_binarytuple`]

 

_revisions_additions = [eClifford:-eLC, eClifford:-ecinv, eClifford:-ecinv1, eClifford:-ecinv2, eClifford:-ecmulCh, eClifford:-eminpoly]

 

[ModuleLoad, ModuleUnload, byegrade, byegradenum, byegradesymb, cmulWalsh3pqr, eCliffordversion, eLC, ecbasis, ecinv, ecinv1, ecinv11, ecinv2, ecinv22, eclicollect, ecliscalarpart, ecliterms, ecmul, ecmulCh, econjugation, eextract, egrade, egradeinv, emaxgrade, emaxindex, eminpoly, ereversion, esplit, esupport, evectorpart, ewedge, innerprod, split, subs_into_minpoly]

(4)

This is a screen shot of what in in the library folder. It is a older type .lib package

This is what is in the .ini file

#savelibname:="C:\\Maple2020/Cliffordlib":
#libname:=savelibname,libname:
#savelibname:="C:\\Maple2020/Cliffordlib":
savelibname:="C:\\Users\Ronan\Maple\toolbox\Cliffordlib":
libname:=savelibname,libname:

filepathname:=cat(savelibname,"/","define.m"):
read filepathname:
filepathname:=cat(savelibname,"/","definemore.m"):
read filepathname:
read(cat(savelibname,"/","Walshpackage.m"));


Download 2026-09-06_Q_Library_path_Clifford_Test.mw

Could anyone tell me what type of matrix normalisation this is and it it built into Maple? I found this in a paper and Google AI said this is the process of normailsation being used.

restart

with(LinearAlgebra):

J:=Matrix([[ 1 , 0 , 0 ],
        [ 0 , 1 , 0 ],
        [ 0 , 0 , -1 ]]);

Matrix(3, 3, {(1, 1) = 1, (1, 2) = 0, (1, 3) = 0, (2, 1) = 0, (2, 2) = 1, (2, 3) = 0, (3, 1) = 0, (3, 2) = 0, (3, 3) = -1})

(1)

Matrix N has already been scaled, so the rows are of equal magnitude  x^2 + y^2 - z^2= k

N:=Matrix(3, 3, [[4, -3, 2], [-1/2*sqrt(70), -3/10*sqrt(70), 1/5*sqrt(70)], [1/11*sqrt(77), 6/11*sqrt(77), 2/11*sqrt(77)]])

Matrix(3, 3, {(1, 1) = 4, (1, 2) = -3, (1, 3) = 2, (2, 1) = -(1/2)*sqrt(70), (2, 2) = -(3/10)*sqrt(70), (2, 3) = (1/5)*sqrt(70), (3, 1) = (1/11)*sqrt(77), (3, 2) = (6/11)*sqrt(77), (3, 3) = (2/11)*sqrt(77)})

(2)

 

for i to 3 do
add(N[i,j]^2,j=1..2)-N[i,3]^2;
end do

21

 

21

 

21

(3)

Normalisation process to produce C

A:=N.J.N^%T

Matrix(3, 3, {(1, 1) = 21, (1, 2) = -(3/2)*sqrt(70), (1, 3) = -(18/11)*sqrt(77), (2, 1) = -(3/2)*sqrt(70), (2, 2) = 21, (2, 3) = -(27/110)*sqrt(70)*sqrt(77), (3, 1) = -(18/11)*sqrt(77), (3, 2) = -(27/110)*sqrt(70)*sqrt(77), (3, 3) = 21})

(4)

dA:=DiagonalMatrix(1/~(sqrt~(abs(Diagonal((A))))));

Matrix(3, 3, {(1, 1) = (1/21)*sqrt(21), (1, 2) = 0, (1, 3) = 0, (2, 1) = 0, (2, 2) = (1/21)*sqrt(21), (2, 3) = 0, (3, 1) = 0, (3, 2) = 0, (3, 3) = (1/21)*sqrt(21)})

(5)

C:=(dA.A.dA);

Matrix(3, 3, {(1, 1) = 1, (1, 2) = -(1/14)*sqrt(70), (1, 3) = -(6/77)*sqrt(77), (2, 1) = -(1/14)*sqrt(70), (2, 2) = 1, (2, 3) = -(9/770)*sqrt(70)*sqrt(77), (3, 1) = -(6/77)*sqrt(77), (3, 2) = -(9/770)*sqrt(70)*sqrt(77), (3, 3) = 1})

(6)

evalf(C)

Matrix(3, 3, {(1, 1) = 1., (1, 2) = -.5976143047, (1, 3) = -.6837634587, (2, 1) = -.5976143047, (2, 2) = 1., (2, 3) = -.8581163304, (3, 1) = -.6837634587, (3, 2) = -.8581163304, (3, 3) = 1.})

(7)
 

 

Download 2026-08-14_Q_What_Type_of_Matrix_Normalisation.mw

I am trying to add this to my type list in a package, but cannot get it to work.

TypeTools:-AddType(_L3DP, set(satisfies(s -> type(s, [algebraic $ 3])),'Vector[column](3, algebraic)'));

when I test with this I get an error.

 type({[7,8,9],<1,2,3>},:-_L3DP);
Error, testing against an invalid type

or this 

type({[7,8,9],<1,2,3>},set(satisfies(s -> type(s, [algebraic $ 3])),'Vector[column](3, algebraic)'));
Error, testing against an invalid type

This the part of a procedure I have for removing common factors from matrices and vectors used in a projective geometry setting.
How can a get it to work so it handles polynomial denominators? Such as 

x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2

restart

 

ReduceM:= proc(C::{Matrix, :-_ProjM3})
            local i, tgdc, dnm, V1, Ml, SV1, ns, M, r;
            option overload;
            if C::'Matrix' then
                M := LinearAlgebra:-Copy(C);
            elif C::{':-_ProjM3'} then
                M := LinearAlgebra:-Copy(C[1]);
            end if;
            V1 := convert(M, list);
            SV1 := convert(M, set) minus {0};
            ns := nops(SV1);
            dnm := frontend(lcm, [seq(denom(SV1[i]), i = 1 .. ns)]);
            Ml := simplify(dnm *~ M);
            V1 := convert(Ml, list);
            tgdc := SV1[1];
            if tgdc = 0 then
                tgdc := 1;
            end if;
            for i from 2 to ns do
                tgdc := frontend(gcd, [tgdc, SV1[i]]);
            end do;
            r := `if`(C::'Matrix', simplify(factor~(Ml /~ tgdc)),
                <[simplify(factor~(Ml /~ tgdc))]>);
            return r;
        end proc:

 

 

A:=Matrix(3, 3, [[(x__2 - x__1)*(-y__2 + y__3) + (-y__1 + y__2)*(-x__3 + x__2), (x__2 - x__1)*(-y__1 + y__3) + (-y__1 + y__2)*(-x__3 + x__1), (x__2 - x__1)*(-y__1 + y__2) + (-y__1 + y__2)*(-x__2 + x__1)], [(x__3 - x__1)*(-y__2 + y__3) + (-y__1 + y__3)*(-x__3 + x__2), (x__3 - x__1)*(-y__1 + y__3) + (-y__1 + y__3)*(-x__3 + x__1), (x__3 - x__1)*(-y__1 + y__2) + (-y__1 + y__3)*(-x__2 + x__1)], [x__1*(-y__2 + y__3) + y__1*(-x__3 + x__2) - x__2*y__3 + x__3*y__2, (-y__1 + y__3)*x__1 + y__1*(-x__3 + x__1) - x__1*y__3 + x__3*y__1, (-y__1 + y__2)*x__1 + y__1*(-x__2 + x__1) - x__1*y__2 + x__2*y__1]])

Matrix(3, 3, {(1, 1) = (x__2-x__1)*(-y__2+y__3)+(-y__1+y__2)*(-x__3+x__2), (1, 2) = (x__2-x__1)*(-y__1+y__3)+(-y__1+y__2)*(-x__3+x__1), (1, 3) = (x__2-x__1)*(-y__1+y__2)+(-y__1+y__2)*(-x__2+x__1), (2, 1) = (x__3-x__1)*(-y__2+y__3)+(-y__1+y__3)*(-x__3+x__2), (2, 2) = (x__3-x__1)*(-y__1+y__3)+(-y__1+y__3)*(-x__3+x__1), (2, 3) = (x__3-x__1)*(-y__1+y__2)+(-y__1+y__3)*(-x__2+x__1), (3, 1) = x__1*(-y__2+y__3)+y__1*(-x__3+x__2)-x__2*y__3+x__3*y__2, (3, 2) = (-y__1+y__3)*x__1+y__1*(-x__3+x__1)-x__1*y__3+x__3*y__1, (3, 3) = (-y__1+y__2)*x__1+y__1*(-x__2+x__1)-x__1*y__2+x__2*y__1})

(1)

ReduceM(A)

Matrix(3, 3, {(1, 1) = 1, (1, 2) = 1, (1, 3) = 0, (2, 1) = 1, (2, 2) = 0, (2, 3) = -1, (3, 1) = -1, (3, 2) = 0, (3, 3) = 0})

(2)

B:=Matrix(3, 3, [[-(y__1 - y__3)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2) + (y__1 - y__2)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2), -(y__1 - y__3)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2), -(y__1 - y__2)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2)], [(-x__3 + x__1)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2) - (-x__2 + x__1)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2), (-x__3 + x__1)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2), (-x__2 + x__1)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2)], [-(x__1*y__3 - x__3*y__1)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2) + (x__1*y__2 - x__2*y__1)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2) - 1, -(x__1*y__3 - x__3*y__1)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2), -(x__1*y__2 - x__2*y__1)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2)]])

Matrix(3, 3, {(1, 1) = -(y__1-y__3)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)+(y__1-y__2)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2), (1, 2) = -(y__1-y__3)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2), (1, 3) = -(y__1-y__2)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2), (2, 1) = (-x__3+x__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)-(-x__2+x__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2), (2, 2) = (-x__3+x__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2), (2, 3) = (-x__2+x__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2), (3, 1) = -(x__1*y__3-x__3*y__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)+(x__1*y__2-x__2*y__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)-1, (3, 2) = -(x__1*y__3-x__3*y__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2), (3, 3) = -(x__1*y__2-x__2*y__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)})

(3)

ReduceM(B)

Error, (in gcd/Freeze) arguments should be polynomials

 

B*denom(B[1,1])

Matrix(3, 3, {(1, 1) = (x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)*(-(y__1-y__3)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)+(y__1-y__2)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)), (1, 2) = -y__1+y__3, (1, 3) = -y__1+y__2, (2, 1) = (x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)*((-x__3+x__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)-(-x__2+x__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)), (2, 2) = -x__3+x__1, (2, 3) = -x__2+x__1, (3, 1) = (x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)*(-(x__1*y__3-x__3*y__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)+(x__1*y__2-x__2*y__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)-1), (3, 2) = -x__1*y__3+x__3*y__1, (3, 3) = -x__1*y__2+x__2*y__1})

(4)

simplify( (4) );

Matrix(3, 3, {(1, 1) = -y__2+y__3, (1, 2) = -y__1+y__3, (1, 3) = -y__1+y__2, (2, 1) = -x__3+x__2, (2, 2) = -x__3+x__1, (2, 3) = -x__2+x__1, (3, 1) = -x__2*y__3+x__3*y__2, (3, 2) = -x__1*y__3+x__3*y__1, (3, 3) = -x__1*y__2+x__2*y__1})

(5)
 

 

Download 2026-08-03_Q_Remove_Common_Factors_from_Matrix.mw

I am trying to follow a series of substitutions used in a paper. I have given some examples of the substitutions. But I am having difficulty getting them to work. I know if all else fails I can manually recreate an expression with the substitution variables and then check backwards using eval(f,vals).
Would appreciate any insight on substitution techniques here.
 

restart

 

sidrels := [a*c - b^2 = Delta, a + c - 2*b = d, a - b = c__bar, a - c = b__bar, c - b = a__bar];

[a*c-b^2 = Delta, a+c-2*b = d, a-b = c__bar, a-c = b__bar, c-b = a__bar]

(1)

vals:='rhs=lhs'~(sidrels)

[Delta = a*c-b^2, d = a+c-2*b, c__bar = a-b, b__bar = a-c, a__bar = c-b]

(2)

t1:=a + c - 2*b;
simplify(t1,sidrels); #this should be d

a+c-2*b

 

d

(3)

t2:=Vector[column](3, [-a + b, c - b, 0]);
simplify(t2,sidrels) ; # This should be <-c__bar,a__bar,0> or <c__bar,-a__bar,0,>r

Vector(3, {(1) = -a+b, (2) = c-b, (3) = 0})

 

Vector[column](%id = 36893490321805397396)

(4)

t3:=normal(1 - b^2/(a*c));

(a*c-b^2)/(a*c)

(5)

simplify((5),sidrels); # This should be Delta/(a*c)

Delta/(b^2+Delta)

(6)

simplify(numer((5)),sidrels,'mindeg')/(denom((5)) ); # This works

 

Delta/(a*c)

(7)

t4:=[(-b^2 + b*c)/(a*c - b^2), (a*b - b^2)/(a*c - b^2)]

[(-b^2+b*c)/(a*c-b^2), (a*b-b^2)/(a*c-b^2)]

(8)

simplify(t4,sidrels,'mindeg');# this should be [(b*a__bar)/Delta, (b*b__bar)/Delta]

[-b*(-c+b)/Delta, b*(a-b)/Delta]

(9)

t5:=simplify(Vector[column](3, [3*b*c__bar - Delta, -3*a__bar*b + Delta, b*(-c__bar + a__bar)]))

Vector(3, {(1) = 3*b*c__bar-Delta, (2) = -3*a__bar*b+Delta, (3) = b*(-c__bar+a__bar)})

(10)

t5[3]:=simplify(t5[3],sidrels)  ;#This should be b*b__bar

 

-a__bar^2+(2*b+d)*a__bar-Delta

(11)

t5

Vector(3, {(1) = 3*b*c__bar-Delta, (2) = -3*a__bar*b+Delta, (3) = -a__bar^2+(2*b+d)*a__bar-Delta})

(12)

subs(sidrels[-2],b*(-c__bar + a__bar))

b*(-c__bar+a__bar)

(13)

algsubs(sidrels[-2],b*(-c__bar + a__bar))

b*(-c__bar+a__bar)

(14)

 


 

Download 2026-07-29_Q_Simplifications_and_Substitutions.mw

1 2 3 4 5 6 7 Last Page 1 of 38