POV-Ray : Newsgroups : povray.text.scene-files : [Minimum Volume] Bounding Ellipsoid via SVD Server Time
31 Oct 2024 21:22:33 EDT (-0400)
  [Minimum Volume] Bounding Ellipsoid via SVD (Message 5 to 14 of 34)  
<<< Previous 4 Messages Goto Latest 10 Messages Next 10 Messages >>>
From: Bald Eagle
Subject: Re: [Minimum Volume] Bounding Ellipsoid via SVD
Date: 5 Nov 2019 20:10:00
Message: <web.5dc21d59f7b9a3af4eec112d0@news.povray.org>
I copied an pasted / modified the print_matrix () function into all of the other
functions, and puzzled out how to print out a vector ("list").

Got that to compile, and now we can step-by-step what happens, and where it goes
off the rails.   Looks like the trouble starts when trying to create the
Hermitian matrix.

In any event, this is way farther along than I'd thought I'd be by now...   :)

I suppose I need to dump everything to a text file, rather than to std::cout <<

Singular Value Decomposition (SVD):

Enter size of matrix N = (50x50 max): 10

A =
9.0 7.0 3.0 3.0 6.0 5.0 0.0 9.0 3.0 4.0
8.0 4.0 0.0 4.0 7.0 3.0 2.0 6.0 6.0 6.0
1.0 9.0 5.0 3.0 6.0 7.0 5.0 1.0 2.0 8.0
5.0 3.0 7.0 8.0 6.0 6.0 6.0 7.0 5.0 1.0
3.0 5.0 8.0 3.0 0.0 5.0 8.0 2.0 3.0 5.0
0.0 6.0 6.0 6.0 9.0 2.0 5.0 4.0 5.0 9.0
3.0 2.0 3.0 0.0 3.0 1.0 6.0 9.0 8.0 4.0
0.0 2.0 9.0 0.0 7.0 1.0 5.0 8.0 3.0 1.0
3.0 6.0 7.0 1.0 2.0 7.0 5.0 9.0 3.0 0.0
0.0 8.0 2.0 3.0 1.0 7.0 7.0 9.0 6.0 5.0


[matrix]transposed =
9.0 8.0 1.0 5.0 3.0 0.0 3.0 0.0 3.0 0.0
7.0 4.0 9.0 3.0 5.0 6.0 2.0 2.0 6.0 8.0
3.0 0.0 5.0 7.0 8.0 6.0 3.0 9.0 7.0 2.0
3.0 4.0 3.0 8.0 3.0 6.0 0.0 0.0 1.0 3.0
6.0 7.0 6.0 6.0 0.0 9.0 3.0 7.0 2.0 1.0
5.0 3.0 7.0 6.0 5.0 2.0 1.0 1.0 7.0 7.0
0.0 2.0 5.0 6.0 8.0 5.0 6.0 5.0 5.0 7.0
9.0 6.0 1.0 7.0 2.0 4.0 9.0 8.0 9.0 9.0
3.0 6.0 2.0 5.0 3.0 5.0 8.0 3.0 3.0 6.0
4.0 6.0 8.0 1.0 5.0 9.0 4.0 1.0 0.0 5.0


[matrices]multiplied =
315.0 265.0 214.0 259.0 167.0 229.0 194.0 173.0 230.0 231.0
265.0 266.0 195.0 234.0 147.0 235.0 194.0 142.0 169.0 206.0
214.0 195.0 295.0 224.0 220.0 281.0 148.0 159.0 196.0 242.0
259.0 234.0 224.0 330.0 222.0 266.0 209.0 219.0 252.0 250.0
167.0 147.0 220.0 222.0 234.0 214.0 158.0 157.0 200.0 217.0
229.0 235.0 281.0 266.0 214.0 340.0 201.0 212.0 192.0 247.0
194.0 194.0 148.0 209.0 158.0 201.0 229.0 183.0 190.0 223.0
173.0 142.0 159.0 219.0 157.0 212.0 183.0 234.0 202.0 178.0
230.0 169.0 196.0 252.0 200.0 192.0 190.0 202.0 263.0 250.0
231.0 206.0 242.0 250.0 217.0 247.0 223.0 178.0 250.0 318.0


[matrices]multiplied =
198.0 158.0 121.0 114.0 161.0 145.0 108.0 225.0 144.0 124.0
158.0 324.0 245.0 169.0 236.0 267.0 249.0 311.0 211.0 256.0
121.0 245.0 326.0 153.0 232.0 219.0 273.0 301.0 192.0 184.0
114.0 169.0 153.0 153.0 171.0 151.0 151.0 176.0 139.0 152.0
161.0 236.0 232.0 171.0 301.0 178.0 195.0 290.0 204.0 225.0
145.0 267.0 219.0 151.0 178.0 248.0 222.0 273.0 176.0 183.0
108.0 249.0 273.0 151.0 195.0 222.0 289.0 297.0 221.0 207.0
225.0 311.0 301.0 176.0 290.0 273.0 297.0 494.0 303.0 222.0
144.0 211.0 192.0 139.0 204.0 176.0 221.0 303.0 226.0 194.0
124.0 256.0 184.0 152.0 225.0 183.0 207.0 222.0 194.0 265.0


Eigenvectors =
0.7 1.2 1.1 0.8 1.1 1.0 1.1 1.5 1.0 1.0

Hermitian matrix =
1.4 nan nan nan nan nan nan nan nan nan
-1.7 1.0 nan nan nan nan nan nan nan nan
-1.5 nan 1.0 nan nan nan nan nan nan nan
-1.0 nan nan 1.0 nan nan nan nan nan nan
-1.5 nan nan nan 1.0 nan nan nan nan nan
-1.4 nan nan nan nan 1.0 nan nan nan nan
-1.5 nan nan nan nan nan 1.0 nan nan nan
-2.0 nan nan nan nan nan nan 1.0 nan nan
-1.4 nan nan nan nan nan nan nan 1.0 nan
-1.4 nan nan nan nan nan nan nan nan 1.0


[matrices]multiplied =
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan


Hermitian matrix inverse =
0.7 nan nan nan nan nan nan nan nan nan
-1.2 1.0 nan nan nan nan nan nan nan nan
-1.1 nan 1.0 nan nan nan nan nan nan nan
-0.8 nan nan 1.0 nan nan nan nan nan nan
-1.1 nan nan nan 1.0 nan nan nan nan nan
-1.0 nan nan nan nan 1.0 nan nan nan nan
-1.1 nan nan nan nan nan 1.0 nan nan nan
-1.5 nan nan nan nan nan nan 1.0 nan nan
-1.0 nan nan nan nan nan nan nan 1.0 nan
-1.0 nan nan nan nan nan nan nan nan 1.0


[matrices]multiplied =
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan


Reduced matrix =
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan


Eigenvectors =
nan nan nan nan nan nan nan nan 1.0

Hermitian matrix =
nan nan nan nan nan nan nan nan nan
nan 1.0 nan nan nan nan nan nan nan
nan nan 1.0 nan nan nan nan nan nan
nan nan nan 1.0 nan nan nan nan nan
nan nan nan nan 1.0 nan nan nan nan
nan nan nan nan nan 1.0 nan nan nan
nan nan nan nan nan nan 1.0 nan nan
nan nan nan nan nan nan nan 1.0 nan
nan nan nan nan nan nan nan nan 1.0


