hermann on Thu, 07 Dec 2023 22:53:00 +0100

 Re: norml2() with variables in vector?

```On 2023-12-07 20:09, Bill Allombert wrote:
```
```
You are victim of a strange PARI behaviour which is that some functions
are fully recursive so

norml2([a,b,c]) = norml2(a) + norml2(b) + norml2(c)
etc.

? (3^2+14^2+1^2)+(2^2+9^2+6^2)+(1^2+5^2+8^2)
%4 = 417

```
```Oops.

```
```You probably want v~*v
? v~*v
%5 = 14*a^2+(130*b+2*c)*a+(302*b^2+101*c^2)

Cheers,
Bill

```
```Thank you, that was indeed what I want.

G was the matrix computed with qflllgram() from ternary quadratic form
with determinant 1 representing 101.

? v=[-102, -107, 93; 22, 23, -20; 1, 1, -1]^-1*[0,0,1]~
[-1, -6, -8]~
? v~*v
101
?

Now with variables as you showed:

? v=[-102, -107, 93; 22, 23, -20; 1, 1, -1]^-1*[a,b,c]~
[3*a + (14*b - c), -2*a + (-9*b - 6*c), a + (5*b - 8*c)]~
? v~*v
14*a^2 + (130*b + 2*c)*a + (302*b^2 + 101*c^2)
?

Next I had to switch to wolframscript since I don't know how to
solve the equation in Integers with PARI/GP.

```
In the output below (middle) is "{a -> 0, b -> 0, c -> 1}" corresponding to first calculation.
```
Regards,

Hermann.

Mathematica/wolframscript is free use on Raspberry computers.
Yesterday I ordered new Raspberry Pi5 computer for 60\$.
It is 2-3x faster than my Pi4Bs and my Pi400.

While I can use PARI/GP on those computers as well, it is 7x
faster on my AMD 7600X/7950X computers.

pi@raspberrypi400:~ \$ wolframscript
Wolfram Language 13.3.1 Engine for Linux ARM (64-bit)

```
In[1]:= Solve[14*a^2+(130*b+2*c)*a+(302*b^2+101*c^2)==101,{a,b,c},Integers]
```
```
Out[1]= {{a -> -1733, b -> 373, c -> 17}, {a -> -1728, b -> 372, c -> 17},
```
```
```   {a -> -1715, b -> 369, c -> 17}, {a -> -1701, b -> 366, c -> 17},
```
```
```
```   {a -> -1700, b -> 366, c -> 17}, {a -> -1691, b -> 364, c -> 17},
```
```
```
```   {a -> -1561, b -> 336, c -> 15}, {a -> -1557, b -> 335, c -> 15},
```
```
```
```   {a -> -1551, b -> 334, c -> 15}, {a -> -1539, b -> 331, c -> 15},
```
```
```
```   {a -> -1532, b -> 330, c -> 15}, {a -> -1516, b -> 326, c -> 15},
```
```
```
```   {a -> -1504, b -> 324, c -> 15}, {a -> -1488, b -> 320, c -> 15},
```
```
```
```   {a -> -1481, b -> 319, c -> 15}, {a -> -1469, b -> 316, c -> 15},
```
```
```
```   {a -> -1463, b -> 315, c -> 15}, {a -> -1459, b -> 314, c -> 15},
```
```
```
```   {a -> -1375, b -> 296, c -> 13}, {a -> -1365, b -> 294, c -> 13},
```
```
```
```   {a -> -1312, b -> 282, c -> 13}, {a -> -1284, b -> 276, c -> 13},
```
```
```
```   {a -> -1267, b -> 273, c -> 13}, {a -> -1249, b -> 269, c -> 13},
```
```
```
```   {a -> -1185, b -> 255, c -> 11}, {a -> -1172, b -> 252, c -> 11},
```
```
```
```   {a -> -1163, b -> 250, c -> 11}, {a -> -1160, b -> 250, c -> 11},
```
```
```
```   {a -> -1131, b -> 243, c -> 11}, {a -> -1127, b -> 243, c -> 11},
```
```
```
```   {a -> -1113, b -> 240, c -> 11}, {a -> -1076, b -> 232, c -> 11},
```
```
```
```   {a -> -1061, b -> 228, c -> 11}, {a -> -1037, b -> 223, c -> 11},
```
```
```
```   {a -> -1032, b -> 222, c -> 11}, {a -> -1031, b -> 222, c -> 11},
```
```
```
```   {a -> -989, b -> 213, c -> 9}, {a -> -984, b -> 212, c -> 9},
```
```
```
```   {a -> -977, b -> 210, c -> 9}, {a -> -968, b -> 208, c -> 9},
```
```
```
```   {a -> -927, b -> 200, c -> 9}, {a -> -913, b -> 197, c -> 9},
```
```
```
```   {a -> -899, b -> 193, c -> 9}, {a -> -885, b -> 190, c -> 9},
```
```
```
```   {a -> -844, b -> 182, c -> 9}, {a -> -835, b -> 180, c -> 9},
```
```
```
```   {a -> -828, b -> 178, c -> 9}, {a -> -823, b -> 177, c -> 9},
```
```
```
```   {a -> -795, b -> 171, c -> 7}, {a -> -760, b -> 164, c -> 7},
```
```
```
```   {a -> -741, b -> 159, c -> 7}, {a -> -676, b -> 146, c -> 7},
```
```
```
```   {a -> -643, b -> 138, c -> 7}, {a -> -613, b -> 132, c -> 7},
```
```
```
```   {a -> -599, b -> 129, c -> 5}, {a -> -584, b -> 126, c -> 5},
```
```
```
```   {a -> -509, b -> 109, c -> 5}, {a -> -467, b -> 100, c -> 5},
```
```
```
```   {a -> -444, b -> 96, c -> 5}, {a -> -417, b -> 90, c -> 5},
```
```
```
```   {a -> -400, b -> 86, c -> 3}, {a -> -399, b -> 86, c -> 3},
```
```
```
```   {a -> -389, b -> 84, c -> 3}, {a -> -387, b -> 83, c -> 3},
```
```
```
```   {a -> -369, b -> 79, c -> 3}, {a -> -365, b -> 79, c -> 3},
```
```
```
```   {a -> -337, b -> 72, c -> 3}, {a -> -332, b -> 72, c -> 3},
```
```
```
```   {a -> -304, b -> 66, c -> 3}, {a -> -300, b -> 64, c -> 3},
```
```
```
```   {a -> -272, b -> 58, c -> 3}, {a -> -267, b -> 58, c -> 3},
```
```
```
```   {a -> -239, b -> 51, c -> 3}, {a -> -235, b -> 51, c -> 3},
```
```
```
```   {a -> -217, b -> 47, c -> 3}, {a -> -215, b -> 46, c -> 3},
```
```
```
```   {a -> -205, b -> 44, c -> 3}, {a -> -204, b -> 44, c -> 3},
```
```
```
```   {a -> -196, b -> 42, c -> 1}, {a -> -151, b -> 32, c -> 1},
```
```
```
```   {a -> -151, b -> 33, c -> 1}, {a -> -81, b -> 18, c -> 1},
```
```
```
```   {a -> -25, b -> 5, c -> 1}, {a -> 0, b -> 0, c -> -1},
```
```
```
```   {a -> 0, b -> 0, c -> 1}, {a -> 25, b -> -5, c -> -1},
```
```
```
```   {a -> 81, b -> -18, c -> -1}, {a -> 151, b -> -33, c -> -1},
```
```
```
```   {a -> 151, b -> -32, c -> -1}, {a -> 196, b -> -42, c -> -1},
```
```
```
```   {a -> 204, b -> -44, c -> -3}, {a -> 205, b -> -44, c -> -3},
```
```
```
```   {a -> 215, b -> -46, c -> -3}, {a -> 217, b -> -47, c -> -3},
```
```
```
```   {a -> 235, b -> -51, c -> -3}, {a -> 239, b -> -51, c -> -3},
```
```
```
```   {a -> 267, b -> -58, c -> -3}, {a -> 272, b -> -58, c -> -3},
```
```
```
```   {a -> 300, b -> -64, c -> -3}, {a -> 304, b -> -66, c -> -3},
```
```
```
```   {a -> 332, b -> -72, c -> -3}, {a -> 337, b -> -72, c -> -3},
```
```
```
```   {a -> 365, b -> -79, c -> -3}, {a -> 369, b -> -79, c -> -3},
```
```
```
```   {a -> 387, b -> -83, c -> -3}, {a -> 389, b -> -84, c -> -3},
```
```
```
```   {a -> 399, b -> -86, c -> -3}, {a -> 400, b -> -86, c -> -3},
```
```
```
```   {a -> 417, b -> -90, c -> -5}, {a -> 444, b -> -96, c -> -5},
```
```
```
```   {a -> 467, b -> -100, c -> -5}, {a -> 509, b -> -109, c -> -5},
```
```
```
```   {a -> 584, b -> -126, c -> -5}, {a -> 599, b -> -129, c -> -5},
```
```
```
```   {a -> 613, b -> -132, c -> -7}, {a -> 643, b -> -138, c -> -7},
```
```
```
```   {a -> 676, b -> -146, c -> -7}, {a -> 741, b -> -159, c -> -7},
```
```
```
```   {a -> 760, b -> -164, c -> -7}, {a -> 795, b -> -171, c -> -7},
```
```
```
```   {a -> 823, b -> -177, c -> -9}, {a -> 828, b -> -178, c -> -9},
```
```
```
```   {a -> 835, b -> -180, c -> -9}, {a -> 844, b -> -182, c -> -9},
```
```
```
```   {a -> 885, b -> -190, c -> -9}, {a -> 899, b -> -193, c -> -9},
```
```
```
```   {a -> 913, b -> -197, c -> -9}, {a -> 927, b -> -200, c -> -9},
```
```
```
```   {a -> 968, b -> -208, c -> -9}, {a -> 977, b -> -210, c -> -9},
```
```
```
```   {a -> 984, b -> -212, c -> -9}, {a -> 989, b -> -213, c -> -9},
```
```
```
```   {a -> 1031, b -> -222, c -> -11}, {a -> 1032, b -> -222, c -> -11},
```
```
```
```   {a -> 1037, b -> -223, c -> -11}, {a -> 1061, b -> -228, c -> -11},
```
```
```
```   {a -> 1076, b -> -232, c -> -11}, {a -> 1113, b -> -240, c -> -11},
```
```
```
```   {a -> 1127, b -> -243, c -> -11}, {a -> 1131, b -> -243, c -> -11},
```
```
```
```   {a -> 1160, b -> -250, c -> -11}, {a -> 1163, b -> -250, c -> -11},
```
```
```
```   {a -> 1172, b -> -252, c -> -11}, {a -> 1185, b -> -255, c -> -11},
```
```
```
```   {a -> 1249, b -> -269, c -> -13}, {a -> 1267, b -> -273, c -> -13},
```
```
```
```   {a -> 1284, b -> -276, c -> -13}, {a -> 1312, b -> -282, c -> -13},
```
```
```
```   {a -> 1365, b -> -294, c -> -13}, {a -> 1375, b -> -296, c -> -13},
```
```
```
```   {a -> 1459, b -> -314, c -> -15}, {a -> 1463, b -> -315, c -> -15},
```
```
```
```   {a -> 1469, b -> -316, c -> -15}, {a -> 1481, b -> -319, c -> -15},
```
```
```
```   {a -> 1488, b -> -320, c -> -15}, {a -> 1504, b -> -324, c -> -15},
```
```
```
```   {a -> 1516, b -> -326, c -> -15}, {a -> 1532, b -> -330, c -> -15},
```
```
```
```   {a -> 1539, b -> -331, c -> -15}, {a -> 1551, b -> -334, c -> -15},
```
```
```
```   {a -> 1557, b -> -335, c -> -15}, {a -> 1561, b -> -336, c -> -15},
```
```
```
```   {a -> 1691, b -> -364, c -> -17}, {a -> 1700, b -> -366, c -> -17},
```
```
```
```   {a -> 1701, b -> -366, c -> -17}, {a -> 1715, b -> -369, c -> -17},
```
```
```
```   {a -> 1728, b -> -372, c -> -17}, {a -> 1733, b -> -373, c -> -17}}
```
```
In[2]:=

```