bsplines yay

This commit is contained in:
Anton Ljungdahl 2024-10-13 23:53:39 +02:00
parent 793228f768
commit 879ae444a1
31 changed files with 843 additions and 1996 deletions

View File

@ -1,3 +0,0 @@
{
"CurrentProjectSetting": "No Configurations"
}

View File

@ -1,8 +0,0 @@
{
"ExpandedNodes": [
"",
"\\build"
],
"SelectedNode": "\\build",
"PreviewInSolutionExplorer": false
}

View File

@ -1,11 +0,0 @@
{
"Version": 1,
"ProjectMap": {
"a2fe74e1-b743-11d0-ae1a-00a0c90fffc3": {
"ProjectGuid": "a2fe74e1-b743-11d0-ae1a-00a0c90fffc3",
"DisplayName": "Miscellaneous Files",
"ColorIndex": -1
}
},
"NextColorIndex": 0
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,3 +0,0 @@
{
"CurrentProjectSetting": "No Configurations"
}

View File

@ -1,7 +0,0 @@
{
"ExpandedNodes": [
""
],
"SelectedNode": "\\program.exe",
"PreviewInSolutionExplorer": false
}

View File

@ -1,11 +0,0 @@
{
"Version": 1,
"ProjectMap": {
"a2fe74e1-b743-11d0-ae1a-00a0c90fffc3": {
"ProjectGuid": "a2fe74e1-b743-11d0-ae1a-00a0c90fffc3",
"DisplayName": "Miscellaneous Files",
"ColorIndex": -1
}
},
"NextColorIndex": 0
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

View File

@ -1,961 +1,61 @@
0.000000e+00
3.658667e-06
2.926933e-05
9.878400e-05
2.341547e-04
5.716667e-05
4.573333e-04
7.902720e-04
1.254923e-03
1.873237e-03
2.667168e-03
1.543500e-03
3.658667e-03
4.869685e-03
6.322176e-03
8.038091e-03
1.003938e-02
7.145833e-03
1.234800e-02
1.498590e-02
1.797503e-02
2.133734e-02
2.509479e-02
1.960817e-02
2.926933e-02
3.388291e-02
3.895748e-02
4.451500e-02
5.057741e-02
4.167450e-02
5.716667e-02
6.430473e-02
7.201354e-02
8.031505e-02
8.923122e-02
7.608883e-02
9.878400e-02
1.089953e-01
1.198872e-01
1.314815e-01
1.438002e-01
1.255952e-01
1.568653e-01
1.706984e-01
1.852913e-01
2.005836e-01
2.165093e-01
1.928542e-01
2.330027e-01
2.499978e-01
2.674288e-01
2.852298e-01
3.033351e-01
2.762872e-01
3.216787e-01
3.401947e-01
3.588174e-01
3.774809e-01
3.961192e-01
3.681482e-01
4.146667e-01
4.330573e-01
4.512253e-01
4.691047e-01
4.866298e-01
4.602052e-01
5.037347e-01
5.203535e-01
5.364203e-01
5.518694e-01
5.666348e-01
5.442262e-01
5.806507e-01
5.938512e-01
6.061705e-01
6.175428e-01
6.279021e-01
6.119792e-01
6.371827e-01
6.453186e-01
6.522440e-01
6.578930e-01
6.621999e-01
6.552322e-01
6.650987e-01
6.665235e-01
6.664127e-01
6.647733e-01
6.616693e-01
6.657802e-01
6.571667e-01
6.513312e-01
6.442289e-01
6.359254e-01
6.264867e-01
6.402232e-01
6.159787e-01
6.044671e-01
5.920178e-01
5.786968e-01
5.645698e-01
5.854622e-01
5.497027e-01
5.341613e-01
5.180116e-01
5.013193e-01
4.841504e-01
5.097292e-01
4.665707e-01
4.486460e-01
4.304422e-01
4.120251e-01
3.934607e-01
4.212562e-01
3.748147e-01
3.561530e-01
3.375415e-01
3.190461e-01
3.007325e-01
3.282752e-01
2.826667e-01
2.649144e-01
2.475417e-01
2.306142e-01
2.141979e-01
2.390182e-01
1.983587e-01
1.831623e-01
1.686746e-01
1.549524e-01
1.419952e-01
1.617165e-01
1.297813e-01
1.182887e-01
1.074954e-01
9.737951e-02
8.791902e-02
1.023542e-01
7.909200e-02
7.087650e-02
6.325057e-02
5.619226e-02
4.967961e-02
5.965183e-02
4.369067e-02
3.820349e-02
3.319612e-02
2.864660e-02
2.453299e-02
3.086550e-02
2.083333e-02
1.752567e-02
1.458806e-02
1.199855e-02
9.735179e-03
1.325117e-02
7.776000e-03
6.099061e-03
4.682411e-03
3.504096e-03
2.542165e-03
4.064833e-03
1.774667e-03
1.179648e-03
7.351573e-04
4.192427e-04
2.099520e-04
5.625000e-04
8.533333e-05
2.343467e-05
2.304000e-06
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
1.666667e-07
0.000000e+00
0.000000e+00
0.000000e+00

100
out/bspline0.dat Normal file
View File

@ -0,0 +1,100 @@
1.000000e+00
8.043570e-01
6.360560e-01
4.930390e-01
3.732480e-01
2.746250e-01
1.951120e-01
1.326510e-01
8.518400e-02
5.065300e-02
2.700000e-02
1.216700e-02
4.096000e-03
7.290000e-04
8.000000e-06
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00

100
out/bspline1.dat Normal file
View File

@ -0,0 +1,100 @@
0.000000e+00
1.885502e-01
3.366020e-01
4.477567e-01
5.256160e-01
5.737812e-01
5.958540e-01
5.954358e-01
5.761280e-01
5.415323e-01
4.952500e-01
4.408828e-01
3.820320e-01
3.222993e-01
2.652860e-01
2.143437e-01
1.703680e-01
1.328602e-01
1.013060e-01
7.519075e-02
5.400000e-02
3.721925e-02
2.433400e-02
1.482975e-02
8.192000e-03
3.906250e-03
1.458000e-03
3.327500e-04
1.600000e-05
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00

100
out/bspline2.dat Normal file
View File

@ -0,0 +1,100 @@
0.000000e+00
7.035583e-03
2.688467e-02
5.766075e-02
9.747733e-02
1.444479e-01
1.966860e-01
2.523051e-01
3.094187e-01
3.661402e-01
4.205833e-01
4.708614e-01
5.150880e-01
5.513766e-01
5.778407e-01
5.927813e-01
5.963413e-01
5.897094e-01
5.740860e-01
5.506716e-01
5.206667e-01
4.852717e-01
4.456873e-01
4.031139e-01
3.587520e-01
3.138021e-01
2.694647e-01
2.269402e-01
1.874293e-01
1.521122e-01
1.215000e-01
9.529783e-02
7.316267e-02
5.475150e-02
3.972133e-02
2.772917e-02
1.843200e-02
1.148683e-02
6.550667e-03
3.280500e-03
1.333333e-03
3.661667e-04
3.600000e-05
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00

100
out/bspline9.dat Normal file
View File

@ -0,0 +1,100 @@
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
0.000000e+00
8.000000e-06
7.290000e-04
4.096000e-03
1.216700e-02
2.700000e-02
5.065300e-02
8.518400e-02
1.326510e-01
1.951120e-01
2.746250e-01
3.732480e-01
4.930390e-01
6.360560e-01
1.000000e+00

100
out/bsplines.dat Normal file
View File

@ -0,0 +1,100 @@
1.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
8.043570e-01 1.885502e-01 7.035583e-03 5.716667e-05 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
6.360560e-01 3.366020e-01 2.688467e-02 4.573333e-04 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
4.930390e-01 4.477567e-01 5.766075e-02 1.543500e-03 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
3.732480e-01 5.256160e-01 9.747733e-02 3.658667e-03 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
2.746250e-01 5.737812e-01 1.444479e-01 7.145833e-03 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
1.951120e-01 5.958540e-01 1.966860e-01 1.234800e-02 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
1.326510e-01 5.954358e-01 2.523051e-01 1.960817e-02 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
8.518400e-02 5.761280e-01 3.094187e-01 2.926933e-02 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
5.065300e-02 5.415323e-01 3.661402e-01 4.167450e-02 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
2.700000e-02 4.952500e-01 4.205833e-01 5.716667e-02 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
1.216700e-02 4.408828e-01 4.708614e-01 7.608883e-02 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
4.096000e-03 3.820320e-01 5.150880e-01 9.878400e-02 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
7.290000e-04 3.222993e-01 5.513766e-01 1.255952e-01 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
8.000000e-06 2.652860e-01 5.778407e-01 1.568653e-01 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 2.143437e-01 5.927813e-01 1.928542e-01 2.083333e-05 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 1.703680e-01 5.963413e-01 2.330027e-01 2.880000e-04 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 1.328602e-01 5.897094e-01 2.762872e-01 1.143167e-03 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 1.013060e-01 5.740860e-01 3.216787e-01 2.929333e-03 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 7.519075e-02 5.506716e-01 3.681482e-01 5.989500e-03 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 5.400000e-02 5.206667e-01 4.146667e-01 1.066667e-02 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 3.721925e-02 4.852717e-01 4.602052e-01 1.730383e-02 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 2.433400e-02 4.456873e-01 5.037347e-01 2.624400e-02 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 1.482975e-02 4.031139e-01 5.442262e-01 3.783017e-02 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 8.192000e-03 3.587520e-01 5.806507e-01 5.240533e-02 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 3.906250e-03 3.138021e-01 6.119792e-01 7.031250e-02 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 1.458000e-03 2.694647e-01 6.371827e-01 9.189467e-02 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 3.327500e-04 2.269402e-01 6.552322e-01 1.174948e-01 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 1.600000e-05 1.874293e-01 6.650987e-01 1.474560e-01 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 1.521122e-01 6.657802e-01 1.821032e-01 4.500000e-06 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 1.215000e-01 6.571667e-01 2.211667e-01 1.666667e-04 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 9.529783e-02 6.402232e-01 2.636602e-01 8.188333e-04 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 7.316267e-02 6.159787e-01 3.085547e-01 2.304000e-03 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 5.475150e-02 5.854622e-01 3.548212e-01 4.965167e-03 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 3.972133e-02 5.497027e-01 4.014307e-01 9.145333e-03 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 2.772917e-02 5.097292e-01 4.473542e-01 1.518750e-02 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 1.843200e-02 4.665707e-01 4.915627e-01 2.343467e-02 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 1.148683e-02 4.212562e-01 5.330272e-01 3.422983e-02 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 6.550667e-03 3.748147e-01 5.707187e-01 4.791600e-02 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 3.280500e-03 3.282752e-01 6.036082e-01 6.483617e-02 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 1.333333e-03 2.826667e-01 6.306667e-01 8.533333e-02 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 3.661667e-04 2.390182e-01 6.508652e-01 1.097505e-01 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 3.600000e-05 1.983587e-01 6.631747e-01 1.384307e-01 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 1.617165e-01 6.665672e-01 1.717162e-01 1.666667e-07 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 1.297813e-01 6.605227e-01 2.096107e-01 8.533333e-05 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 1.023542e-01 6.458542e-01 2.512292e-01 5.625000e-04 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 7.909200e-02 6.235907e-01 2.955427e-01 1.774667e-03 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 5.965183e-02 5.947612e-01 3.415222e-01 4.064833e-03 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 4.369067e-02 5.603947e-01 3.881387e-01 7.776000e-03 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 3.086550e-02 5.215202e-01 4.343632e-01 1.325117e-02 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 2.083333e-02 4.791667e-01 4.791667e-01 2.083333e-02 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 1.325117e-02 4.343632e-01 5.215202e-01 3.086550e-02 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 7.776000e-03 3.881387e-01 5.603947e-01 4.369067e-02 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 4.064833e-03 3.415222e-01 5.947612e-01 5.965183e-02 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 1.774667e-03 2.955427e-01 6.235907e-01 7.909200e-02 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 5.625000e-04 2.512292e-01 6.458542e-01 1.023542e-01 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 8.533333e-05 2.096107e-01 6.605227e-01 1.297813e-01 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 1.666667e-07 1.717162e-01 6.665672e-01 1.617165e-01 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 1.384307e-01 6.631747e-01 1.983587e-01 3.600000e-05 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 1.097505e-01 6.508652e-01 2.390182e-01 3.661667e-04 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 8.533333e-02 6.306667e-01 2.826667e-01 1.333333e-03 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 6.483617e-02 6.036082e-01 3.282752e-01 3.280500e-03 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 4.791600e-02 5.707187e-01 3.748147e-01 6.550667e-03 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 3.422983e-02 5.330272e-01 4.212562e-01 1.148683e-02 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 2.343467e-02 4.915627e-01 4.665707e-01 1.843200e-02 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 1.518750e-02 4.473542e-01 5.097292e-01 2.772917e-02 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 9.145333e-03 4.014307e-01 5.497027e-01 3.972133e-02 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 4.965167e-03 3.548212e-01 5.854622e-01 5.475150e-02 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 2.304000e-03 3.085547e-01 6.159787e-01 7.316267e-02 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 8.188333e-04 2.636602e-01 6.402232e-01 9.529783e-02 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 1.666667e-04 2.211667e-01 6.571667e-01 1.215000e-01 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 4.500000e-06 1.821032e-01 6.657802e-01 1.521122e-01 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 1.474560e-01 6.650987e-01 1.874293e-01 1.600000e-05 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 1.174948e-01 6.552322e-01 2.269402e-01 3.327500e-04 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 9.189467e-02 6.371827e-01 2.694647e-01 1.458000e-03 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 7.031250e-02 6.119792e-01 3.138021e-01 3.906250e-03 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 5.240533e-02 5.806507e-01 3.587520e-01 8.192000e-03 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 3.783017e-02 5.442262e-01 4.031139e-01 1.482975e-02 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 2.624400e-02 5.037347e-01 4.456873e-01 2.433400e-02 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 1.730383e-02 4.602052e-01 4.852717e-01 3.721925e-02 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 1.066667e-02 4.146667e-01 5.206667e-01 5.400000e-02 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 5.989500e-03 3.681482e-01 5.506716e-01 7.519075e-02 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 2.929333e-03 3.216787e-01 5.740860e-01 1.013060e-01 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 1.143167e-03 2.762872e-01 5.897094e-01 1.328602e-01 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 2.880000e-04 2.330027e-01 5.963413e-01 1.703680e-01 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 2.083333e-05 1.928542e-01 5.927813e-01 2.143437e-01 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 1.568653e-01 5.778407e-01 2.652860e-01 8.000000e-06
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 1.255952e-01 5.513766e-01 3.222992e-01 7.290000e-04
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 9.878400e-02 5.150880e-01 3.820320e-01 4.096000e-03
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 7.608883e-02 4.708614e-01 4.408827e-01 1.216700e-02
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 5.716667e-02 4.205833e-01 4.952500e-01 2.700000e-02
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 4.167450e-02 3.661403e-01 5.415322e-01 5.065300e-02
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 2.926933e-02 3.094187e-01 5.761280e-01 8.518400e-02
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 1.960817e-02 2.523051e-01 5.954357e-01 1.326510e-01
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 1.234800e-02 1.966860e-01 5.958540e-01 1.951120e-01
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 7.145833e-03 1.444479e-01 5.737813e-01 2.746250e-01
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 3.658667e-03 9.747733e-02 5.256160e-01 3.732480e-01
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 1.543500e-03 5.766075e-02 4.477568e-01 4.930390e-01
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 4.573333e-04 2.688467e-02 3.366020e-01 6.360560e-01
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 1.000000e+00

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -2,33 +2,12 @@
0.000000e+00
0.000000e+00
0.000000e+00
3.571429e-01
7.142857e-01
1.071429e+00
1.428571e+00
1.785714e+00
2.142857e+00
2.500000e+00
2.857143e+00
3.214286e+00
3.571429e+00
3.928571e+00
4.285714e+00
4.642857e+00
5.000000e+00
5.357143e+00
5.714286e+00
6.071429e+00
6.428571e+00
6.785714e+00
7.142857e+00
7.500000e+00
7.857143e+00
8.214286e+00
8.571429e+00
8.928571e+00
9.285714e+00
9.642857e+00
1.000000e+01
1.000000e+01
1.000000e+01

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -58,9 +58,6 @@ m_make_arena() {
return result;
}
// NOTE(anton): rjf calls this "arena push no zero", as opposed to pushing a zeroed array.
// Not sure why we would make this differentiation, maybe not important.
root_function void*
m_arena_push(Arena *arena, U64 size) {
void *result = 0;

View File

@ -47,9 +47,8 @@ root_function void m_arena_align(Arena *arena, U64 pow2_alignment);
root_function void* m_arena_push_zero(Arena *arena, U64 size);
root_function void m_arena_clear(Arena *arena);
#define PushArray(arena, type, count) (type *)m_arena_push((arena), sizeof(type)*(count))
#define PushArrayZero(arena, type, count) (type *)m_arena_push_zero((arena), sizeof(type)*(count))
#define PushArrayNoZero(arena, type, count) (type *)m_arena_push((arena), sizeof(type)*(count))
#define PushArray(arena, type, count) (type *)m_arena_push_zero((arena), sizeof(type)*(count))
//~ temp arena
root_function ArenaTemp m_arena_temp_begin(Arena *arena);

View File

@ -87,7 +87,7 @@ str8_list_push_node_front(String8List *list, String8Node *n) {
// Wrapper that pushes the memory for a node onto the arena, and then puts the node in the linked list (in the back).
root_function void
str8_list_push(Arena *arena, String8List *list, String8 string) {
String8Node *n = PushArrayZero(arena, String8Node, 1);
String8Node *n = PushArray(arena, String8Node, 1);
n->string = string;
str8_list_push_node(list, n);
}
@ -95,7 +95,7 @@ str8_list_push(Arena *arena, String8List *list, String8 string) {
// Wrapper that pushes the memory for a node onto the arena, and then puts the node in the linked list (in the front).
root_function void
str8_list_push_front(Arena *arena, String8List *list, String8 string) {
String8Node *n = PushArrayZero(arena, String8Node, 1);
String8Node *n = PushArray(arena, String8Node, 1);
n->string = string;
str8_list_push_node_front(list, n);
}

View File

@ -19,6 +19,7 @@
#define grid_file_path_bin "D:\\dev\\eigsol_gpu\\out\\grid.bin"
#define grid_file_path "D:\\dev\\eigsol_gpu\\out\\grid.dat"
#define knotpoints_file_path "D:\\dev\\eigsol_gpu\\out\\knotpoints.dat"
#define bspline_array_file_path "D:\\dev\\eigsol_gpu\\out\\bsplines.dat"
global U32 enable_logging = 1;
@ -49,11 +50,13 @@ struct BSplineCtx
U32 num_knotpoints;
U32 num_bsplines;
U32 num_phys_points;
F64 *bsplines;
};
//~ Globals
global Grid g_grid = {0};
global BSplineCtx g_bspline_ctx = {0};
//~ Functions
@ -94,39 +97,57 @@ write_array_binary_F64(String8 path_to_file, F64 *values, U32 array_size)
}
function void
write_string_list_to_file(Arena *arena, String8 path, String8List *list)
{
OS_Handle file_handle = OS_file_open(OS_AccessFlag_Write | OS_AccessFlag_CreateNew,
path);
OS_file_write(arena, file_handle, 0, *list, 0);
U32 debug = 1;
if(debug)
{
String8List log_list = {0};
str8_list_push(arena, &log_list, str8_lit("Wrote array to"));
str8_list_push(arena, &log_list, path);
StringJoin join = {0};
join.sep = str8_lit(" ");
join.post = str8_lit("\n");
String8 log_msg = str8_list_join(arena, log_list, &join);
OutputDebugString(log_msg.str);
}
OS_file_close(file_handle);
}
function void
write_array_F64(String8 path_to_file, F64 *values, U32 array_size, char* fmt)
{
OS_Handle file_handle = OS_file_open(OS_AccessFlag_Write | OS_AccessFlag_CreateNew,
path_to_file);
{
ArenaTemp scratch = scratch_get(0, 0);
String8List list = {0};
for(U32 i = 0; i < array_size; i++)
{
str8_list_pushf(scratch.arena, &list, fmt, values[i]);
}
OS_file_write(scratch.arena, file_handle, 0, list, 0);
String8List log_list = {0};
str8_list_push(scratch.arena, &log_list, str8_lit("Wrote array to"));
str8_list_push(scratch.arena, &log_list, path_to_file);
StringJoin join = {0};
join.sep = str8_lit(" ");
join.post = str8_lit("\n");
String8 log_msg = str8_list_join(scratch.arena, log_list, &join);
OutputDebugString(log_msg.str);
}
OS_file_close(file_handle);
write_string_list_to_file(scratch.arena, path_to_file, &list);
}
function F64 bspline_recursion(F64 x, U32 k, U32 i)
function F64
bspline_recursion(F64 x, U32 k, U32 i)
{
F64 *t = g_bspline_ctx.knotpoints;
if(k == 1)
{
if(i < g_bspline_ctx.num_bsplines && x >= t[i] && x < t[i+1])
if(i == g_bspline_ctx.num_bsplines-1 && x == g_grid.end)
{
// TODO(anton):
// This is like a hack to get the last bspline to be 1 at the last point.
// I dont get how the Cox-de Boor recursion formula can force the last bspline
// to unity at the last point, actually. I have to check this.
return 1.0;
}
else if(i < g_bspline_ctx.num_bsplines && (x >= t[i] && x < t[i+1]))
{
return 1.0;
} else {
@ -135,8 +156,15 @@ function F64 bspline_recursion(F64 x, U32 k, U32 i)
}
else
{
F64 term1 = (x - t[i])/(t[i+k-1]-t[i])*bspline_recursion(x, k-1, i);
F64 term2 = (t[i+k]-x)/(t[i+k]-t[i+1])*bspline_recursion(x, k-1, i+1);
F64 recursion1 = bspline_recursion(x, k-1, i);
F64 term1_enum = (x - t[i]);
F64 term1_denom = (t[i+k-1] - t[i]);
F64 term1 = recursion1 > 0.0 ? (term1_enum/term1_denom)*recursion1 : 0.0;
F64 recursion2 = bspline_recursion(x, k-1, i+1);
F64 term2_enum = (t[i+k] - x);
F64 term2_denom = (t[i+k] - t[i+1]);
F64 term2 = recursion2 > 0.0 ? (term2_enum/term2_denom)*recursion2 : 0.0;
return term1 + term2;
}
@ -145,11 +173,148 @@ function F64 bspline_recursion(F64 x, U32 k, U32 i)
}
function F64 get_bspline_F64(F64 x_coord, U32 index)
function F64
get_bspline_F64(F64 x_coord, U32 index)
{
U32 k = g_bspline_ctx.order;
F64 out = bspline_recursion(x_coord, k, index);
return out;
}
function void
set_up_grid(Arena *arena)
{
g_grid.start = 0.0;
g_grid.end = 10.0;
g_grid.num_steps = 100;
g_grid.points = PushArray(arena, F64, g_grid.num_steps);
F64 step_size = (g_grid.end-g_grid.start)/(F64)g_grid.num_steps;
g_grid.points[0] = g_grid.start;
g_grid.points[g_grid.num_steps-1] = g_grid.end;
for(U32 i = 1; i < g_grid.num_steps-1; i++)
{
g_grid.points[i] = g_grid.points[i-1] + step_size;
}
}
function void
set_up_bspline_context(Arena* arena)
{
// Create knotpoint sequence.
U32 k = 4;
U32 N = 14;
g_bspline_ctx.order = k;
g_bspline_ctx.num_knotpoints = N;
g_bspline_ctx.num_bsplines = N-k;
g_bspline_ctx.num_phys_points = N-(2*k)+2; // Remove k points at each end, and then add back the first and last points.
g_bspline_ctx.arena = arena;
g_bspline_ctx.knotpoints = PushArray(arena, F64, g_bspline_ctx.num_knotpoints);
// Set up physical points;
F64 delta = (g_grid.end-g_grid.start)/(g_bspline_ctx.num_phys_points-1);
// Set ghost points including first physical
U32 phys_point_last_index = g_bspline_ctx.num_phys_points + k-1;
for(U32 i = 0; i < k; i++)
{
g_bspline_ctx.knotpoints[i] = g_grid.start;
}
for(U32 i = k; i < phys_point_last_index; i++)
{
g_bspline_ctx.knotpoints[i] = g_bspline_ctx.knotpoints[i-1] + delta;
}
// Set the last points
F64 last_physical = g_grid.end;
for(U32 i = phys_point_last_index; i < g_bspline_ctx.num_knotpoints; i++)
{
g_bspline_ctx.knotpoints[i] = last_physical;
}
}
function void
write_bsplines_to_matrix_F64(Arena *arena)
{
U64 num_bsplines = g_bspline_ctx.num_bsplines;
U64 k = g_bspline_ctx.order;
F64 *t = g_bspline_ctx.knotpoints;
U32 grid_size = g_grid.num_steps;
// For sanity check we make the first 4 bsplines by hand.
{
F64 *bspl0 = PushArray(arena, F64, grid_size);
F64 *bspl1 = PushArray(arena, F64, grid_size);
F64 *bspl2 = PushArray(arena, F64, grid_size);
F64 *bspl3 = PushArray(arena, F64, grid_size);
F64 *bspl9 = PushArray(arena, F64, grid_size);
for(U32 i = 0; i < grid_size; i++)
{
F64 x = g_grid.points[i];
bspl0[i] = get_bspline_F64(x, 0);
bspl1[i] = get_bspline_F64(x, 1);
bspl2[i] = get_bspline_F64(x, 2);
bspl3[i] = get_bspline_F64(x, 3);
bspl9[i] = get_bspline_F64(x, 9);
}
F64 test = get_bspline_F64(g_grid.points[grid_size-1], 9);
write_array_F64(str8_lit("D:\\dev\\eigsol_gpu\\out\\bspline0.dat"), bspl0, grid_size, "%13.6e\n");
write_array_F64(str8_lit("D:\\dev\\eigsol_gpu\\out\\bspline1.dat"), bspl1, grid_size, "%13.6e\n");
write_array_F64(str8_lit("D:\\dev\\eigsol_gpu\\out\\bspline2.dat"), bspl2, grid_size, "%13.6e\n");
write_array_F64(str8_lit("D:\\dev\\eigsol_gpu\\out\\bspline3.dat"), bspl3, grid_size, "%13.6e\n");
write_array_F64(str8_lit("D:\\dev\\eigsol_gpu\\out\\bspline9.dat"), bspl9, grid_size, "%13.6e\n");
}
g_bspline_ctx.bsplines = PushArray(arena, F64, grid_size*num_bsplines);
for(U32 i = 0; i < g_grid.num_steps; i++)
{
for(U32 j = 0; j < num_bsplines; j++)
{
U32 index = g_grid.num_steps * i + j;
g_bspline_ctx.bsplines[index] = get_bspline_F64(g_grid.points[i], j);
}
}
ArenaTemp scratch = scratch_get(0, 0);
String8 bspline_filename = str8_lit("D:\\dev\\eigsol_gpu\\out\\Bsplines.dat");
// First line is just the bspline indices.
String8List first_line_list = {0};
StringJoin join = {0};
join.sep = str8_lit("\t\t");
for(U32 i = 0; i < num_bsplines; i++)
{
str8_list_pushf(scratch.arena, &first_line_list, "%i", i);
}
String8 first_line = str8_list_join(scratch.arena, first_line_list, &join);
String8List bspline_array_list = {0};
for(U32 i = 0; i < g_grid.num_steps; i++)
{
String8List row = {0};
for(U32 j = 0; j < num_bsplines; j++)
{
U32 index = g_grid.num_steps * i + j;
F64 bspline_value = g_bspline_ctx.bsplines[index];
str8_list_pushf(scratch.arena, &row, "%13.6e", bspline_value);
}
StringJoin bspl_join = {0};
bspl_join.sep = str8_lit(" ");
bspl_join.post = str8_lit("\n");
String8 row_joined = str8_list_join(scratch.arena, row, &bspl_join);
str8_list_push(scratch.arena, &bspline_array_list, row_joined);
}
write_string_list_to_file(scratch.arena, str8_lit(bspline_array_file_path), &bspline_array_list);
}
@ -161,69 +326,17 @@ void EntryPoint()
Arena *arena = m_make_arena();
Grid grid = {0};
grid.start = 0.0;
grid.end = 10.0;
grid.num_steps = 1000;
set_up_grid(arena);
grid.points = PushArrayZero(arena, F64, grid.num_steps);
F64 step_size = (grid.end-grid.start)/(F64)grid.num_steps;
grid.points[0] = grid.start;
grid.points[grid.num_steps-1] = grid.end;
for(U32 i = 1; i < grid.num_steps-1; i++)
{
grid.points[i] = grid.points[i-1] + step_size;
}
write_array_binary_F64(str8_lit(grid_file_path_bin), g_grid.points, g_grid.num_steps);
write_array_F64(str8_lit(grid_file_path), g_grid.points, g_grid.num_steps, "%13.6e\n");
write_array_binary_F64(str8_lit(grid_file_path_bin), grid.points, grid.num_steps);
write_array_F64(str8_lit(grid_file_path), grid.points, grid.num_steps, "%13.6e\n");
set_up_bspline_context(arena);
// Create knotpoint sequence.
U32 k = 4;
U32 N = 35;
g_bspline_ctx.order = k;
g_bspline_ctx.num_knotpoints = N;
g_bspline_ctx.num_bsplines = N-k;
g_bspline_ctx.num_phys_points = N-(2*k)+2; // Remove k points at each end, and then add back the first and last points.
g_bspline_ctx.arena = arena;
g_bspline_ctx.knotpoints = (F64*)PushArrayZero(arena, F64, g_bspline_ctx.num_knotpoints);
// Set up physical points;
F64 delta = (grid.end-grid.start)/(g_bspline_ctx.num_phys_points-1);
// Set ghost points including first physical
U32 phys_point_index = g_bspline_ctx.num_phys_points + k-1;
for(U32 i = 0; i < k; i++)
{
g_bspline_ctx.knotpoints[i] = grid.start;
}
for(U32 i = k; i < phys_point_index; i++)
{
g_bspline_ctx.knotpoints[i] = g_bspline_ctx.knotpoints[i-1] + delta;
}
// Set the last points
F64 last_physical = grid.end;
for(U32 i = phys_point_index; i < g_bspline_ctx.num_knotpoints; i++)
{
g_bspline_ctx.knotpoints[i] = last_physical;
}
write_array_F64(str8_lit(knotpoints_file_path), g_bspline_ctx.knotpoints, g_bspline_ctx.num_knotpoints, "%13.6e\n");
String8 Bspline3_fn = str8_lit("D:\\dev\\eigsol_gpu\\out\\Bspline3.dat");
F64 *Bspline3 = (F64 *)PushArrayZero(arena, F64, grid.num_steps);
for(U32 i = 0; i < grid.num_steps; i++)
{
Bspline3[i] = get_bspline_F64(grid.points[i], 3);
}
write_array_F64(Bspline3_fn, Bspline3, grid.num_steps, "%13.6e\n");
write_bsplines_to_matrix_F64(arena);
}

View File

@ -289,7 +289,7 @@ OS_to_string_list_F64(Arena *arena, F64 *values, U32 values_size, String8 format
{
String8 value_string = {0};
value_string.size = character_length;
value_string.str = PushArrayZero(arena, U8, character_length);
value_string.str = PushArray(arena, U8, character_length);
StringCchPrintfA(value_string.str, character_length, "%e\n", values[i]);
str8_list_push(arena, &out, value_string);
}

Binary file not shown.