[matrices]multiplied =
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan


Hermitian matrix inverse =
nan nan nan nan nan nan nan nan nan
nan 1.0 nan nan nan nan nan nan nan
nan nan 1.0 nan nan nan nan nan nan
nan nan nan 1.0 nan nan nan nan nan
nan nan nan nan 1.0 nan nan nan nan
nan nan nan nan nan 1.0 nan nan nan
nan nan nan nan nan nan 1.0 nan nan
nan nan nan nan nan nan nan 1.0 nan
-1.0 nan nan nan nan nan nan nan 1.0


[matrices]multiplied =
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan


Reduced matrix =
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan


Eigenvectors =
nan nan nan nan nan nan nan 1.0

Hermitian matrix =
nan nan nan nan nan nan nan nan
nan 1.0 nan nan nan nan nan nan
nan nan 1.0 nan nan nan nan nan
nan nan nan 1.0 nan nan nan nan
nan nan nan nan 1.0 nan nan nan
nan nan nan nan nan 1.0 nan nan
nan nan nan nan nan nan 1.0 nan
nan nan nan nan nan nan nan 1.0


[matrices]multiplied =
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan


Hermitian matrix inverse =
nan nan nan nan nan nan nan nan
nan 1.0 nan nan nan nan nan nan
nan nan 1.0 nan nan nan nan nan
nan nan nan 1.0 nan nan nan nan
nan nan nan nan 1.0 nan nan nan
nan nan nan nan nan 1.0 nan nan
nan nan nan nan nan nan 1.0 nan
-1.0 nan nan nan nan nan nan 1.0


[matrices]multiplied =
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan


Reduced matrix =
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan


Eigenvectors =
nan nan nan nan nan nan 1.0

Hermitian matrix =
nan nan nan nan nan nan nan
nan 1.0 nan nan nan nan nan
nan nan 1.0 nan nan nan nan
nan nan nan 1.0 nan nan nan
nan nan nan nan 1.0 nan nan
nan nan nan nan nan 1.0 nan
nan nan nan nan nan nan 1.0


[matrices]multiplied =
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan


Hermitian matrix inverse =
nan nan nan nan nan nan nan
nan 1.0 nan nan nan nan nan
nan nan 1.0 nan nan nan nan
nan nan nan 1.0 nan nan nan
nan nan nan nan 1.0 nan nan
nan nan nan nan nan 1.0 nan
-1.0 nan nan nan nan nan 1.0


[matrices]multiplied =
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan


Reduced matrix =
nan nan nan nan nan nan
nan nan nan nan nan nan
nan nan nan nan nan nan
nan nan nan nan nan nan
nan nan nan nan nan nan
nan nan nan nan nan nan


Eigenvectors =
nan nan nan nan nan 1.0

Hermitian matrix =
nan nan nan nan nan nan
nan 1.0 nan nan nan nan
nan nan 1.0 nan nan nan
nan nan nan 1.0 nan nan
nan nan nan nan 1.0 nan
nan nan nan nan nan 1.0


[matrices]multiplied =
nan nan nan nan nan nan
nan nan nan nan nan nan
nan nan nan nan nan nan
nan nan nan nan nan nan
nan nan nan nan nan nan
nan nan nan nan nan nan


Hermitian matrix inverse =
nan nan nan nan nan nan
nan 1.0 nan nan nan nan
nan nan 1.0 nan nan nan
nan nan nan 1.0 nan nan
nan nan nan nan 1.0 nan
-1.0 nan nan nan nan 1.0


[matrices]multiplied =
nan nan nan nan nan nan
nan nan nan nan nan nan
nan nan nan nan nan nan
nan nan nan nan nan nan
nan nan nan nan nan nan
nan nan nan nan nan nan


Reduced matrix =
nan nan nan nan nan
nan nan nan nan nan
nan nan nan nan nan
nan nan nan nan nan
nan nan nan nan nan


Eigenvectors =
nan nan nan nan 1.0

Hermitian matrix =
nan nan nan nan nan
nan 1.0 nan nan nan
nan nan 1.0 nan nan
nan nan nan 1.0 nan
nan nan nan nan 1.0


[matrices]multiplied =
nan nan nan nan nan
nan nan nan nan nan
nan nan nan nan nan
nan nan nan nan nan
nan nan nan nan nan


Hermitian matrix inverse =
nan nan nan nan nan
nan 1.0 nan nan nan
nan nan 1.0 nan nan
nan nan nan 1.0 nan
-1.0 nan nan nan 1.0


[matrices]multiplied =
nan nan nan nan nan
nan nan nan nan nan
nan nan nan nan nan
nan nan nan nan nan
nan nan nan nan nan


Reduced matrix =
nan nan nan nan
nan nan nan nan
nan nan nan nan
nan nan nan nan


Eigenvectors =
nan nan nan 1.0

Hermitian matrix =
nan nan nan nan
nan 1.0 nan nan
nan nan 1.0 nan
nan nan nan 1.0


[matrices]multiplied =
nan nan nan nan
nan nan nan nan
nan nan nan nan
nan nan nan nan


Hermitian matrix inverse =
nan nan nan nan
nan 1.0 nan nan
nan nan 1.0 nan
-1.0 nan nan 1.0


[matrices]multiplied =
nan nan nan nan
nan nan nan nan
nan nan nan nan
nan nan nan nan


Reduced matrix =
nan nan nan
nan nan nan
nan nan nan


Eigenvectors =
nan nan 1.0

Hermitian matrix =
nan nan nan
nan 1.0 nan
nan nan 1.0


[matrices]multiplied =
nan nan nan
nan nan nan
nan nan nan


Hermitian matrix inverse =
nan nan nan
nan 1.0 nan
-1.0 nan 1.0


[matrices]multiplied =
nan nan nan
nan nan nan
nan nan nan


Reduced matrix =
nan nan
nan nan


Eigenvectors =
nan 1.0

Hermitian matrix =
nan nan
nan 1.0


[matrices]multiplied =
nan nan
nan nan


Hermitian matrix inverse =
nan nan
-1.0 1.0


[matrices]multiplied =
nan nan
nan nan


Reduced matrix =
nan


Eigenvectors =
0.7 1.2 1.1 0.8 1.1 1.0 1.1 1.5 1.0 1.0

Eigenvectors =
nan nan nan nan nan nan nan nan nan 1.0

Eigenvectors =
nan nan nan nan nan nan nan nan nan 1.0

Eigenvectors =
nan nan nan nan nan nan nan nan nan 1.0

Eigenvectors =
nan nan nan nan nan nan nan nan nan 1.0

Eigenvectors =
nan nan nan nan nan nan nan nan nan 1.0

Eigenvectors =
nan nan nan nan nan nan nan nan nan 1.0

Eigenvectors =
nan nan nan nan nan nan nan nan nan 1.0

Eigenvectors =
nan nan nan nan nan nan nan nan nan 1.0

Eigenvectors =
nan nan nan nan nan nan nan nan nan 1.0

[matrix]transposed =
0.2 nan nan nan nan nan nan nan nan nan
0.4 nan nan nan nan nan nan nan nan nan
0.3 nan nan nan nan nan nan nan nan nan
0.2 nan nan nan nan nan nan nan nan nan
0.3 nan nan nan nan nan nan nan nan nan
0.3 nan nan nan nan nan nan nan nan nan
0.3 nan nan nan nan nan nan nan nan nan
0.4 nan nan nan nan nan nan nan nan nan
0.3 nan nan nan nan nan nan nan nan nan
0.3 nan nan nan nan nan nan nan nan nan


inverse diagonal matrix =
0.0 nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan


[matrices]multiplied =
15.5 nan nan nan nan nan nan nan nan nan
14.0 nan nan nan nan nan nan nan nan nan
14.8 nan nan nan nan nan nan nan nan nan
16.8 nan nan nan nan nan nan nan nan nan
13.1 nan nan nan nan nan nan nan nan nan
16.5 nan nan nan nan nan nan nan nan nan
13.0 nan nan nan nan nan nan nan nan nan
12.6 nan nan nan nan nan nan nan nan nan
14.5 nan nan nan nan nan nan nan nan nan
16.1 nan nan nan nan nan nan nan nan nan


[matrices]multiplied =
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan


S =
46.7 nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan


U =
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan


V =
0.2 nan nan nan nan nan nan nan nan nan
0.4 nan nan nan nan nan nan nan nan nan
0.3 nan nan nan nan nan nan nan nan nan
0.2 nan nan nan nan nan nan nan nan nan
0.3 nan nan nan nan nan nan nan nan nan
0.3 nan nan nan nan nan nan nan nan nan
0.3 nan nan nan nan nan nan nan nan nan
0.4 nan nan nan nan nan nan nan nan nan
0.3 nan nan nan nan nan nan nan nan nan
0.3 nan nan nan nan nan nan nan nan nan


Post a reply to this message

From: Bald Eagle
Subject: Re: [Minimum Volume] Bounding Ellipsoid via SVD
Date: 5 Nov 2019 21:40:00
Message: <web.5dc23255f7b9a3af4eec112d0@news.povray.org>
Looks like the nan values were because the matrix.resize operations didn't fill
in the new positions with 0.

Fixed it one way, until I needed to fix it another ;)

But now it runs without errors or nan entries.

So, now to see if any of this makes any sense in terms of processing a long list
of 3D vectors, and then plug it into the bounding ellipsoid code.

If this only processes square matrices, we'll probably need to use the gsl-bin
svd library to process the vectors.

But here we go  :)


Singular Value Decomposition (SVD):

Enter size of matrix N = (50x50 max): 10

A =
8.0 4.0 2.0 4.0 3.0 9.0 0.0 8.0 4.0 9.0
8.0 4.0 2.0 0.0 8.0 9.0 5.0 2.0 4.0 4.0
4.0 3.0 5.0 5.0 9.0 0.0 3.0 5.0 0.0 9.0
9.0 0.0 3.0 1.0 6.0 9.0 2.0 9.0 9.0 7.0
8.0 9.0 3.0 2.0 9.0 1.0 3.0 6.0 4.0 8.0
0.0 8.0 1.0 8.0 5.0 0.0 8.0 8.0 7.0 0.0
7.0 6.0 3.0 3.0 0.0 1.0 2.0 2.0 0.0 3.0
1.0 0.0 2.0 4.0 4.0 2.0 6.0 8.0 8.0 2.0
8.0 1.0 2.0 9.0 9.0 8.0 2.0 9.0 6.0 9.0
2.0 4.0 8.0 5.0 9.0 8.0 6.0 3.0 2.0 9.0


[matrix]transposed =
8.0 8.0 4.0 9.0 8.0 0.0 7.0 1.0 8.0 2.0
4.0 4.0 3.0 0.0 9.0 8.0 6.0 0.0 1.0 4.0
2.0 2.0 5.0 3.0 3.0 1.0 3.0 2.0 2.0 8.0
4.0 0.0 5.0 1.0 2.0 8.0 3.0 4.0 9.0 5.0
3.0 8.0 9.0 6.0 9.0 5.0 0.0 4.0 9.0 9.0
9.0 9.0 0.0 9.0 1.0 0.0 1.0 2.0 8.0 8.0
0.0 5.0 3.0 2.0 3.0 8.0 2.0 6.0 2.0 6.0
8.0 2.0 5.0 9.0 6.0 8.0 2.0 8.0 9.0 3.0
4.0 4.0 0.0 9.0 4.0 7.0 0.0 8.0 6.0 2.0
9.0 4.0 9.0 7.0 8.0 0.0 3.0 2.0 9.0 9.0


[matrices]multiplied =
351.0 257.0 222.0 352.0 286.0 173.0 150.0 172.0 384.0 280.0
257.0 290.0 187.0 299.0 262.0 158.0 121.0 148.0 304.0 272.0
222.0 187.0 271.0 224.0 276.0 178.0 119.0 146.0 303.0 280.0
352.0 299.0 224.0 423.0 298.0 192.0 127.0 231.0 415.0 293.0
286.0 262.0 276.0 298.0 365.0 236.0 168.0 174.0 342.0 291.0
173.0 158.0 178.0 192.0 236.0 331.0 107.0 222.0 257.0 211.0
150.0 121.0 119.0 127.0 168.0 107.0 121.0 61.0 152.0 130.0
172.0 148.0 146.0 231.0 174.0 222.0 61.0 209.0 250.0 184.0
384.0 304.0 303.0 415.0 342.0 257.0 152.0 250.0 497.0 358.0
280.0 272.0 280.0 293.0 291.0 211.0 130.0 184.0 358.0 384.0


[matrices]multiplied =
407.0 206.0 158.0 184.0 344.0 322.0 142.0 329.0 237.0 380.0
206.0 239.0 118.0 160.0 237.0 127.0 158.0 206.0 138.0 214.0
158.0 118.0 133.0 125.0 215.0 153.0 118.0 162.0 106.0 219.0
184.0 160.0 125.0 241.0 263.0 170.0 165.0 276.0 185.0 247.0
344.0 237.0 215.0 263.0 474.0 314.0 242.0 373.0 273.0 424.0
322.0 127.0 153.0 170.0 314.0 377.0 144.0 291.0 237.0 339.0
142.0 158.0 118.0 165.0 242.0 144.0 191.0 213.0 178.0 175.0
329.0 206.0 162.0 276.0 373.0 291.0 213.0 432.0 325.0 366.0
237.0 138.0 106.0 185.0 273.0 237.0 178.0 325.0 282.0 235.0
380.0 214.0 219.0 247.0 424.0 339.0 175.0 366.0 235.0 466.0


Eigenvectors =
0.9 0.6 0.5 0.6 1.0 0.8 0.5 1.0 0.7 1.0

Hermitian matrix =
1.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
-0.6 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
-0.5 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
-0.7 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-1.1 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0
-0.9 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0
-0.6 0.0 0.0 0.0 0.0 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.0 0.0 0.0
-0.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0
-1.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0


[matrices]multiplied =
458.9 232.3 178.2 207.5 387.9 363.1 160.1 371.0 267.2 428.5
-53.3 107.8 17.3 42.8 17.9 -78.1 67.5 -3.6 -13.0 -28.1
-63.0 6.1 47.2 25.1 28.2 -21.9 40.9 -16.7 -22.7 12.6
-110.0 11.2 10.9 108.1 14.5 -62.6 62.4 38.3 13.8 -27.5
-123.7 0.3 33.5 51.6 78.7 -56.0 78.8 -5.0 0.7 -12.6
-49.5 -61.0 8.8 2.1 0.0 83.1 14.4 -9.3 20.7 -7.9
-105.1 33.0 22.1 53.3 33.2 -51.5 104.8 13.3 34.1 -55.7
-111.2 -16.8 -8.9 77.0 0.9 -57.3 59.4 76.2 68.7 -45.0
-87.1 -26.1 -19.8 38.5 -1.0 -19.4 64.9 63.0 93.3 -67.6
-78.9 -18.3 40.8 39.5 36.1 -24.1 14.9 -5.0 -32.2 37.5


Hermitian matrix inverse =
0.9 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
-0.6 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
-0.5 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
-0.6 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0
-0.8 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0
-0.5 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0
-1.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0
-0.7 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0
-1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0


[matrices]multiplied =
-1691.4 232.3 178.2 207.5 387.9 363.1 160.1 371.0 267.2 428.5
-94.5 107.8 17.3 42.8 17.9 -78.1 67.5 -3.6 -13.0 -28.1
-111.8 6.1 47.2 25.1 28.2 -21.9 40.9 -16.7 -22.7 12.6
-195.1 11.2 10.9 108.1 14.5 -62.6 62.4 38.3 13.8 -27.5
-219.3 0.3 33.5 51.6 78.7 -56.0 78.8 -5.0 0.7 -12.6
-87.8 -61.0 8.8 2.1 0.0 83.1 14.4 -9.3 20.7 -7.9
-186.3 33.0 22.1 53.3 33.2 -51.5 104.8 13.3 34.1 -55.7
-197.3 -16.8 -8.9 77.0 0.9 -57.3 59.4 76.2 68.7 -45.0
-154.5 -26.1 -19.8 38.5 -1.0 -19.4 64.9 63.0 93.3 -67.6
-140.0 -18.3 40.8 39.5 36.1 -24.1 14.9 -5.0 -32.2 37.5


Reduced matrix =
107.8 17.3 42.8 17.9 -78.1 67.5 -3.6 -13.0 -28.1
6.1 47.2 25.1 28.2 -21.9 40.9 -16.7 -22.7 12.6
11.2 10.9 108.1 14.5 -62.6 62.4 38.3 13.8 -27.5
0.3 33.5 51.6 78.7 -56.0 78.8 -5.0 0.7 -12.6
-61.0 8.8 2.1 0.0 83.1 14.4 -9.3 20.7 -7.9
33.0 22.1 53.3 33.2 -51.5 104.8 13.3 34.1 -55.7
-16.8 -8.9 77.0 0.9 -57.3 59.4 76.2 68.7 -45.0
-26.1 -19.8 38.5 -1.0 -19.4 64.9 63.0 93.3 -67.6
-18.3 40.8 39.5 36.1 -24.1 14.9 -5.0 -32.2 37.5


Eigenvectors =
3.2 1.3 3.7 3.1 -0.6 3.8 3.6 2.9 1.0

Hermitian matrix =
0.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
-0.4 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
-1.1 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-1.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0
0.2 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0
-1.2 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0
-1.1 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0
-0.9 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0
-0.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0


[matrices]multiplied =
33.2 5.3 13.2 5.5 -24.0 20.8 -1.1 -4.0 -8.6
-35.9 40.4 8.4 21.2 8.6 14.6 -15.3 -17.6 23.6
-110.8 -8.8 59.7 -5.7 25.8 -14.0 42.4 28.5 4.3
-103.9 16.7 10.2 61.5 19.6 13.5 -1.6 13.2 14.5
-39.8 12.2 10.5 3.5 67.7 27.7 -10.0 18.1 -13.4
-93.8 1.7 3.0 12.2 40.4 25.4 17.5 49.4 -22.6
-137.3 -28.3 29.2 -19.0 30.1 -16.1 80.2 83.2 -13.6
-120.8 -35.1 0.9 -16.6 49.2 5.6 66.1 104.7 -42.9
-51.4 35.5 26.4 30.6 -0.0 -5.9 -3.9 -28.2 46.2


Hermitian matrix inverse =
3.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
-1.3 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
-3.7 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-3.1 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0
0.6 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0
-3.8 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0
-3.6 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0
-2.9 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0
-1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0


[matrices]multiplied =
-35.4 5.3 13.2 5.5 -24.0 20.8 -1.1 -4.0 -8.6
-233.3 40.4 8.4 21.2 8.6 14.6 -15.3 -17.6 23.6
-720.1 -8.8 59.7 -5.7 25.8 -14.0 42.4 28.5 4.3
-675.3 16.7 10.2 61.5 19.6 13.5 -1.6 13.2 14.5
-258.9 12.2 10.5 3.5 67.7 27.7 -10.0 18.1 -13.4
-609.5 1.7 3.0 12.2 40.4 25.4 17.5 49.4 -22.6
-892.2 -28.3 29.2 -19.0 30.1 -16.1 80.2 83.2 -13.6
-785.0 -35.1 0.9 -16.6 49.2 5.6 66.1 104.7 -42.9
-334.3 35.5 26.4 30.6 -0.0 -5.9 -3.9 -28.2 46.2


Reduced matrix =
40.4 8.4 21.2 8.6 14.6 -15.3 -17.6 23.6
-8.8 59.7 -5.7 25.8 -14.0 42.4 28.5 4.3
16.7 10.2 61.5 19.6 13.5 -1.6 13.2 14.5
12.2 10.5 3.5 67.7 27.7 -10.0 18.1 -13.4
1.7 3.0 12.2 40.4 25.4 17.5 49.4 -22.6
-28.3 29.2 -19.0 30.1 -16.1 80.2 83.2 -13.6
-35.1 0.9 -16.6 49.2 5.6 66.1 104.7 -42.9
35.5 26.4 30.6 -0.0 -5.9 -3.9 -28.2 46.2


Eigenvectors =
0.8 -3.8 -1.5 -1.8 -3.7 -6.8 -7.4 1.0

Hermitian matrix =
1.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0
4.5 1.0 0.0 0.0 0.0 0.0 0.0 0.0
1.7 0.0 1.0 0.0 0.0 0.0 0.0 0.0
2.1 0.0 0.0 1.0 0.0 0.0 0.0 0.0
4.4 0.0 0.0 0.0 1.0 0.0 0.0 0.0
8.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0
8.7 0.0 0.0 0.0 0.0 0.0 1.0 0.0
-1.2 0.0 0.0 0.0 0.0 0.0 0.0 1.0


[matrices]multiplied =
47.9 9.9 25.1 10.2 17.2 -18.1 -20.9 27.9
173.3 97.5 89.9 64.6 51.5 -26.3 -51.0 110.5
86.2 24.6 97.9 34.3 38.5 -27.8 -17.1 55.1
98.9 28.5 49.0 86.2 58.9 -42.7 -19.7 37.2
180.6 40.1 106.1 78.5 89.7 -50.0 -28.7 81.7
296.1 96.5 151.2 99.0 100.6 -42.3 -58.4 175.6
317.3 74.0 168.3 124.2 132.3 -66.9 -49.1 162.6
-12.4 16.4 5.5 -10.2 -23.1 14.2 -7.3 18.2


Hermitian matrix inverse =
0.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0
3.8 1.0 0.0 0.0 0.0 0.0 0.0 0.0
1.5 0.0 1.0 0.0 0.0 0.0 0.0 0.0
1.8 0.0 0.0 1.0 0.0 0.0 0.0 0.0
3.7 0.0 0.0 0.0 1.0 0.0 0.0 0.0
6.8 0.0 0.0 0.0 0.0 1.0 0.0 0.0
7.4 0.0 0.0 0.0 0.0 0.0 1.0 0.0
-1.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0


[matrices]multiplied =
-106.6 9.9 25.1 10.2 17.2 -18.1 -20.9 27.9
292.7 97.5 89.9 64.6 51.5 -26.3 -51.0 110.5
145.5 24.6 97.9 34.3 38.5 -27.8 -17.1 55.1
167.0 28.5 49.0 86.2 58.9 -42.7 -19.7 37.2
305.0 40.1 106.1 78.5 89.7 -50.0 -28.7 81.7
500.0 96.5 151.2 99.0 100.6 -42.3 -58.4 175.6
535.9 74.0 168.3 124.2 132.3 -66.9 -49.1 162.6
-20.9 16.4 5.5 -10.2 -23.1 14.2 -7.3 18.2


Reduced matrix =
97.5 89.9 64.6 51.5 -26.3 -51.0 110.5
24.6 97.9 34.3 38.5 -27.8 -17.1 55.1
28.5 49.0 86.2 58.9 -42.7 -19.7 37.2
40.1 106.1 78.5 89.7 -50.0 -28.7 81.7
96.5 151.2 99.0 100.6 -42.3 -58.4 175.6
74.0 168.3 124.2 132.3 -66.9 -49.1 162.6
16.4 5.5 -10.2 -23.1 14.2 -7.3 18.2


Eigenvectors =
45.4 27.6 25.3 43.8 72.1 75.5 1.0

Hermitian matrix =
0.0 0.0 0.0 0.0 0.0 0.0 0.0
-0.6 1.0 0.0 0.0 0.0 0.0 0.0
-0.6 0.0 1.0 0.0 0.0 0.0 0.0
-1.0 0.0 0.0 1.0 0.0 0.0 0.0
-1.6 0.0 0.0 0.0 1.0 0.0 0.0
-1.7 0.0 0.0 0.0 0.0 1.0 0.0
-0.0 0.0 0.0 0.0 0.0 0.0 1.0


[matrices]multiplied =
2.1 2.0 1.4 1.1 -0.6 -1.1 2.4
-34.7 43.2 -5.0 7.2 -11.8 13.9 -12.2
-25.8 -1.0 50.2 30.2 -28.1 8.7 -24.3
-54.0 19.3 16.1 40.0 -24.6 20.6 -25.0
-58.2 8.5 -3.5 18.9 -0.5 22.5 0.1
-88.1 18.8 16.8 46.7 -23.1 35.7 -21.2
14.3 3.5 -11.6 -24.3 14.8 -6.2 15.8


Hermitian matrix inverse =
45.4 0.0 0.0 0.0 0.0 0.0 0.0
-27.6 1.0 0.0 0.0 0.0 0.0 0.0
-25.3 0.0 1.0 0.0 0.0 0.0 0.0
-43.8 0.0 0.0 1.0 0.0 0.0 0.0
-72.1 0.0 0.0 0.0 1.0 0.0 0.0
-75.5 0.0 0.0 0.0 0.0 1.0 0.0
-1.0 0.0 0.0 0.0 0.0 0.0 1.0


[matrices]multiplied =
81.2 2.0 1.4 1.1 -0.6 -1.1 2.4
-3151.5 43.2 -5.0 7.2 -11.8 13.9 -12.2
-2341.1 -1.0 50.2 30.2 -28.1 8.7 -24.3
-4899.1 19.3 16.1 40.0 -24.6 20.6 -25.0
-5285.4 8.5 -3.5 18.9 -0.5 22.5 0.1
-7997.8 18.8 16.8 46.7 -23.1 35.7 -21.2
1295.9 3.5 -11.6 -24.3 14.8 -6.2 15.8


Reduced matrix =
43.2 -5.0 7.2 -11.8 13.9 -12.2
-1.0 50.2 30.2 -28.1 8.7 -24.3
19.3 16.1 40.0 -24.6 20.6 -25.0
8.5 -3.5 18.9 -0.5 22.5 0.1
18.8 16.8 46.7 -23.1 35.7 -21.2
3.5 -11.6 -24.3 14.8 -6.2 15.8


Eigenvectors =
-0.9 -2.1 -2.1 -1.2 -2.8 1.0

Hermitian matrix =
-1.1 0.0 0.0 0.0 0.0 0.0
-2.2 1.0 0.0 0.0 0.0 0.0
-2.3 0.0 1.0 0.0 0.0 0.0
-1.2 0.0 0.0 1.0 0.0 0.0
-3.0 0.0 0.0 0.0 1.0 0.0
1.1 0.0 0.0 0.0 0.0 1.0


[matrices]multiplied =
-46.5 5.4 -7.7 12.7 -15.0 13.2
-97.2 61.3 14.2 -1.9 -22.4 2.9
-80.6 27.6 23.4 2.6 -11.7 3.3
-45.4 2.8 9.9 14.2 5.1 15.4
-110.0 31.6 25.3 12.0 -5.9 15.3
50.0 -17.0 -16.5 2.1 8.8 2.6


Hermitian matrix inverse =
-0.9 0.0 0.0 0.0 0.0 0.0
2.1 1.0 0.0 0.0 0.0 0.0
2.1 0.0 1.0 0.0 0.0 0.0
1.2 0.0 0.0 1.0 0.0 0.0
2.8 0.0 0.0 0.0 1.0 0.0
-1.0 0.0 0.0 0.0 0.0 1.0


[matrices]multiplied =
-2.3 5.4 -7.7 12.7 -15.0 13.2
180.5 61.3 14.2 -1.9 -22.4 2.9
149.7 27.6 23.4 2.6 -11.7 3.3
84.4 2.8 9.9 14.2 5.1 15.4
204.2 31.6 25.3 12.0 -5.9 15.3
-92.9 -17.0 -16.5 2.1 8.8 2.6


Reduced matrix =
61.3 14.2 -1.9 -22.4 2.9
27.6 23.4 2.6 -11.7 3.3
2.8 9.9 14.2 5.1 15.4
31.6 25.3 12.0 -5.9 15.3
-17.0 -16.5 2.1 8.8 2.6


Eigenvectors =
-2.4 -1.5 -0.4 -1.8 1.0

Hermitian matrix =
-0.4 0.0 0.0 0.0 0.0
-0.6 1.0 0.0 0.0 0.0
-0.2 0.0 1.0 0.0 0.0
-0.7 0.0 0.0 1.0 0.0
0.4 0.0 0.0 0.0 1.0


[matrices]multiplied =
-25.4 -5.9 0.8 9.3 -1.2
-11.0 14.5 3.8 2.4 1.5
-7.7 7.5 14.5 8.9 14.9
-14.2 14.7 13.4 10.9 13.1
8.4 -10.6 1.3 -0.5 3.8


Hermitian matrix inverse =
-2.4 0.0 0.0 0.0 0.0
1.5 1.0 0.0 0.0 0.0
0.4 0.0 1.0 0.0 0.0
1.8 0.0 0.0 1.0 0.0
-1.0 0.0 0.0 0.0 1.0


[matrices]multiplied =
70.6 -5.9 0.8 9.3 -1.2
52.8 14.5 3.8 2.4 1.5
36.9 7.5 14.5 8.9 14.9
68.6 14.7 13.4 10.9 13.1
-40.6 -10.6 1.3 -0.5 3.8


Reduced matrix =
14.5 3.8 2.4 1.5
7.5 14.5 8.9 14.9
14.7 13.4 10.9 13.1
-10.6 1.3 -0.5 3.8


Eigenvectors =
-2.4 -4.4 -5.3 1.0

Hermitian matrix =
-0.4 0.0 0.0 0.0
-1.8 1.0 0.0 0.0
-2.2 0.0 1.0 0.0
0.4 0.0 0.0 1.0


[matrices]multiplied =
-6.0 -1.6 -1.0 -0.6
-18.8 7.6 4.6 12.3
-17.3 5.0 5.6 9.9
-4.6 2.9 0.5 4.4


Hermitian matrix inverse =
-2.4 0.0 0.0 0.0
4.4 1.0 0.0 0.0
5.3 0.0 1.0 0.0
-1.0 0.0 0.0 1.0


[matrices]multiplied =
2.9 -1.6 -1.0 -0.6
90.3 7.6 4.6 12.3
82.9 5.0 5.6 9.9
22.1 2.9 0.5 4.4


Reduced matrix =
7.6 4.6 12.3
5.0 5.6 9.9
2.9 0.5 4.4


Eigenvectors =
3.2 2.7 1.0

Hermitian matrix =
0.3 0.0 0.0
-0.8 1.0 0.0
-0.3 0.0 1.0


[matrices]multiplied =
2.4 1.4 3.8
-1.4 1.8 -0.4
0.6 -0.9 0.6


Hermitian matrix inverse =
3.2 0.0 0.0
-2.7 1.0 0.0
-1.0 0.0 1.0


[matrices]multiplied =
0.0 1.4 3.8
-8.7 1.8 -0.4
3.6 -0.9 0.6


Reduced matrix =
1.8 -0.4
-0.9 0.6


Eigenvectors =
-1.6 1.0

Hermitian matrix =
-0.6 0.0
0.6 1.0


[matrices]multiplied =
-1.1 0.3
0.2 0.4


Hermitian matrix inverse =
-1.6 0.0
-1.0 1.0


[matrices]multiplied =
1.5 0.3
-0.7 0.4


Reduced matrix =
0.4


Eigenvectors =
0.9 0.6 0.5 0.6 1.0 0.8 0.5 1.0 0.7 1.0

Eigenvectors =
1.4 -1.1 -0.0 -1.2 -0.3 1.7 -1.5 -0.7 -0.6 1.0

Eigenvectors =
0.2 1.4 0.9 -0.0 0.8 -0.9 0.0 -1.2 -1.8 1.0

Eigenvectors =
-3.1 -3.2 1.6 0.9 1.9 1.2 0.8 -0.8 -0.6 1.0

Eigenvectors =
0.0 -0.6 -0.2 1.2 -0.4 -1.1 -1.3 1.0 -0.5 1.0

Eigenvectors =
1.7 -3.8 -1.4 -7.9 8.1 -7.7 -0.9 1.5 3.4 1.0

Eigenvectors =
-0.6 0.1 2.3 -1.5 -1.8 -0.5 0.4 0.9 0.6 1.0

Eigenvectors =
-2.3 1.8 -1.3 -1.0 0.5 1.0 -1.4 0.6 0.3 1.0

Eigenvectors =
0.0 -0.8 -2.6 -1.5 -0.6 0.5 3.4 2.7 -3.6 1.0

Eigenvectors =
-0.0 -0.1 -0.6 0.1 -0.4 -0.3 0.5 -0.8 0.6 1.0

[matrix]transposed =
0.4 0.4 0.1 -0.6 0.0 0.1 -0.2 -0.6 0.0 -0.0
0.2 -0.3 0.4 -0.6 -0.2 -0.3 0.0 0.4 -0.1 -0.1
0.2 -0.0 0.3 0.3 -0.1 -0.1 0.6 -0.3 -0.4 -0.4
0.3 -0.4 -0.0 0.2 0.4 -0.5 -0.4 -0.3 -0.2 0.1
0.4 -0.1 0.3 0.3 -0.2 0.5 -0.5 0.1 -0.1 -0.3
0.3 0.5 -0.3 0.2 -0.4 -0.5 -0.1 0.2 0.1 -0.1
0.2 -0.4 0.0 0.1 -0.5 -0.1 0.1 -0.4 0.5 0.3
0.4 -0.2 -0.4 -0.1 0.4 0.1 0.3 0.2 0.4 -0.5
0.3 -0.2 -0.6 -0.1 -0.2 0.2 0.2 0.1 -0.5 0.4
0.4 0.3 0.3 0.2 0.4 0.1 0.3 0.3 0.2 0.6


inverse diagonal matrix =
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.2 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.7 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.6


[matrices]multiplied =
17.2 5.0 -1.6 -2.4 2.4 -3.1 1.0 1.8 0.6 0.0
15.0 3.6 0.5 -0.8 -6.8 0.5 -2.1 -0.5 0.5 0.0
14.3 -1.6 6.1 2.7 3.6 2.4 0.1 -0.8 0.7 -0.2
18.8 5.0 -6.1 -0.6 -0.7 2.1 1.8 -0.4 -0.4 -0.3
17.4 -1.5 5.1 -4.6 -0.1 3.5 0.2 1.4 -0.4 0.2
13.0 -12.2 -2.1 -1.9 -1.1 -1.7 -0.8 0.7 -0.0 -0.2
8.0 -0.0 3.7 -5.2 0.3 -2.9 1.1 -2.6 -0.2 0.0
11.6 -5.5 -6.0 1.8 -0.2 1.4 1.7 -1.0 0.4 0.3
21.4 1.7 -2.7 1.9 3.9 -0.8 -3.2 -0.7 -0.4 0.1
17.4 -0.1 4.8 6.4 -2.7 -2.4 1.5 0.5 -0.4 0.0


[matrices]multiplied =
0.3 0.3 -0.1 -0.2 0.3 -0.4 0.2 0.5 0.4 0.1
0.3 0.2 0.0 -0.1 -0.7 0.1 -0.4 -0.1 0.4 0.0
0.3 -0.1 0.4 0.3 0.4 0.3 0.0 -0.2 0.5 -0.4
0.4 0.3 -0.4 -0.1 -0.1 0.3 0.3 -0.1 -0.3 -0.5
0.3 -0.1 0.4 -0.4 -0.0 0.5 0.0 0.3 -0.3 0.3
0.3 -0.8 -0.2 -0.2 -0.1 -0.2 -0.2 0.2 -0.0 -0.4
0.2 -0.0 0.3 -0.5 0.0 -0.4 0.2 -0.7 -0.1 0.0
0.2 -0.3 -0.4 0.2 -0.0 0.2 0.3 -0.3 0.3 0.6
0.4 0.1 -0.2 0.2 0.4 -0.1 -0.6 -0.2 -0.3 0.2
0.3 -0.0 0.4 0.6 -0.3 -0.3 0.3 0.1 -0.3 0.1


S =
50.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 15.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 13.7 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 10.7 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 9.4 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 7.2 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 5.1 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 3.9 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.4 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.6


U =
0.3 0.3 -0.1 -0.2 0.3 -0.4 0.2 0.5 0.4 0.1
0.3 0.2 0.0 -0.1 -0.7 0.1 -0.4 -0.1 0.4 0.0
0.3 -0.1 0.4 0.3 0.4 0.3 0.0 -0.2 0.5 -0.4
0.4 0.3 -0.4 -0.1 -0.1 0.3 0.3 -0.1 -0.3 -0.5
0.3 -0.1 0.4 -0.4 -0.0 0.5 0.0 0.3 -0.3 0.3
0.3 -0.8 -0.2 -0.2 -0.1 -0.2 -0.2 0.2 -0.0 -0.4
0.2 -0.0 0.3 -0.5 0.0 -0.4 0.2 -0.7 -0.1 0.0
0.2 -0.3 -0.4 0.2 -0.0 0.2 0.3 -0.3 0.3 0.6
0.4 0.1 -0.2 0.2 0.4 -0.1 -0.6 -0.2 -0.3 0.2
0.3 -0.0 0.4 0.6 -0.3 -0.3 0.3 0.1 -0.3 0.1


V =
0.4 0.4 0.1 -0.6 0.0 0.1 -0.2 -0.6 0.0 -0.0
0.2 -0.3 0.4 -0.6 -0.2 -0.3 0.0 0.4 -0.1 -0.1
0.2 -0.0 0.3 0.3 -0.1 -0.1 0.6 -0.3 -0.4 -0.4
0.3 -0.4 -0.0 0.2 0.4 -0.5 -0.4 -0.3 -0.2 0.1
0.4 -0.1 0.3 0.3 -0.2 0.5 -0.5 0.1 -0.1 -0.3
0.3 0.5 -0.3 0.2 -0.4 -0.5 -0.1 0.2 0.1 -0.1
0.2 -0.4 0.0 0.1 -0.5 -0.1 0.1 -0.4 0.5 0.3
0.4 -0.2 -0.4 -0.1 0.4 0.1 0.3 0.2 0.4 -0.5
0.3 -0.2 -0.6 -0.1 -0.2 0.2 0.2 0.1 -0.5 0.4
0.4 0.3 0.3 0.2 0.4 0.1 0.3 0.3 0.2 0.6


Post a reply to this message

From: jr
Subject: Re: [Minimum Volume] Bounding Ellipsoid via SVD
Date: 6 Nov 2019 05:15:00
Message: <web.5dc29cfbf7b9a3affeeb22ff0@news.povray.org>
hi,

"Bald Eagle" <cre### [at] netscapenet> wrote:
> Looks like the nan values were because the matrix.resize operations didn't fill
> in the new positions with 0.

another (valuable) lesson.  initialise all your vars, always.

> Fixed it one way, until I needed to fix it another ;)
> But now it runs without errors or nan entries.

great stuff.

> > I suppose I need to dump everything to a text file, rather than to std::cout ...

no urgent need, use the OS tools.  when you dump (CSV) values, you could:
  $ ./a.out {arg}  |  tee myfile.csv

'tee(1)' splits its input, displaying it _and_ writing it to file.


regards, jr


Post a reply to this message

From: Bald Eagle
Subject: Re: [Minimum Volume] Bounding Ellipsoid via SVD
Date: 6 Nov 2019 15:45:05
Message: <web.5dc32fa4f7b9a3af4eec112d0@news.povray.org>
"jr" <cre### [at] gmailcom> wrote:

> great stuff.

It is  :)

Even better is this computer graphics lesson on bounding boxes  :D

https://www.cs.tau.ac.il/~dcor/Graphics/cg-slides/3d_geometry_lesson2.pdf


> no urgent need, use the OS tools.  when you dump (CSV) values, you could:
>   $ ./a.out {arg}  |  tee myfile.csv
>
> 'tee(1)' splits its input, displaying it _and_ writing it to file.

Most excellent.

I'm going to work on creating a test data set, and try to  show the SVD results
and maybe implement the reorientation.

Given that the code generates a random matrix using

generate_matrix(matrix, matrix_size, matrix_size);

and then computes the svd via

svd(matrix, s, u, v);


Tell me, Master Yoda,

How do I take a file with the <x, y, z> vectors and read it into the compiled
program so that _that_ is now the "matrix" argument for the svd function call?

Should I supply a filename and loop down the rows, reading in x, y, and z?

or is the a way to just do some kind of OS command line thing, adding in a

std::cin >> matrix;      line?


Post a reply to this message

From: jr
Subject: Re: [Minimum Volume] Bounding Ellipsoid via SVD
Date: 6 Nov 2019 16:05:00
Message: <web.5dc33544f7b9a3affeeb22ff0@news.povray.org>
hi,

"Bald Eagle" <cre### [at] netscapenet> wrote:
> "jr" <cre### [at] gmailcom> wrote:
> > great stuff.
> It is  :)
>
> Even better is this computer graphics lesson on bounding boxes  :D
> https://www.cs.tau.ac.il/~dcor/Graphics/cg-slides/3d_geometry_lesson2.pdf

cheers.  I'll have a look at this tonight.

> ...
> I'm going to work on creating a test data set, and try to  show the SVD results
> and maybe implement the reorientation.
> Given that the code generates a random matrix using
>
> generate_matrix(matrix, matrix_size, matrix_size);
>
> and then computes the svd via
>
> svd(matrix, s, u, v);
>
> Tell me, Master Yoda,
>
> How do I take a file with the <x, y, z> vectors and read it into the compiled
> program so that _that_ is now the "matrix" argument for the svd function call?
>
> Should I supply a filename and loop down the rows, reading in x, y, and z?
>
> or is the a way to just do some kind of OS command line thing, adding in a
>
> std::cin >> matrix;      line?

the latter, I'm confident, although somewhat unsure of exact syntax.
suggestion: attach your working version of svd.cpp, so we talk same code.  I'll
play with it here to test; are the matrices filled just with floats?


regards, jr.


Post a reply to this message

From: Bald Eagle
Subject: Re: [Minimum Volume] Bounding Ellipsoid via SVD
Date: 6 Nov 2019 16:45:01
Message: <web.5dc33dd7f7b9a3af4eec112d0@news.povray.org>
"jr" <cre### [at] gmailcom> wrote:

> the latter, I'm confident, although somewhat unsure of exact syntax.

OK - I just usually search-engine my way to a solution   :)

> suggestion: attach your working version of svd.cpp, so we talk same code.  I'll
> play with it here to test; are the matrices filled just with floats?

Right on.
At the moment, my thoughts are:

1. the data must get read into a faux-matrix std::vector container, which I
suppose has to be created before assigning the data to it

2. it should have m rows - the number of vectors to process, and m columns - the
first 3 are x, y, and z, and all the remaining columns are zeros

Then hopefully I can use that lesson to apply the SVD output to the data in the
SDL scene.


There's hardly any data in the header file - I'm assuming that can just be added
to the top of the .cpp file to keep it all self-contained.


Post a reply to this message


Attachments:
Download 'svd_bw.cpp.txt' (14 KB)

From: jr
Subject: Re: [Minimum Volume] Bounding Ellipsoid via SVD
Date: 6 Nov 2019 17:05:00
Message: <web.5dc3428af7b9a3affeeb22ff0@news.povray.org>
hi,

"Bald Eagle" <cre### [at] netscapenet> wrote:
> "jr" <cre### [at] gmailcom> wrote:
> > the latter, I'm confident, although somewhat unsure of exact syntax.
>
> OK - I just usually search-engine my way to a solution   :)

can be v productive.

> > suggestion: attach your working version of svd.cpp, so we talk same code.  I'll
> > play with it here to test; are the matrices filled just with floats?
>
> Right on.
> At the moment, my thoughts are:
>
> 1. the data must get read into a faux-matrix std::vector container, which I
> suppose has to be created before assigning the data to it
>
> 2. it should have m rows - the number of vectors to process, and m columns - the
> first 3 are x, y, and z, and all the remaining columns are zeros

couple of thoughts before I download the file, for which thanks.

re 1.  why can you not simply change the 'generate_matrix' (I think) function,
to fill that matrix with the file values?

re 2. keep the current way of supplying the size, more flexibility; in a file
that could be the dimensions row/line before the data lines.


> Then hopefully I can use that lesson to apply the SVD output to the data in the
> SDL scene.
>
>
> There's hardly any data in the header file - I'm assuming that can just be added
> to the top of the .cpp file to keep it all self-contained.

not sure I follow.


regards, jr.


Post a reply to this message

From: Bald Eagle
Subject: Re: [Minimum Volume] Bounding Ellipsoid via SVD
Date: 6 Nov 2019 17:40:01
Message: <web.5dc34ad8f7b9a3af4eec112d0@news.povray.org>
"jr" <cre### [at] gmailcom> wrote:

> re 1.  why can you not simply change the 'generate_matrix' (I think) function,
> to fill that matrix with the file values?

Well that's what I meant by
"Should I supply a filename and loop down the rows, reading in x, y, and z?"

> re 2. keep the current way of supplying the size, more flexibility; in a file
> that could be the dimensions row/line before the data lines.

Why not just read in the first value of the file which will be the number of
vectors...

> > There's hardly any data in the header file - I'm assuming that can just be added
> > to the top of the .cpp file to keep it all self-contained.
>
> not sure I follow.

SVD_BW.cpp has:
#include "stdafx.h"

but all that file has is :

#pragma once           (whatever that is) and
#include <stdio.h>

So, can't I just copy/paste those lines to the top of the .cpp file and do away
with the #include "stdafx.h" ?


Post a reply to this message

From: jr
Subject: Re: [Minimum Volume] Bounding Ellipsoid via SVD
Date: 6 Nov 2019 18:10:01
Message: <web.5dc351fcf7b9a3affeeb22ff0@news.povray.org>
hi,

"Bald Eagle" <cre### [at] netscapenet> wrote:
> "jr" <cre### [at] gmailcom> wrote:
> > re 1.  why can you not simply change the 'generate_matrix' (I think) function,
> > to fill that matrix with the file values?
> Well that's what I meant by
> "Should I supply a filename and loop down the rows, reading in x, y, and z?"

if you read everything from std::cin you won't need to bother with file name
handling, just do something like
  $ ./a.out < mydata.xyz

> > re 2. keep the current way of supplying the size, more flexibility; in a file
> > that could be the dimensions row/line before the data lines.
>
> Why not just read in the first value of the file which will be the number of
> vectors...

we're talking the same thing.  :-)  the size of your matrix, followed by the
data values.

> > > There's hardly any data in the header file - I'm assuming that can just be added
> > > to the top of the .cpp file to keep it all self-contained.
> > not sure I follow.
>
> SVD_BW.cpp has:
> #include "stdafx.h"
>
> but all that file has is :
>
> #pragma once           (whatever that is) and
> #include <stdio.h>
>
> So, can't I just copy/paste those lines to the top of the .cpp file and do away
> with the #include "stdafx.h" ?

my (elderly) gcc manual does not list '#pragma once' but the clue seems to be in
the name.  as to 'stdafx.h' -- it's not a "standard header" here, Windows
perhaps?  I'd get rid of the include, and 'stdio.h' is probably included
already.

anyway, the source you posted does not compile, so it's clearly not meant to be.
 on a different subject, when will there be news/code for the pulley stuff?
thinking that, with minor modifications, it would be useful for modelling
tracked vehicles.  :-)


regards, jr.


Post a reply to this message

From: Bald Eagle
Subject: Re: [Minimum Volume] Bounding Ellipsoid via SVD
Date: 6 Nov 2019 18:55:01
Message: <web.5dc35cc2f7b9a3af4eec112d0@news.povray.org>
"jr" <cre### [at] gmailcom> wrote:

>   $ ./a.out < mydata.xyz

Righteous.


> my (elderly) gcc manual does not list '#pragma once' but the clue seems to be in
> the name.


Specifies that the compiler includes the header file only once, when compiling a
source code file.
Syntax
#pragma once

The use of #pragma once can reduce build times, as the compiler won't open and
read the file again after the first #include of the file in the translation
unit. It's called the multiple-include optimization. It has an effect similar to
the include guard idiom, which uses preprocessor macro definitions to prevent
multiple inclusions of the contents of the file.

Commenting out the include doesn't affect the compile, so good to go.

> anyway, the source you posted does not compile, so it's clearly not meant to be.

my command line directive is:

c++ SVD_BW.cpp -std=c++11

Not sure what your system is spitting out as complaints.

I can give you the current version of the tangent macro, and hopefully that will
be all you need.  Looks like Leroy couldn't help himself and has his own version
going as well. :D

I hope the lesson pdf clarifies the whole point of all of this and to some
extent how it's done.


Post a reply to this message

<<< Previous 4 Messages Goto Latest 10 Messages Next 10 Messages >>>

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.