From 6ed68ed436b9cff0f1238f363d7ffdaca8e22705 Mon Sep 17 00:00:00 2001 From: Amanda Bienz Date: Tue, 21 May 2024 16:01:58 -0600 Subject: [PATCH] Adding relaxation tests --- raptor/core/tests/test_block_matrix.cpp | 212 ++++ raptor/core/tests/test_par_bsr.cpp | 148 +++ raptor/util/linalg/relax.cpp | 212 +++- raptor/util/tests/CMakeLists.txt | 25 + raptor/util/tests/test_gs_aniso.cpp | 97 ++ raptor/util/tests/test_gs_laplacian.cpp | 94 ++ raptor/util/tests/test_jacobi_aniso.cpp | 96 ++ raptor/util/tests/test_jacobi_laplacian.cpp | 94 ++ raptor/util/tests/test_sor_aniso.cpp | 97 ++ raptor/util/tests/test_sor_laplacian.cpp | 94 ++ test_data/RAPtorTests.ipynb | 180 +++- test_data/aniso_block_jacobi_inc_1.txt | 625 ++++++++++++ test_data/aniso_block_jacobi_inc_2.txt | 625 ++++++++++++ test_data/aniso_block_jacobi_ones_1.txt | 625 ++++++++++++ test_data/aniso_block_jacobi_ones_2.txt | 625 ++++++++++++ test_data/aniso_gs_inc_1.txt | 625 ++++++++++++ test_data/aniso_gs_inc_2.txt | 625 ++++++++++++ test_data/aniso_gs_ones_1.txt | 625 ++++++++++++ test_data/aniso_gs_ones_2.txt | 625 ++++++++++++ test_data/aniso_jacobi_inc_1.txt | 625 ++++++++++++ test_data/aniso_jacobi_inc_2.txt | 625 ++++++++++++ test_data/aniso_jacobi_ones_1.txt | 625 ++++++++++++ test_data/aniso_jacobi_ones_2.txt | 625 ++++++++++++ test_data/aniso_sor_inc_1.txt | 625 ++++++++++++ test_data/aniso_sor_inc_2.txt | 625 ++++++++++++ test_data/aniso_sor_ones_1.txt | 625 ++++++++++++ test_data/aniso_sor_ones_2.txt | 625 ++++++++++++ test_data/laplace_block_jacobi_inc_1.txt | 1000 +++++++++++++++++++ test_data/laplace_block_jacobi_inc_2.txt | 1000 +++++++++++++++++++ test_data/laplace_block_jacobi_ones_1.txt | 1000 +++++++++++++++++++ test_data/laplace_block_jacobi_ones_2.txt | 1000 +++++++++++++++++++ test_data/laplace_gs_inc_1.txt | 1000 +++++++++++++++++++ test_data/laplace_gs_inc_2.txt | 1000 +++++++++++++++++++ test_data/laplace_gs_ones_1.txt | 1000 +++++++++++++++++++ test_data/laplace_gs_ones_2.txt | 1000 +++++++++++++++++++ test_data/laplace_jacobi_inc_1.txt | 1000 +++++++++++++++++++ test_data/laplace_jacobi_inc_2.txt | 1000 +++++++++++++++++++ test_data/laplace_jacobi_ones_1.txt | 1000 +++++++++++++++++++ test_data/laplace_jacobi_ones_2.txt | 1000 +++++++++++++++++++ test_data/laplace_sor_inc_1.txt | 1000 +++++++++++++++++++ test_data/laplace_sor_inc_2.txt | 1000 +++++++++++++++++++ test_data/laplace_sor_ines_2.txt | 1000 +++++++++++++++++++ test_data/laplace_sor_ones_1.txt | 1000 +++++++++++++++++++ test_data/laplace_sor_ones_2.txt | 1000 +++++++++++++++++++ test_data/laplacian_P_direct.pm | Bin 36944 -> 36944 bytes test_data/laplacian_P_extend.pm | Bin 109520 -> 109112 bytes test_data/laplacian_P_mod_class.pm | Bin 36944 -> 36944 bytes test_data/laplacian_split.txt | 26 +- test_data/random.pm | Bin 5108 -> 5108 bytes test_data/random_inc_b.txt | 198 ++-- test_data/random_inc_b_T.txt | 198 ++-- test_data/random_ones_b.txt | 198 ++-- test_data/random_ones_b_T.txt | 198 ++-- 53 files changed, 28735 insertions(+), 432 deletions(-) create mode 100644 raptor/core/tests/test_block_matrix.cpp create mode 100644 raptor/core/tests/test_par_bsr.cpp create mode 100644 raptor/util/tests/test_gs_aniso.cpp create mode 100644 raptor/util/tests/test_gs_laplacian.cpp create mode 100644 raptor/util/tests/test_jacobi_aniso.cpp create mode 100644 raptor/util/tests/test_jacobi_laplacian.cpp create mode 100644 raptor/util/tests/test_sor_aniso.cpp create mode 100644 raptor/util/tests/test_sor_laplacian.cpp create mode 100644 test_data/aniso_block_jacobi_inc_1.txt create mode 100644 test_data/aniso_block_jacobi_inc_2.txt create mode 100644 test_data/aniso_block_jacobi_ones_1.txt create mode 100644 test_data/aniso_block_jacobi_ones_2.txt create mode 100644 test_data/aniso_gs_inc_1.txt create mode 100644 test_data/aniso_gs_inc_2.txt create mode 100644 test_data/aniso_gs_ones_1.txt create mode 100644 test_data/aniso_gs_ones_2.txt create mode 100644 test_data/aniso_jacobi_inc_1.txt create mode 100644 test_data/aniso_jacobi_inc_2.txt create mode 100644 test_data/aniso_jacobi_ones_1.txt create mode 100644 test_data/aniso_jacobi_ones_2.txt create mode 100644 test_data/aniso_sor_inc_1.txt create mode 100644 test_data/aniso_sor_inc_2.txt create mode 100644 test_data/aniso_sor_ones_1.txt create mode 100644 test_data/aniso_sor_ones_2.txt create mode 100644 test_data/laplace_block_jacobi_inc_1.txt create mode 100644 test_data/laplace_block_jacobi_inc_2.txt create mode 100644 test_data/laplace_block_jacobi_ones_1.txt create mode 100644 test_data/laplace_block_jacobi_ones_2.txt create mode 100644 test_data/laplace_gs_inc_1.txt create mode 100644 test_data/laplace_gs_inc_2.txt create mode 100644 test_data/laplace_gs_ones_1.txt create mode 100644 test_data/laplace_gs_ones_2.txt create mode 100644 test_data/laplace_jacobi_inc_1.txt create mode 100644 test_data/laplace_jacobi_inc_2.txt create mode 100644 test_data/laplace_jacobi_ones_1.txt create mode 100644 test_data/laplace_jacobi_ones_2.txt create mode 100644 test_data/laplace_sor_inc_1.txt create mode 100644 test_data/laplace_sor_inc_2.txt create mode 100644 test_data/laplace_sor_ines_2.txt create mode 100644 test_data/laplace_sor_ones_1.txt create mode 100644 test_data/laplace_sor_ones_2.txt diff --git a/raptor/core/tests/test_block_matrix.cpp b/raptor/core/tests/test_block_matrix.cpp new file mode 100644 index 00000000..c37408b0 --- /dev/null +++ b/raptor/core/tests/test_block_matrix.cpp @@ -0,0 +1,212 @@ +// Copyright (c) 2015-2017, RAPtor Developer Team +// License: Simplified BSD, http://opensource.org/licenses/BSD-2-Clause + +#include "gtest/gtest.h" +#include "raptor.hpp" +using namespace raptor; + +void compare_vals(CSRMatrix* A, BSRMatrix* B) +{ + A->sort(); + B->sort(); + int ctr = 0; + for (int i = 0; i < B->n_rows; i++) + { + for (int k = 0; k < B->b_rows; k++) + { + for (int j = B->idx1[i]; j < B->idx1[i+1]; j++) + { + double* val = B->block_vals[j]; + for (int l = 0; l < B->b_cols; l++) + { + if (fabs(val[k*B->b_cols + l]) > zero_tol) + { + ASSERT_NEAR(val[k*B->b_cols + l], A->vals[ctr++], 1e-10); + } + + } + } + } + } + +} + +int main(int argc, char** argv) +{ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); + +} // end of main() // + +TEST(BlockMatrixTest, TestsInCore) +{ + int block_row_size = 2; + int block_col_size = 2; + int block_size = 4; + int block_nnz = 5; + int block_num_rows = 3; + int block_num_cols = 3; + int num_rows = block_num_rows * block_row_size; + int num_cols = block_num_cols * block_col_size; + int nnz = block_nnz * block_size; + + std::vector rows = {0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 4, 4, 5, 5}; + std::vector cols = {0, 1, 0, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 4, 5, 4, 5}; + std::vector vals = {1.0, 0.0, 2.0, 1.0, 6.0, 7.0, 8.0, 2.0, 1.0, 4.0, 5.0, 1.0, + 4.0, 3.0, 0.0, 0.0, 7.0, 2.0, 0.0, 0.0}; + + std::vector block_row_ptr = {0,2,3,5}; + std::vector block_rows = {0, 0, 1, 2, 2}; + std::vector block_cols = {0, 1, 1, 1, 2}; + std::vector block_vals; + for (int i = 0; i < block_nnz; i++) + { + double* block = new double[block_size]; + for (int j = 0; j < block_size; j++) + { + block[j] = vals[i*block_size+j]; + } + block_vals.push_back(block); + } + + Matrix* A_bcoo = new BCOOMatrix(block_num_rows, block_num_cols, + block_row_size, block_col_size); + for (int i = 0; i < block_nnz; i++) + A_bcoo->add_value(block_rows[i], block_cols[i], block_vals[i]); + + Matrix* A_coo = new COOMatrix(num_rows, num_cols); + for (int i = 0; i < nnz; i++) + A_coo->add_value(rows[i], cols[i], vals[i]); + + Matrix* A_bsr = A_bcoo->to_CSR(); + Matrix* A_csr = A_coo->to_CSR(); + Matrix* A_bsc = A_bsr->to_CSC(); + Matrix* A_csc = A_csr->to_CSC(); + Matrix* A_csr_from_bsr = A_bsr->to_CSR(); + + Vector x(num_rows); + Vector b(num_cols); + Vector tmp(num_cols); + x.set_const_value(1.0); + + A_bcoo->sort(); + A_bcoo->move_diag(); + A_bcoo->remove_duplicates(); + + A_bsr->sort(); + A_bsr->move_diag(); + A_bsr->remove_duplicates(); + + A_bsc->sort(); + A_bsc->move_diag(); + A_bsc->remove_duplicates(); + + ASSERT_EQ(A_bcoo->n_rows, A_bsr->n_rows); + ASSERT_EQ(A_bsr->n_rows, A_bsc->n_rows); + ASSERT_EQ(A_bcoo->n_cols, A_bsr->n_cols); + ASSERT_EQ(A_bsr->n_cols, A_bsc->n_cols); + ASSERT_EQ(A_bcoo->nnz, A_bsr->nnz); + ASSERT_EQ(A_bsr->nnz, A_bsc->nnz); + ASSERT_EQ(A_csr_from_bsr->nnz, A_csr->nnz); + + double** bcoo_vals = (double**) A_bcoo->get_data(); + double** bsr_vals = (double**) A_bsr->get_data(); + for (int i = 0; i < A_bcoo->nnz; i++) + { + for (int j = 0; j < A_bcoo->b_size; j++) + { + ASSERT_NEAR(bcoo_vals[i][j], bsr_vals[i][j], 1e-10); + } + } + + Matrix* Atmp = A_bsc->to_CSR(); + Atmp->sort(); + Atmp->move_diag(); + double** tmp_vals = (double**) Atmp->get_data(); + for (int i = 0; i < A_bsr->nnz; i++) + { + for (int j = 0; j < A_bsr->b_size; j++) + { + ASSERT_NEAR(bsr_vals[i][j], tmp_vals[i][j], 1e-10); + } + } + + ASSERT_EQ(A_bcoo->format(), BCOO); + ASSERT_EQ(A_coo->format(), COO); + ASSERT_EQ(A_bsr->format(), BSR); + ASSERT_EQ(A_csr->format(), CSR); + ASSERT_EQ(A_bsc->format(), BSC); + ASSERT_EQ(A_csc->format(), CSC); + ASSERT_EQ(A_csr_from_bsr->format(), CSR); + + A_csr->mult(x, b); + A_bsr->mult(x, tmp); + for (int i = 0; i < num_cols; i++) + ASSERT_NEAR(b[i], tmp[i], 1e-10); + + A_csr_from_bsr->mult(x, tmp); + for (int i = 0; i < num_cols; i++) + ASSERT_NEAR(b[i], tmp[i], 1e-10); + + A_coo->mult(x, tmp); + for (int i = 0; i < num_cols; i++) + ASSERT_NEAR(b[i], tmp[i], 1e-10); + + A_bcoo->mult(x, tmp); + for (int i = 0; i < num_cols; i++) + ASSERT_NEAR(b[i], tmp[i], 1e-10); + + A_csc->mult(x, tmp); + for (int i = 0; i < num_cols; i++) + ASSERT_NEAR(b[i], tmp[i], 1e-10); + + A_bsc->mult(x, tmp); + for (int i = 0; i < num_cols; i++) + ASSERT_NEAR(b[i], tmp[i], 1e-10); + + + CSRMatrix* C_csr = A_csr->mult((CSRMatrix*)A_csr); + CSRMatrix* C_bsr = A_bsr->mult((BSRMatrix*)A_bsr); + ASSERT_EQ(C_csr->n_rows, C_bsr->n_rows * C_bsr->b_rows); + ASSERT_EQ(C_csr->n_cols, C_bsr->n_cols * C_bsr->b_cols); + compare_vals(C_csr, (BSRMatrix*) C_bsr); + + CSRMatrix* C_csr_from_bsr = A_csr_from_bsr->mult((CSRMatrix*)A_csr_from_bsr); + ASSERT_EQ(C_csr_from_bsr->n_rows, C_bsr->n_rows * C_bsr->b_rows); + ASSERT_EQ(C_csr_from_bsr->n_cols, C_bsr->n_cols * C_bsr->b_cols); + compare_vals(C_csr_from_bsr, (BSRMatrix*) C_bsr); + + CSRMatrix* D_csr = A_csr->mult_T((CSCMatrix*)A_csc); + CSRMatrix* D_bsr = A_bsr->mult_T((BSCMatrix*)A_bsc); + ASSERT_EQ(D_csr->n_rows, D_bsr->n_rows * D_bsr->b_rows); + ASSERT_EQ(D_csr->n_cols, D_bsr->n_cols * D_bsr->b_cols); + compare_vals(D_csr, (BSRMatrix*) D_bsr); + + CSRMatrix* D_csr_from_bsr = A_csr_from_bsr->mult_T((CSCMatrix*)A_csc); + ASSERT_EQ(D_csr_from_bsr->n_rows, D_bsr->n_rows * D_bsr->b_rows); + ASSERT_EQ(D_csr_from_bsr->n_cols, D_bsr->n_cols * D_bsr->b_cols); + compare_vals(D_csr_from_bsr, (BSRMatrix*) D_bsr); + + delete A_bsr; + delete A_csr; + delete A_bsc; + delete A_csc; + delete A_bcoo; + delete A_coo; + delete A_csr_from_bsr; + + delete C_csr; + delete C_bsr; + delete C_csr_from_bsr; + + delete D_csr; + delete D_bsr; + delete D_csr_from_bsr; + + for (std::vector::iterator it = block_vals.begin(); + it != block_vals.end(); ++it) + delete[] *it; + +} // end of TEST(MatrixTest, TestsInCore) // + + diff --git a/raptor/core/tests/test_par_bsr.cpp b/raptor/core/tests/test_par_bsr.cpp new file mode 100644 index 00000000..ebf4b3b5 --- /dev/null +++ b/raptor/core/tests/test_par_bsr.cpp @@ -0,0 +1,148 @@ +// Copyright (c) 2015-2017, RAPtor Developer Team +// License: Simplified BSD, http://opensource.org/licenses/BSD-2-Clause + +#include "gtest/gtest.h" +#include "raptor.hpp" + +using namespace raptor; + +int main(int argc, char** argv) +{ + MPI_Init(&argc, &argv); + ::testing::InitGoogleTest(&argc, argv); + int temp=RUN_ALL_TESTS(); + MPI_Finalize(); + return temp; + +} // end of main() // + +TEST(ParBSRMatrixTest, TestsInCore) +{ + /*int rank, num_procs; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &num_procs); + + std::vector row_ptr = {0, 3, 5, 8, 11, 13, 16}; + std::vector indices = {0, 1, 4, 1, 3, 1, 2, 5, 1, 3, 4, 0, 4, 2, 4, 5}; + std::vector data = {1,0,2,1, 6,7,8,2, 1,0,0,1, 1,4,5,1, 2,0,0,0, 4,3,0,0, + 7,2,0,0, 3,0,1,0, 1,0,0,1, 1,0,2,1, 6,7,8,2, 2,0,0,0, + 1,4,5,1, 3,0,1,0, 4,3,0,0, 7,2,0,0}; + + std::vector> on_blocks = {{1,0,2,1}, {6,7,8,2}, {1,4,5,1}, + {4,3,0,0}, {7,2,0,0}}; + std::vector> on_indx = {{0,0}, {0,1}, {1,1}, {2,1}, {2,2}}; + + std::vector> off_blocks = {{1,0,0,1}, {2,0,0,0}, {3,0,1,0}}; + std::vector> off_indx = {{0,4}, {1,3}, {2,5}}; + + // Create matrices for comparison + BSRMatrix* A_bsr = new BSRMatrix(12, 12, 2, 2, row_ptr, indices, data); + COOMatrix* A_coo = A_bsr->to_COO(); + ParBSRMatrix* A_par_bsr = new ParBSRMatrix(12, 12, 2, 2); + + // Add on_proc blocks + for (int i=0; iadd_block(on_indx[i][0], on_indx[i][1], on_blocks[i]); + A_par_bsr->add_block(on_indx[i][0]+3, on_indx[i][1]+3, on_blocks[i]); + } + + // Add off_proc blocks + for(int i=0; iadd_block(off_indx[i][0], off_indx[i][1], off_blocks[i]); + A_par_bsr->add_block(off_indx[i][0]+3, off_indx[i][1]-3, off_blocks[i]); + } + + // Finalize ParBSRMatrix and create on and off process maps + A_par_bsr->finalize(true, 2); + + // Compare nnz + int lcl_nnz = A_par_bsr->local_nnz; + int nnz; + MPI_Allreduce(&lcl_nnz, &nnz, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + ASSERT_EQ(A_bsr->nnz, nnz); + + // Compare n_blocks + int lcl_nblocks = A_par_bsr->on_proc->idx2.size() + A_par_bsr->off_proc->idx2.size(); + int nblocks; + MPI_Allreduce(&lcl_nblocks,& nblocks, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + ASSERT_EQ(A_bsr->n_blocks, nblocks); + + // Create dense matrix to compare against + std::vector A_dense = A_bsr->to_dense(); + + // Compare row_ptrs, indices, and data + if (num_procs <= 1) + { + for (int i=0; ion_proc->idx1.size(); i++) + { + ASSERT_EQ(A_bsr->idx1[i], A_par_bsr->on_proc->idx1[i]); + } + for (int i=0; ion_proc->idx2.size(); i++) + { + ASSERT_EQ(A_bsr->idx2[i], A_par_bsr->on_proc->idx2[i]); + } + for (int i=0; ion_proc->vals.size(); i++) + { + ASSERT_EQ(A_bsr->vals[i], A_par_bsr->on_proc->vals[i]); + } + + } + else + { + int block_rows = A_par_bsr->b_rows; + int block_cols = A_par_bsr->b_cols; + int local_rows = A_par_bsr->local_num_rows; + + for (int i = 0; i < local_rows/block_rows; i++) + { + int start = A_par_bsr->on_proc->idx1[i]; + int end = A_par_bsr->on_proc->idx1[i+1]; + for (int j = start; j < end; j++) + { + int upper_i = A_par_bsr->local_row_map[i*block_rows]; + int upper_j = A_par_bsr->on_proc_column_map[(A_par_bsr->on_proc->idx2[j])*block_cols]; + int data_offset = j * block_rows * block_cols; + for (int bi = 0; bi < block_rows; bi++) + { + for (int bj = 0; bj < block_cols; bj++) + { + int glob_i = upper_i + bi; + int glob_j = upper_j + bj; + int ind = bi * block_cols + bj + data_offset; + double val = A_par_bsr->on_proc->vals[ind]; + int glob_ind = glob_i*12+glob_j; + ASSERT_NEAR(A_dense[glob_ind], val, zero_tol); + } + } + } + + start = A_par_bsr->off_proc->idx1[i]; + end = A_par_bsr->off_proc->idx1[i+1]; + for (int j = start; j < end; j++) + { + int upper_i = A_par_bsr->local_row_map[i*block_rows]; + int upper_j = A_par_bsr->off_proc_column_map[(A_par_bsr->off_proc->idx2[j])*block_cols]; + int data_offset = j * block_rows * block_cols; + for (int bi = 0; bi < block_rows; bi++) + { + for (int bj = 0; bj < block_cols; bj++) + { + int glob_i = upper_i + bi; + int glob_j = upper_j + bj; + int ind = bi * block_cols + bj + data_offset; + int glob_ind = glob_i*12+glob_j; + double val = A_par_bsr->off_proc->vals[ind]; + ASSERT_NEAR(A_dense[glob_i*12+glob_j], val, zero_tol); + } + } + } + } + } + + // Delete pointers + delete A_par_bsr; + delete A_bsr; + + */ + +} // end of TEST(ParMatrixTest, TestsInCore) // diff --git a/raptor/util/linalg/relax.cpp b/raptor/util/linalg/relax.cpp index d421c382..1e2c450f 100644 --- a/raptor/util/linalg/relax.cpp +++ b/raptor/util/linalg/relax.cpp @@ -5,11 +5,23 @@ #include "raptor/core/vector.hpp" #include "relax.hpp" +extern "C" { + // LU decomoposition of a general matrix + void dgetrf_(int* M, int *N, double* A, int* lda, int* IPIV, int* INFO); + + // generate inverse of a matrix given its LU decomposition + void dgetri_(int* N, double* A, int* lda, int* IPIV, double* WORK, int* lwork, int* INFO); +} + + namespace raptor { void jacobi(CSRMatrix* A, Vector& b, Vector& x, Vector& tmp, int num_sweeps, double omega) { + A->sort(); + A->move_diag(); + int row_start, row_end; double diag, row_sum; @@ -45,26 +57,37 @@ void jacobi(CSRMatrix* A, Vector& b, Vector& x, Vector& tmp, int num_sweeps, void sor(CSRMatrix* A, Vector& b, Vector& x, Vector& tmp, int num_sweeps, double omega) { + A->sort(); + A->move_diag(); + int row_start, row_end; - double diag_inv; - double orig_x = 0; + double diag; + double rsum; for (int iter = 0; iter < num_sweeps; iter++) { for (int i = 0; i < A->n_rows; i++) { - orig_x = x[i]; - x[i] = b[i]; + rsum = 0; + diag = 0; row_start = A->idx1[i]; row_end = A->idx1[i+1]; if (row_start == row_end) continue; - diag_inv = omega / A->vals[row_start]; - for (int j = row_start + 1; j < row_end; j++) + if (A->idx2[row_start] == i) { - x[i] -= A->vals[j] * x[A->idx2[j]]; + diag = A->vals[row_start]; + row_start; } - x[i] = diag_inv*x[i] + (1 - omega) * orig_x; + else continue; + + for (int j = row_start; j < row_end; j++) + { + rsum += A->vals[j] * x[A->idx2[j]]; + } + + if (diag) + x[i] = omega*(b[i] - rsum)/diag + (1 - omega) * x[i]; } } } @@ -72,6 +95,9 @@ void sor(CSRMatrix* A, Vector& b, Vector& x, Vector& tmp, int num_sweeps, void ssor(CSRMatrix* A, Vector& b, Vector& x, Vector& tmp, int num_sweeps, double omega) { + A->sort(); + A->move_diag(); + int row_start, row_end; double diag_inv; double orig_x = 0; @@ -112,4 +138,174 @@ void ssor(CSRMatrix* A, Vector& b, Vector& x, Vector& tmp, int num_sweeps, } } + +/** + * Block Matrix (BSR) Relaxation Methods + **/ + + +/* + +// Inverts block at address A +// Returns inverted block at address A_inv +void invert_block(double* A, double* A_inv, int n) +{ + int info; + int *lu = new int[n]; + int block_size = n*n; + + dgetrf_(&n, &n, A, &n, lu, &info); + dgetri_(&n, A, &n, lu, A_inv, &block_size, &info); + + delete[] lu; +} + +void block_relax_init(BSRMatrix* A, double** A_inv_ptr) +{ + double* A_inv = new double[A->n_rows*A->b_size]; + double** bdata = (double**)(A->get_data()); + int row_start, row_end; + + // Invert all diagonal blocks of A (should really do this during AMG setup and store) + for (int i = 0; i < A->n_rows; i++) + { + row_start = A->idx1[i]; + row_end = A->idx1[i+1]; + if (row_start == row_end) continue; + for (int j = row_start; j < row_end; j++) + { + int col = A->idx2[j]; + if (i == col) + { + invert_block(bdata[j], &(A_inv[i*A->b_size]), A->b_rows); + break; + } + } + } + + *A_inv_ptr = A_inv; +} + + +// From Pyamg block_jacobi https://github.com/pyamg/pyamg/blob/e1fe54c93be1029c02ddcf84c2338a607b088703/pyamg/amg_core/relaxation.h#L914 +void jacobi(BSRMatrix* A, double* A_inv, Vector& b, Vector& x, Vector& tmp, int num_sweeps, + double omega) +{ + double* rsum = new double[A->b_size]; + double* tmp_rsum = new double[A->b_size]; + double** bdata = (double**)(A->get_data()); + int row_start, row_end; + + // Go through all sweeps + for (int iter = 0; iter < num_sweeps; iter++) + { + // Copy x to tmp vector + for (int i = 0; i < tmp.size(); i++) + tmp[i] = x[i]; + + // Begin block Jacobi sweep + for (int row = 0; row < A->n_rows; row++) + { + row_start = A->idx1[row]; + row_end = A->idx1[row+1]; + if (row_start == row_end) continue; + + int b_row_idx = row * A->b_rows; + + memset(rsum, 0, A->b_size*sizeof(double)); + + // Block dot product between block row and vector x + for (int j = row_start; j < row_end; j++) + { + int col = A->idx2[j]; + if (row != col) //ignore diagonal + { + gemm(&(bdata[j]), A->b_rows, A->b_rows, 'F', + &(tmp[col * A->b_cols]), A->b_rows, 1, 'F', + tmp_rsum, A->b_rows, 1, 'F', 'T'); + for (int k = 0; k < A->b_rows; k++) + rsum[k] += tmp_rsum[k]; + } + } + + // r = b - r / diag + // in block form, calculate as: block_r = (b - block_r)*A_inv + for (int k = 0; k < A->b_rows; k++) + rsum[k] = b[b_row_idx + k] - rsum[k]; + gemm(&(A_inv[row*A->b_size]), A->b_rows, A->b_rows, 'F', + &(rsum[0]), A->b_rows, 1, 'F', + tmp_rsum, A->b_rows, 1, 'F', 'T'); + + // Weighted Jacobi calculation for row + for (int k = 0; k < A->b_rows; k++) + x[b_row_idx + k] = (1.0-omega)*tmp[b_row_idx + k] + omega*x[b_row_idx + k]; + + } + } +} + +void gauss_seidel(BSRMatrix* A, double* A_inv, Vector& b, Vector& x, Vector& tmp, + int num_sweeps, double omega) +{ + double* rsum = new double[A->b_size]; + double* tmp_rsum = new double[A->b_size]; + double** bdata = (double**)(A->get_data()); + int row_start, row_end; + + // Go through all sweeps + for (int iter = 0; iter < num_sweeps; iter++) + { + // Copy x to tmp vector + for (int i = 0; i < tmp.size(); i++) + tmp[i] = x[i]; + + // Begin block Jacobi sweep + for (int row = 0; row < A->n_rows; row++) + { + row_start = A->idx1[row]; + row_end = A->idx1[row+1]; + if (row_start == row_end) continue; + + int b_row_idx = row * A->b_rows; + + memset(rsum, 0, A->b_size*sizeof(double)); + + // Block dot product between block row and vector x + for (int j = row_start; j < row_end; j++) + { + int col = A->idx2[j]; + if (row != col) //ignore diagonal + { + gemm(&(bdata[j]), A->b_rows, A->b_rows, 'F', + &(tmp[col * A->b_cols]), A->b_rows, 1, 'F', + tmp_rsum, A->b_rows, 1, 'F', 'T'); + for (int k = 0; k < A->b_rows; k++) + rsum[k] += tmp_rsum[k]; + } + } + + // r = b - r / diag + // in block form, calculate as: block_r = (b - block_r)*A_inv + for (int k = 0; k < A->b_rows; k++) + rsum[k] = b[b_row_idx + k] - rsum[k]; + gemm(&(A_inv[row*A->b_size]), A->b_rows, A->b_rows, 'F', + &(rsum[0]), A->b_rows, 1, 'F', + &(x[b_row_idx]), A->b_rows, 1, 'F', 'T'); + + // Weighted Jacobi calculation for row + for (int k = 0; k < A->b_rows; k++) + x[b_row_idx + k] = (1.0-omega)*tmp[b_row_idx + k] + omega*v[k]; + + } + } +} + + +void block_relax_free(double* A_inv) +{ + delete[] A_inv; +} + +*/ + } diff --git a/raptor/util/tests/CMakeLists.txt b/raptor/util/tests/CMakeLists.txt index b35cec99..32dd1189 100644 --- a/raptor/util/tests/CMakeLists.txt +++ b/raptor/util/tests/CMakeLists.txt @@ -10,6 +10,31 @@ add_executable(test_spmv_random test_spmv_random.cpp) target_link_libraries(test_spmv_random raptor ${MPI_LIBRARIES} googletest pthread ) add_test(RandomSpMVTest ./test_spmv_random) + +add_executable(test_jacobi_aniso test_jacobi_aniso.cpp) +target_link_libraries(test_jacobi_aniso raptor ${MPI_LIBRARIES} googletest pthread ) +add_test(AnisoJacobiTest ./test_jacobi_aniso) + +add_executable(test_jacobi_laplacian test_jacobi_laplacian.cpp) +target_link_libraries(test_jacobi_laplacian raptor ${MPI_LIBRARIES} googletest pthread ) +add_test(LaplaceJacobiTest ./test_jacobi_laplacian) + +add_executable(test_gs_aniso test_gs_aniso.cpp) +target_link_libraries(test_gs_aniso raptor ${MPI_LIBRARIES} googletest pthread ) +add_test(AnisoGSTest ./test_gs_aniso) + +add_executable(test_gs_laplacian test_gs_laplacian.cpp) +target_link_libraries(test_gs_laplacian raptor ${MPI_LIBRARIES} googletest pthread ) +add_test(LaplaceGSTest ./test_gs_laplacian) + +add_executable(test_sor_aniso test_sor_aniso.cpp) +target_link_libraries(test_sor_aniso raptor ${MPI_LIBRARIES} googletest pthread ) +add_test(AnisoSORTest ./test_sor_aniso) + +add_executable(test_sor_laplacian test_sor_laplacian.cpp) +target_link_libraries(test_sor_laplacian raptor ${MPI_LIBRARIES} googletest pthread ) +add_test(LaplaceSORTest ./test_sor_laplacian) + if (WITH_MPI) add_executable(test_par_add test_par_add.cpp) target_link_libraries(test_par_add raptor ${MPI_LIBRARIES} googletest pthread ) diff --git a/raptor/util/tests/test_gs_aniso.cpp b/raptor/util/tests/test_gs_aniso.cpp new file mode 100644 index 00000000..8a85d035 --- /dev/null +++ b/raptor/util/tests/test_gs_aniso.cpp @@ -0,0 +1,97 @@ +// Copyright (c) 2015-2017, RAPtor Developer Team +// License: Simplified BSD, http://opensource.org/licenses/BSD-2-Clause + + +#include "gtest/gtest.h" +#include "raptor/raptor.hpp" + +using namespace raptor; + +int main(int argc, char** argv) +{ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); + +} // end of main() // + +TEST(AnisoJacobiTest, TestsInUtil) +{ + double x_val; + int grid[2] = {25, 25}; + double eps = 0.001; + double theta = M_PI/8.0; + double* stencil = diffusion_stencil_2d(eps, theta); + CSRMatrix* A_sten = stencil_grid(stencil, grid, 2); + int n_items_read; + FILE* f; + + Vector x(A_sten->n_rows); + Vector b(A_sten->n_rows); + Vector tmp(A_sten->n_rows); + + const char* x_ones_1 = "../../../../test_data/aniso_sor_ones_1.txt"; + const char* x_ones_2 = "../../../../test_data/aniso_sor_ones_2.txt"; + const char* x_inc_1 = "../../../../test_data/aniso_sor_inc_1.txt"; + const char* x_inc_2 = "../../../../test_data/aniso_sor_inc_2.txt"; + + /********************************************* + * Test sor when b is constant value 1.0 + *********************************************/ + // Iteration 1 + b.set_const_value(1.0); + x.set_const_value(0.0); + sor(A_sten, b, x, tmp, 1, 1.0); + f = fopen(x_ones_1, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + printf("x[%d] = %f\n", i, x[i]); + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + // Iteration 2 + sor(A_sten, b, x, tmp, 1, 1.0); + f = fopen(x_ones_2, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + /********************************************* + * Test sor when b[i] = i + *********************************************/ + // Iteration 1 + for (int i = 0; i < A_sten->n_rows; i++) + { + b[i] = i; + } + x.set_const_value(0.0); + sor(A_sten, b, x, tmp, 1, 1.0); + f = fopen(x_inc_1, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + // Iteration 2 + sor(A_sten, b, x, tmp, 1, 1.0); + f = fopen(x_inc_2, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + +} // end of TEST(AnisoSpMVTest, TestsInUtil) // + diff --git a/raptor/util/tests/test_gs_laplacian.cpp b/raptor/util/tests/test_gs_laplacian.cpp new file mode 100644 index 00000000..69619886 --- /dev/null +++ b/raptor/util/tests/test_gs_laplacian.cpp @@ -0,0 +1,94 @@ +// Copyright (c) 2015-2017, RAPtor Developer Team +// License: Simplified BSD, http://opensource.org/licenses/BSD-2-Clause + + +#include "gtest/gtest.h" +#include "raptor/raptor.hpp" + +using namespace raptor; + +int main(int argc, char** argv) +{ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); + +} // end of main() // + +TEST(AnisoJacobiTest, TestsInUtil) +{ + double x_val; + int grid[3] = {10, 10, 10}; + double* stencil = laplace_stencil_27pt(); + CSRMatrix* A_sten = stencil_grid(stencil, grid, 3); + int n_items_read; + FILE* f; + + Vector x(A_sten->n_rows); + Vector b(A_sten->n_rows); + Vector tmp(A_sten->n_rows); + + const char* x_ones_1 = "../../../../test_data/laplace_sor_ones_1.txt"; + const char* x_ones_2 = "../../../../test_data/laplace_sor_ones_2.txt"; + const char* x_inc_1 = "../../../../test_data/laplace_sor_inc_1.txt"; + const char* x_inc_2 = "../../../../test_data/laplace_sor_inc_2.txt"; + + /********************************************* + * Test sor when b is constant value 1.0 + *********************************************/ + // Iteration 1 + b.set_const_value(1.0); + x.set_const_value(0.0); + sor(A_sten, b, x, tmp, 1, 1.0); + f = fopen(x_ones_1, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + // Iteration 2 + sor(A_sten, b, x, tmp, 1, 1.0); + f = fopen(x_ones_2, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + /********************************************* + * Test sor when b[i] = i + *********************************************/ + // Iteration 1 + for (int i = 0; i < A_sten->n_rows; i++) + { + b[i] = i; + } + x.set_const_value(0.0); + sor(A_sten, b, x, tmp, 1, 1.0); + f = fopen(x_inc_1, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + // Iteration 2 + sor(A_sten, b, x, tmp, 1, 1.0); + f = fopen(x_inc_2, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + +} // end of TEST(AnisoSpMVTest, TestsInUtil) // + diff --git a/raptor/util/tests/test_jacobi_aniso.cpp b/raptor/util/tests/test_jacobi_aniso.cpp new file mode 100644 index 00000000..99aa884d --- /dev/null +++ b/raptor/util/tests/test_jacobi_aniso.cpp @@ -0,0 +1,96 @@ +// Copyright (c) 2015-2017, RAPtor Developer Team +// License: Simplified BSD, http://opensource.org/licenses/BSD-2-Clause + + +#include "gtest/gtest.h" +#include "raptor/raptor.hpp" + +using namespace raptor; + +int main(int argc, char** argv) +{ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); + +} // end of main() // + +TEST(AnisoJacobiTest, TestsInUtil) +{ + double x_val; + int grid[2] = {25, 25}; + double eps = 0.001; + double theta = M_PI/8.0; + double* stencil = diffusion_stencil_2d(eps, theta); + CSRMatrix* A_sten = stencil_grid(stencil, grid, 2); + int n_items_read; + FILE* f; + + Vector x(A_sten->n_rows); + Vector b(A_sten->n_rows); + Vector tmp(A_sten->n_rows); + + const char* x_ones_1 = "../../../../test_data/aniso_jacobi_ones_1.txt"; + const char* x_ones_2 = "../../../../test_data/aniso_jacobi_ones_2.txt"; + const char* x_inc_1 = "../../../../test_data/aniso_jacobi_inc_1.txt"; + const char* x_inc_2 = "../../../../test_data/aniso_jacobi_inc_2.txt"; + + /********************************************* + * Test jacobi when b is constant value 1.0 + *********************************************/ + // Iteration 1 + b.set_const_value(1.0); + x.set_const_value(0.0); + jacobi(A_sten, b, x, tmp, 1, 3.0/4); + f = fopen(x_ones_1, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + // Iteration 2 + jacobi(A_sten, b, x, tmp, 1, 3.0/4); + f = fopen(x_ones_2, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + /********************************************* + * Test jacobi when b[i] = i + *********************************************/ + // Iteration 1 + for (int i = 0; i < A_sten->n_rows; i++) + { + b[i] = i; + } + x.set_const_value(0.0); + jacobi(A_sten, b, x, tmp, 1, 3.0/4); + f = fopen(x_inc_1, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + // Iteration 2 + jacobi(A_sten, b, x, tmp, 1, 3.0/4); + f = fopen(x_inc_2, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + +} // end of TEST(AnisoSpMVTest, TestsInUtil) // + diff --git a/raptor/util/tests/test_jacobi_laplacian.cpp b/raptor/util/tests/test_jacobi_laplacian.cpp new file mode 100644 index 00000000..550cedff --- /dev/null +++ b/raptor/util/tests/test_jacobi_laplacian.cpp @@ -0,0 +1,94 @@ +// Copyright (c) 2015-2017, RAPtor Developer Team +// License: Simplified BSD, http://opensource.org/licenses/BSD-2-Clause + + +#include "gtest/gtest.h" +#include "raptor/raptor.hpp" + +using namespace raptor; + +int main(int argc, char** argv) +{ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); + +} // end of main() // + +TEST(AnisoJacobiTest, TestsInUtil) +{ + double x_val; + int grid[3] = {10, 10, 10}; + double* stencil = laplace_stencil_27pt(); + CSRMatrix* A_sten = stencil_grid(stencil, grid, 3); + int n_items_read; + FILE* f; + + Vector x(A_sten->n_rows); + Vector b(A_sten->n_rows); + Vector tmp(A_sten->n_rows); + + const char* x_ones_1 = "../../../../test_data/laplace_jacobi_ones_1.txt"; + const char* x_ones_2 = "../../../../test_data/laplace_jacobi_ones_2.txt"; + const char* x_inc_1 = "../../../../test_data/laplace_jacobi_inc_1.txt"; + const char* x_inc_2 = "../../../../test_data/laplace_jacobi_inc_2.txt"; + + /********************************************* + * Test jacobi when b is constant value 1.0 + *********************************************/ + // Iteration 1 + b.set_const_value(1.0); + x.set_const_value(0.0); + jacobi(A_sten, b, x, tmp, 1, 3.0/4); + f = fopen(x_ones_1, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + // Iteration 2 + jacobi(A_sten, b, x, tmp, 1, 3.0/4); + f = fopen(x_ones_2, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + /********************************************* + * Test jacobi when b[i] = i + *********************************************/ + // Iteration 1 + for (int i = 0; i < A_sten->n_rows; i++) + { + b[i] = i; + } + x.set_const_value(0.0); + jacobi(A_sten, b, x, tmp, 1, 3.0/4); + f = fopen(x_inc_1, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + // Iteration 2 + jacobi(A_sten, b, x, tmp, 1, 3.0/4); + f = fopen(x_inc_2, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + +} // end of TEST(AnisoSpMVTest, TestsInUtil) // + diff --git a/raptor/util/tests/test_sor_aniso.cpp b/raptor/util/tests/test_sor_aniso.cpp new file mode 100644 index 00000000..0c4ef26b --- /dev/null +++ b/raptor/util/tests/test_sor_aniso.cpp @@ -0,0 +1,97 @@ +// Copyright (c) 2015-2017, RAPtor Developer Team +// License: Simplified BSD, http://opensource.org/licenses/BSD-2-Clause + + +#include "gtest/gtest.h" +#include "raptor/raptor.hpp" + +using namespace raptor; + +int main(int argc, char** argv) +{ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); + +} // end of main() // + +TEST(AnisoJacobiTest, TestsInUtil) +{ + double x_val; + int grid[2] = {25, 25}; + double eps = 0.001; + double theta = M_PI/8.0; + double* stencil = diffusion_stencil_2d(eps, theta); + CSRMatrix* A_sten = stencil_grid(stencil, grid, 2); + int n_items_read; + FILE* f; + + Vector x(A_sten->n_rows); + Vector b(A_sten->n_rows); + Vector tmp(A_sten->n_rows); + + const char* x_ones_1 = "../../../../test_data/aniso_sor_ones_1.txt"; + const char* x_ones_2 = "../../../../test_data/aniso_sor_ones_2.txt"; + const char* x_inc_1 = "../../../../test_data/aniso_sor_inc_1.txt"; + const char* x_inc_2 = "../../../../test_data/aniso_sor_inc_2.txt"; + + /********************************************* + * Test sor when b is constant value 1.0 + *********************************************/ + // Iteration 1 + b.set_const_value(1.0); + x.set_const_value(0.0); + sor(A_sten, b, x, tmp, 1, 3.0/4); + f = fopen(x_ones_1, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + printf("x[%d] = %f\n", i, x[i]); + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + // Iteration 2 + sor(A_sten, b, x, tmp, 1, 3.0/4); + f = fopen(x_ones_2, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + /********************************************* + * Test sor when b[i] = i + *********************************************/ + // Iteration 1 + for (int i = 0; i < A_sten->n_rows; i++) + { + b[i] = i; + } + x.set_const_value(0.0); + sor(A_sten, b, x, tmp, 1, 3.0/4); + f = fopen(x_inc_1, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + // Iteration 2 + sor(A_sten, b, x, tmp, 1, 3.0/4); + f = fopen(x_inc_2, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + +} // end of TEST(AnisoSpMVTest, TestsInUtil) // + diff --git a/raptor/util/tests/test_sor_laplacian.cpp b/raptor/util/tests/test_sor_laplacian.cpp new file mode 100644 index 00000000..40c07227 --- /dev/null +++ b/raptor/util/tests/test_sor_laplacian.cpp @@ -0,0 +1,94 @@ +// Copyright (c) 2015-2017, RAPtor Developer Team +// License: Simplified BSD, http://opensource.org/licenses/BSD-2-Clause + + +#include "gtest/gtest.h" +#include "raptor/raptor.hpp" + +using namespace raptor; + +int main(int argc, char** argv) +{ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); + +} // end of main() // + +TEST(AnisoJacobiTest, TestsInUtil) +{ + double x_val; + int grid[3] = {10, 10, 10}; + double* stencil = laplace_stencil_27pt(); + CSRMatrix* A_sten = stencil_grid(stencil, grid, 3); + int n_items_read; + FILE* f; + + Vector x(A_sten->n_rows); + Vector b(A_sten->n_rows); + Vector tmp(A_sten->n_rows); + + const char* x_ones_1 = "../../../../test_data/laplace_sor_ones_1.txt"; + const char* x_ones_2 = "../../../../test_data/laplace_sor_ones_2.txt"; + const char* x_inc_1 = "../../../../test_data/laplace_sor_inc_1.txt"; + const char* x_inc_2 = "../../../../test_data/laplace_sor_inc_2.txt"; + + /********************************************* + * Test sor when b is constant value 1.0 + *********************************************/ + // Iteration 1 + b.set_const_value(1.0); + x.set_const_value(0.0); + sor(A_sten, b, x, tmp, 1, 3.0/4); + f = fopen(x_ones_1, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + // Iteration 2 + sor(A_sten, b, x, tmp, 1, 3.0/4); + f = fopen(x_ones_2, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + /********************************************* + * Test sor when b[i] = i + *********************************************/ + // Iteration 1 + for (int i = 0; i < A_sten->n_rows; i++) + { + b[i] = i; + } + x.set_const_value(0.0); + sor(A_sten, b, x, tmp, 1, 3.0/4); + f = fopen(x_inc_1, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + // Iteration 2 + sor(A_sten, b, x, tmp, 1, 3.0/4); + f = fopen(x_inc_2, "r"); + for (int i = 0; i < A_sten->n_rows; i++) + { + n_items_read = fscanf(f, "%lg\n", &x_val); + ASSERT_EQ(n_items_read, 1); + ASSERT_NEAR(x[i],x_val,1e-06); + } + fclose(f); + + +} // end of TEST(AnisoSpMVTest, TestsInUtil) // + diff --git a/test_data/RAPtorTests.ipynb b/test_data/RAPtorTests.ipynb index 947cd957..59a7de05 100644 --- a/test_data/RAPtorTests.ipynb +++ b/test_data/RAPtorTests.ipynb @@ -2,13 +2,14 @@ "cells": [ { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from pyamg.gallery import diffusion_stencil_2d, stencil_grid\n", "from pyamg.classical.split import RS, PMIS, MIS\n", + "from pyamg.relaxation.relaxation import jacobi, block_jacobi, sor\n", "from scipy.io import mmwrite\n", "from scipy.sparse import csr_matrix\n", "import PetscBinaryIO" @@ -16,7 +17,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -283,7 +284,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -461,7 +462,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -573,7 +574,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -599,7 +600,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -618,7 +619,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -640,14 +641,14 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "(1000, 125) 8792\n" + "(1000, 125) 8758\n" ] } ], @@ -684,7 +685,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -730,7 +731,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -752,6 +753,155 @@ "np.savetxt(\"random_inc_b_T.txt\", b, fmt=\"%f\")" ] }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [], + "source": [ + "##############################\n", + "### Relaxation Tests\n", + "##############################\n", + "\n", + "## Jacobi, omega = 3.0/4\n", + "Aniso = Aniso.tocsr()\n", + "b = np.ones((Aniso.shape[0],1))\n", + "x = np.zeros((Aniso.shape[0],1))\n", + "jacobi(Aniso, x, b, iterations=1, omega=3.0/4)\n", + "np.savetxt(\"aniso_jacobi_ones_1.txt\", x, fmt=\"%f\")\n", + "jacobi(Aniso, x, b, iterations=1, omega=3.0/4)\n", + "np.savetxt(\"aniso_jacobi_ones_2.txt\", x, fmt=\"%f\")\n", + "\n", + "b = np.arange(Aniso.shape[0], dtype='float')\n", + "x = np.zeros((Aniso.shape[0], 1))\n", + "jacobi(Aniso, x, b, iterations=1, omega=3.0/4)\n", + "np.savetxt(\"aniso_jacobi_inc_1.txt\", x, fmt=\"%f\")\n", + "jacobi(Aniso, x, b, iterations=1, omega=3.0/4)\n", + "np.savetxt(\"aniso_jacobi_inc_2.txt\", x, fmt=\"%f\")\n", + "\n", + "Laplacian = Laplacian.tocsr()\n", + "b = np.ones((Laplacian.shape[0], 1))\n", + "x = np.zeros((Laplacian.shape[0], 1))\n", + "jacobi(Laplacian, x, b, iterations=1, omega=3.0/4)\n", + "np.savetxt(\"laplace_jacobi_ones_1.txt\", x, fmt=\"%f\")\n", + "jacobi(Laplacian, x, b, iterations=1, omega=3.0/4)\n", + "np.savetxt(\"laplace_jacobi_ones_2.txt\", x, fmt=\"%f\")\n", + "\n", + "b = np.arange(Laplacian.shape[0], dtype='float')\n", + "x = np.zeros((Laplacian.shape[0],1))\n", + "jacobi(Laplacian, x, b, iterations=1, omega=3.0/4)\n", + "np.savetxt(\"laplace_jacobi_inc_1.txt\", x, fmt=\"%f\")\n", + "jacobi(Laplacian, x, b, iterations=1, omega=3.0/4)\n", + "np.savetxt(\"laplace_jacobi_inc_2.txt\", x, fmt=\"%f\")\n", + "\n", + "## Forward GS\n", + "Aniso = Aniso.tocsr()\n", + "b = np.ones((Aniso.shape[0],1))\n", + "x = np.zeros((Aniso.shape[0],1))\n", + "sor(Aniso, x, b, 1.0, iterations=1, sweep='forward')\n", + "np.savetxt(\"aniso_gs_ones_1.txt\", x, fmt=\"%f\")\n", + "sor(Aniso, x, b, 1.0, iterations=1, sweep='forward')\n", + "np.savetxt(\"aniso_gs_ones_2.txt\", x, fmt=\"%f\")\n", + "\n", + "b = np.arange(Aniso.shape[0], dtype='float')\n", + "x = np.zeros((Aniso.shape[0],1))\n", + "sor(Aniso, x, b, 1.0, iterations=1, sweep='forward')\n", + "np.savetxt(\"aniso_gs_inc_1.txt\", x, fmt=\"%f\")\n", + "sor(Aniso, x, b, 1.0, iterations=1, sweep='forward')\n", + "np.savetxt(\"aniso_gs_inc_2.txt\", x, fmt=\"%f\")\n", + "\n", + "Laplacian = Laplacian.tocsr()\n", + "b = np.ones((Laplacian.shape[0],1))\n", + "x = np.zeros((Laplacian.shape[0],1))\n", + "sor(Laplacian, x, b, 1.0, iterations=1, sweep='forward')\n", + "np.savetxt(\"laplace_gs_ones_1.txt\", x, fmt=\"%f\")\n", + "sor(Laplacian, x, b, 1.0, iterations=1, sweep='forward')\n", + "np.savetxt(\"laplace_gs_ones_2.txt\", x, fmt=\"%f\")\n", + "\n", + "b = np.arange(Laplacian.shape[0], dtype='float')\n", + "x = np.zeros((Laplacian.shape[0],1))\n", + "sor(Laplacian, x, b, 1.0, iterations=1, sweep='forward')\n", + "np.savetxt(\"laplace_gs_inc_1.txt\", x, fmt=\"%f\")\n", + "sor(Laplacian, x, b, 1.0, iterations=1, sweep='forward')\n", + "np.savetxt(\"laplace_gs_inc_2.txt\", x, fmt=\"%f\")\n", + "\n", + "## Forward SOR , Omega = 3.0/4\n", + "Aniso = Aniso.tocsr()\n", + "b = np.ones((Aniso.shape[0],1))\n", + "x = np.zeros((Aniso.shape[0],1))\n", + "sor(Aniso, x, b, 3.0/4, iterations=1, sweep='forward')\n", + "np.savetxt(\"aniso_sor_ones_1.txt\", x, fmt=\"%f\")\n", + "sor(Aniso, x, b, 3.0/4, iterations=1, sweep='forward')\n", + "np.savetxt(\"aniso_sor_ones_2.txt\", x, fmt=\"%f\")\n", + "\n", + "b = np.arange(Aniso.shape[0], dtype='float')\n", + "x = np.zeros((Aniso.shape[0],1))\n", + "sor(Aniso, x, b, 3.0/4, iterations=1, sweep='forward')\n", + "np.savetxt(\"aniso_sor_inc_1.txt\", x, fmt=\"%f\")\n", + "sor(Aniso, x, b, 3.0/4, iterations=1, sweep='forward')\n", + "np.savetxt(\"aniso_sor_inc_2.txt\", x, fmt=\"%f\")\n", + "\n", + "Laplacian = Laplacian.tocsr()\n", + "b = np.ones((Laplacian.shape[0],1))\n", + "x = np.zeros((Laplacian.shape[0],1))\n", + "sor(Laplacian, x, b, 3.0/4, iterations=1, sweep='forward')\n", + "np.savetxt(\"laplace_sor_ones_1.txt\", x, fmt=\"%f\")\n", + "sor(Laplacian, x, b, 3.0/4, iterations=1, sweep='forward')\n", + "np.savetxt(\"laplace_sor_ones_2.txt\", x, fmt=\"%f\")\n", + "\n", + "b = np.arange(Laplacian.shape[0], dtype='float')\n", + "x = np.zeros((Laplacian.shape[0],1))\n", + "sor(Laplacian, x, b, 3.0/4, iterations=1, sweep='forward')\n", + "np.savetxt(\"laplace_sor_inc_1.txt\", x, fmt=\"%f\")\n", + "sor(Laplacian, x, b, 3.0/4, iterations=1, sweep='forward')\n", + "np.savetxt(\"laplace_sor_inc_2.txt\", x, fmt=\"%f\")\n", + "\n", + "## Block Jacobi, Omega = 3.0/4, Blocksize=5,5\n", + "Aniso = Aniso.tobsr(blocksize=(5,5))\n", + "b = np.ones((Aniso.shape[0],))\n", + "x = np.zeros((Aniso.shape[0],))\n", + "block_jacobi(Aniso, x, b, omega=3.0/4, blocksize=Aniso.blocksize[0])\n", + "np.savetxt(\"aniso_block_jacobi_ones_1.txt\", x, fmt=\"%f\")\n", + "block_jacobi(Aniso, x, b, omega=3.0/4, blocksize=Aniso.blocksize[0])\n", + "np.savetxt(\"aniso_block_jacobi_ones_2.txt\", x, fmt=\"%f\")\n", + "\n", + "b = np.arange(Aniso.shape[0], dtype='float')\n", + "x = np.zeros((Aniso.shape[0],))\n", + "block_jacobi(Aniso, x, b, omega=3.0/4, blocksize=Aniso.blocksize[0])\n", + "np.savetxt(\"aniso_block_jacobi_inc_1.txt\", x, fmt=\"%f\")\n", + "block_jacobi(Aniso, x, b, omega=3.0/4, blocksize=Aniso.blocksize[0])\n", + "np.savetxt(\"aniso_block_jacobi_inc_2.txt\", x, fmt=\"%f\")\n", + "\n", + "Laplacian = Laplacian.tobsr(blocksize=(5,5))\n", + "b = np.ones((Laplacian.shape[0],))\n", + "x = np.zeros((Laplacian.shape[0],))\n", + "block_jacobi(Laplacian, x, b, omega=3.0/4, blocksize=Laplacian.blocksize[0])\n", + "np.savetxt(\"laplace_block_jacobi_ones_1.txt\", x, fmt=\"%f\")\n", + "block_jacobi(Laplacian, x, b, omega=3.0/4, blocksize=Laplacian.blocksize[0])\n", + "np.savetxt(\"laplace_block_jacobi_ones_2.txt\", x, fmt=\"%f\")\n", + "\n", + "b = np.arange(Laplacian.shape[0], dtype='float')\n", + "x = np.zeros((Laplacian.shape[0],))\n", + "block_jacobi(Laplacian, x, b, omega=3.0/4, blocksize=Laplacian.blocksize[0])\n", + "np.savetxt(\"laplace_block_jacobi_inc_1.txt\", x, fmt=\"%f\")\n", + "block_jacobi(Laplacian, x, b, omega=3.0/4, blocksize=Laplacian.blocksize[0])\n", + "np.savetxt(\"laplace_block_jacobi_inc_2.txt\", x, fmt=\"%f\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": null, @@ -762,21 +912,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.16" + "pygments_lexer": "ipython3", + "version": "3.11.4" } }, "nbformat": 4, diff --git a/test_data/aniso_block_jacobi_inc_1.txt b/test_data/aniso_block_jacobi_inc_1.txt new file mode 100644 index 00000000..f45f4339 --- /dev/null +++ b/test_data/aniso_block_jacobi_inc_1.txt @@ -0,0 +1,625 @@ +-0.062455 +0.447276 +0.883610 +1.273394 +2.069942 +2.446902 +2.598114 +3.092635 +3.424232 +4.579299 +4.956260 +4.748952 +5.301659 +5.575070 +7.088657 +7.465617 +6.899790 +7.510684 +7.725908 +9.598014 +9.974975 +9.050627 +9.719709 +9.876746 +12.107372 +12.484332 +11.201465 +11.928734 +12.027584 +14.616729 +14.993690 +13.352303 +14.137759 +14.178421 +17.126087 +17.503047 +15.503141 +16.346783 +16.329259 +19.635444 +20.012405 +17.653979 +18.555808 +18.480097 +22.144802 +22.521762 +19.804817 +20.764833 +20.630935 +24.654159 +25.031120 +21.955654 +22.973858 +22.781773 +27.163517 +27.540478 +24.106492 +25.182882 +24.932611 +29.672875 +30.049835 +26.257330 +27.391907 +27.083449 +32.182232 +32.559193 +28.408168 +29.600932 +29.234286 +34.691590 +35.068550 +30.559006 +31.809957 +31.385124 +37.200947 +37.577908 +32.709844 +34.018982 +33.535962 +39.710305 +40.087265 +34.860682 +36.228006 +35.686800 +42.219662 +42.596623 +37.011519 +38.437031 +37.837638 +44.729020 +45.105980 +39.162357 +40.646056 +39.988476 +47.238377 +47.615338 +41.313195 +42.855081 +42.139313 +49.747735 +50.124695 +43.464033 +45.064106 +44.290151 +52.257092 +52.634053 +45.614871 +47.273130 +46.440989 +54.766450 +55.143410 +47.765709 +49.482155 +48.591827 +57.275808 +57.652768 +49.916546 +51.691180 +50.742665 +59.785165 +60.162126 +52.067384 +53.900205 +52.893503 +62.294523 +62.671483 +54.218222 +56.109229 +55.044341 +64.803880 +65.180841 +56.369060 +58.318254 +57.195178 +67.313238 +67.690198 +58.519898 +60.527279 +59.346016 +69.822595 +70.199556 +60.670736 +62.736304 +61.496854 +72.331953 +72.708913 +62.821574 +64.945329 +63.647692 +74.841310 +75.218271 +64.972411 +67.154353 +65.798530 +77.350668 +77.727628 +67.123249 +69.363378 +67.949368 +79.860025 +80.236986 +69.274087 +71.572403 +70.100205 +82.369383 +82.746343 +71.424925 +73.781428 +72.251043 +84.878741 +85.255701 +73.575763 +75.990452 +74.401881 +87.388098 +87.765059 +75.726601 +78.199477 +76.552719 +89.897456 +90.274416 +77.877439 +80.408502 +78.703557 +92.406813 +92.783774 +80.028276 +82.617527 +80.854395 +94.916171 +95.293131 +82.179114 +84.826552 +83.005233 +97.425528 +97.802489 +84.329952 +87.035576 +85.156070 +99.934886 +100.311846 +86.480790 +89.244601 +87.306908 +102.444243 +102.821204 +88.631628 +91.453626 +89.457746 +104.953601 +105.330561 +90.782466 +93.662651 +91.608584 +107.462958 +107.839919 +92.933303 +95.871675 +93.759422 +109.972316 +110.349276 +95.084141 +98.080700 +95.910260 +112.481673 +112.858634 +97.234979 +100.289725 +98.061098 +114.991031 +115.367992 +99.385817 +102.498750 +100.211935 +117.500389 +117.877349 +101.536655 +104.707775 +102.362773 +120.009746 +120.386707 +103.687493 +106.916799 +104.513611 +122.519104 +122.896064 +105.838331 +109.125824 +106.664449 +125.028461 +125.405422 +107.989168 +111.334849 +108.815287 +127.537819 +127.914779 +110.140006 +113.543874 +110.966125 +130.047176 +130.424137 +112.290844 +115.752898 +113.116962 +132.556534 +132.933494 +114.441682 +117.961923 +115.267800 +135.065891 +135.442852 +116.592520 +120.170948 +117.418638 +137.575249 +137.952209 +118.743358 +122.379973 +119.569476 +140.084606 +140.461567 +120.894195 +124.588998 +121.720314 +142.593964 +142.970925 +123.045033 +126.798022 +123.871152 +145.103322 +145.480282 +125.195871 +129.007047 +126.021990 +147.612679 +147.989640 +127.346709 +131.216072 +128.172827 +150.122037 +150.498997 +129.497547 +133.425097 +130.323665 +152.631394 +153.008355 +131.648385 +135.634121 +132.474503 +155.140752 +155.517712 +133.799223 +137.843146 +134.625341 +157.650109 +158.027070 +135.950060 +140.052171 +136.776179 +160.159467 +160.536427 +138.100898 +142.261196 +138.927017 +162.668824 +163.045785 +140.251736 +144.470221 +141.077854 +165.178182 +165.555142 +142.402574 +146.679245 +143.228692 +167.687539 +168.064500 +144.553412 +148.888270 +145.379530 +170.196897 +170.573858 +146.704250 +151.097295 +147.530368 +172.706255 +173.083215 +148.855088 +153.306320 +149.681206 +175.215612 +175.592573 +151.005925 +155.515344 +151.832044 +177.724970 +178.101930 +153.156763 +157.724369 +153.982882 +180.234327 +180.611288 +155.307601 +159.933394 +156.133719 +182.743685 +183.120645 +157.458439 +162.142419 +158.284557 +185.253042 +185.630003 +159.609277 +164.351444 +160.435395 +187.762400 +188.139360 +161.760115 +166.560468 +162.586233 +190.271757 +190.648718 +163.910952 +168.769493 +164.737071 +192.781115 +193.158075 +166.061790 +170.978518 +166.887909 +195.290472 +195.667433 +168.212628 +173.187543 +169.038747 +197.799830 +198.176791 +170.363466 +175.396568 +171.189584 +200.309188 +200.686148 +172.514304 +177.605592 +173.340422 +202.818545 +203.195506 +174.665142 +179.814617 +175.491260 +205.327903 +205.704863 +176.815980 +182.023642 +177.642098 +207.837260 +208.214221 +178.966817 +184.232667 +179.792936 +210.346618 +210.723578 +181.117655 +186.441691 +181.943774 +212.855975 +213.232936 +183.268493 +188.650716 +184.094611 +215.365333 +215.742293 +185.419331 +190.859741 +186.245449 +217.874690 +218.251651 +187.570169 +193.068766 +188.396287 +220.384048 +220.761008 +189.721007 +195.277791 +190.547125 +222.893405 +223.270366 +191.871845 +197.486815 +192.697963 +225.402763 +225.779724 +194.022682 +199.695840 +194.848801 +227.912121 +228.289081 +196.173520 +201.904865 +196.999639 +230.421478 +230.798439 +198.324358 +204.113890 +199.150476 +232.930836 +233.307796 +200.475196 +206.322914 +201.301314 +235.440193 +235.817154 +202.626034 +208.531939 +203.452152 +237.949551 +238.326511 +204.776872 +210.740964 +205.602990 +240.458908 +240.835869 +206.927709 +212.949989 +207.753828 +242.968266 +243.345226 +209.078547 +215.159014 +209.904666 +245.477623 +245.854584 +211.229385 +217.368038 +212.055504 +247.986981 +248.363941 +213.380223 +219.577063 +214.206341 +250.496338 +250.873299 +215.531061 +221.786088 +216.357179 +253.005696 +253.382657 +217.681899 +223.995113 +218.508017 +255.515054 +255.892014 +219.832737 +226.204137 +220.658855 +258.024411 +258.401372 +221.983574 +228.413162 +222.809693 +260.533769 +260.910729 +224.134412 +230.622187 +224.960531 +263.043126 +263.420087 +226.285250 +232.831212 +227.111368 +265.552484 +265.929444 +228.436088 +235.040237 +229.262206 +268.061841 +268.438802 +230.586926 +237.249261 +231.413044 +270.571199 +270.948159 +232.737764 +239.458286 +233.563882 +273.080556 +273.457517 +234.888601 +241.667311 +235.714720 +275.589914 +275.966874 +237.039439 +243.876336 +237.865558 +278.099271 +278.476232 +239.190277 +246.085360 +240.016396 +280.608629 +280.985590 +241.341115 +248.294385 +242.167233 +283.117987 +283.494947 +243.491953 +250.503410 +244.318071 +285.627344 +286.004305 +245.642791 +252.712435 +246.468909 +288.136702 +288.513662 +247.793629 +254.921460 +248.619747 +290.646059 +291.023020 +249.944466 +257.130484 +250.770585 +293.155417 +293.532377 +252.095304 +259.339509 +252.921423 +295.664774 +296.041735 +254.246142 +261.548534 +255.072260 +298.174132 +298.551092 +256.396980 +263.757559 +257.223098 +300.683489 +301.060450 +258.547818 +265.966583 +259.373936 +303.192847 +303.569807 +260.698656 +268.175608 +261.524774 +305.702204 +306.079165 +262.849494 +270.384633 +263.675612 +308.211562 +308.588523 +265.000331 +272.593658 +265.826450 +310.720920 +311.097880 +267.151169 +274.802683 +267.977288 +313.230277 diff --git a/test_data/aniso_block_jacobi_inc_2.txt b/test_data/aniso_block_jacobi_inc_2.txt new file mode 100644 index 00000000..e731a96d --- /dev/null +++ b/test_data/aniso_block_jacobi_inc_2.txt @@ -0,0 +1,625 @@ +5.152678 +4.707441 +5.603445 +6.371407 +8.762752 +9.025576 +8.220912 +9.176498 +9.932630 +12.720570 +12.919318 +11.731414 +12.749975 +13.493792 +16.678395 +16.813060 +15.241915 +16.323452 +17.054954 +20.636221 +20.705352 +18.762808 +19.823965 +21.128263 +20.999262 +26.000396 +22.139108 +23.772228 +24.556916 +29.336075 +29.465230 +26.699557 +28.137969 +28.905446 +34.318571 +34.448340 +31.043697 +32.534526 +33.249587 +39.301681 +39.431449 +35.387838 +36.931084 +37.593727 +44.284790 +44.412680 +39.745434 +41.233162 +42.601029 +44.613143 +49.856322 +44.010776 +45.733509 +46.280683 +54.251195 +54.380778 +48.420261 +50.120757 +50.626150 +59.234119 +59.363887 +52.764402 +54.517315 +54.970291 +64.217228 +64.346997 +57.108542 +58.913872 +59.314432 +69.200338 +69.327800 +61.469201 +63.194443 +64.472697 +68.469068 +73.712247 +65.882444 +67.694789 +68.004450 +79.166314 +79.296325 +70.140965 +72.103545 +72.346854 +84.149666 +84.279435 +74.485106 +76.500103 +76.690995 +89.132776 +89.262544 +78.829246 +80.896660 +81.035136 +94.115886 +94.242920 +83.192968 +85.155723 +86.344365 +92.324993 +97.568172 +87.754112 +89.656070 +89.728217 +104.081434 +104.211873 +91.861669 +94.086333 +94.067558 +109.065214 +109.194982 +96.205810 +98.482891 +98.411699 +114.048324 +114.178092 +100.549951 +102.879448 +102.755840 +119.031433 +119.158040 +104.916735 +107.117004 +108.216033 +116.180918 +121.424097 +109.625780 +111.617350 +111.451984 +128.996554 +129.127420 +113.582373 +116.069121 +115.788262 +133.980762 +134.110530 +117.926514 +120.465679 +120.132403 +138.963871 +139.093639 +122.270655 +124.862237 +124.476544 +143.946981 +144.073159 +126.640502 +129.078285 +130.087701 +140.036844 +145.280023 +131.497448 +133.578631 +133.175751 +153.911674 +154.042968 +135.303077 +138.051909 +137.508966 +158.896309 +159.026077 +139.647218 +142.448467 +141.853107 +163.879419 +164.009187 +143.991359 +146.845025 +146.197248 +168.862528 +168.988279 +148.364269 +151.039565 +151.959369 +163.892769 +169.135948 +153.369115 +155.539912 +154.899518 +178.826794 +178.958516 +157.023781 +160.034698 +159.229670 +183.811857 +183.941625 +161.367922 +164.431255 +163.573811 +188.794966 +188.924735 +165.712063 +168.827813 +167.917952 +193.778076 +193.903399 +170.088036 +173.000846 +173.831037 +187.748694 +192.991873 +175.240783 +177.501192 +176.623285 +203.741914 +203.874063 +178.744485 +182.017486 +180.950374 +208.727404 +208.857173 +183.088626 +186.414043 +185.294515 +213.710514 +213.840282 +187.432767 +190.810601 +189.638656 +218.693623 +218.818519 +191.811803 +194.962126 +195.702704 +211.604620 +216.847799 +197.112451 +199.462473 +198.347052 +228.657033 +228.789611 +200.465189 +204.000274 +202.671078 +233.642952 +233.772720 +204.809330 +208.396831 +207.015219 +238.626061 +238.755830 +209.153471 +212.793389 +211.359360 +243.609171 +243.733639 +213.535570 +216.923407 +217.574372 +235.460545 +240.703724 +218.984119 +221.423753 +220.070819 +253.572153 +253.705158 +222.185893 +225.983062 +224.391783 +258.558499 +258.688268 +226.530034 +230.379620 +228.735923 +263.541609 +263.671377 +230.874175 +234.776177 +233.080064 +268.524718 +268.648759 +235.259337 +238.884687 +239.446040 +259.316470 +264.559649 +240.855787 +243.385034 +241.794586 +278.487273 +278.620706 +243.906598 +247.965850 +246.112487 +283.474047 +283.603815 +248.250738 +252.362408 +250.456627 +288.457156 +288.586925 +252.594879 +256.758965 +254.800768 +293.440266 +293.563878 +256.983104 +260.845968 +261.317708 +283.172395 +288.415574 +262.727455 +265.346314 +263.518354 +303.402393 +303.536253 +265.627302 +269.948638 +267.833191 +308.389594 +308.519363 +269.971442 +274.345196 +272.177332 +313.372704 +313.502472 +274.315583 +278.741753 +276.521472 +318.355813 +318.478998 +278.706871 +282.807248 +283.189376 +307.028321 +312.271500 +284.599123 +287.307595 +285.242121 +328.317513 +328.451801 +287.348006 +291.931426 +289.553895 +333.305142 +333.434910 +291.692147 +296.327984 +293.898036 +338.288251 +338.418020 +296.036287 +300.724542 +298.242176 +343.271361 +343.394118 +300.430638 +304.768529 +305.061044 +330.884246 +336.127425 +306.470791 +309.268876 +306.965888 +353.232633 +353.367348 +309.068710 +313.914214 +311.274599 +358.220689 +358.350458 +313.412851 +318.310772 +315.618740 +363.203799 +363.333567 +317.756991 +322.707330 +319.962881 +368.186908 +368.309238 +322.154405 +326.729810 +326.932712 +354.740171 +359.983350 +328.342459 +331.230156 +328.689655 +378.147753 +378.282896 +330.789414 +335.897003 +332.995303 +383.136237 +383.266005 +335.133555 +340.293560 +337.339444 +388.119346 +388.249115 +339.477696 +344.690118 +341.683585 +393.102456 +393.224358 +343.878172 +348.691090 +348.804380 +378.596096 +383.839276 +350.214127 +353.191437 +350.413422 +403.062872 +403.198443 +352.510118 +357.879791 +354.716007 +408.051784 +408.181553 +356.854259 +362.276348 +359.060148 +413.034894 +413.164662 +361.198400 +366.672906 +363.404289 +418.018004 +418.139478 +365.601939 +370.652371 +370.676048 +402.452022 +407.695201 +372.085795 +375.152717 +372.137189 +427.977992 +428.113991 +374.230822 +379.862579 +376.436711 +432.967332 +433.097100 +378.574963 +384.259136 +380.780852 +437.950442 +438.080210 +382.919104 +388.655694 +385.124993 +442.933551 +443.054598 +387.325706 +392.613651 +392.547716 +426.307947 +431.551126 +393.957462 +397.113998 +393.860956 +452.893112 +453.029538 +395.951526 +401.845367 +398.157415 +457.882880 +458.012648 +400.295667 +406.241925 +402.501556 +462.865989 +462.995757 +404.639808 +410.638482 +406.845697 +467.849099 +467.969717 +409.049474 +414.574932 +414.419384 +450.163872 +455.407051 +415.829130 +419.075278 +415.584723 +477.808232 +477.945086 +417.672230 +423.828155 +419.878119 +482.798427 +482.928195 +422.016371 +428.224713 +424.222260 +487.781537 +487.911305 +426.360512 +432.621270 +428.566401 +492.764646 +492.884837 +430.773241 +436.536212 +436.291052 +474.019798 +479.262977 +437.700798 +441.036559 +437.308490 +502.723352 +502.860634 +439.392934 +445.810943 +441.598823 +507.713975 +507.843743 +443.737075 +450.207501 +445.942964 +512.697084 +512.826853 +448.081216 +454.604058 +450.287105 +517.680194 +517.799957 +452.497008 +458.497493 +458.162719 +497.875723 +503.118902 +459.572466 +462.997839 +459.032257 +527.638472 +527.776181 +461.113638 +467.793731 +463.319528 +532.629522 +532.759291 +465.457779 +472.190289 +467.663668 +537.612632 +537.742400 +469.801920 +476.586847 +472.007809 +542.595741 +542.715077 +474.220775 +480.458774 +480.034387 +521.731648 +526.974827 +481.444134 +484.959120 +480.756024 +552.553591 +552.691729 +482.834343 +489.776519 +485.040232 +557.545070 +557.674838 +487.178483 +494.173077 +489.384372 +562.528179 +562.657948 +491.522624 +498.569635 +493.728513 +567.511289 +567.630197 +495.944542 +502.420054 +501.906055 +545.587573 +550.830752 +503.315802 +506.920401 +502.479791 +577.468711 +577.607276 +504.555047 +511.759308 +506.760936 +582.460617 +582.590386 +508.899187 +516.155865 +511.105077 +587.443727 +587.573495 +513.243328 +520.552423 +515.449217 +592.426836 +592.545317 +517.668309 +524.381335 +523.777723 +569.443499 +444.735616 +427.322660 +425.573537 +419.429294 +465.222288 +473.300447 +427.378075 +429.646472 +422.868667 +469.125962 +477.258273 +430.939237 +433.219949 +426.379168 +473.019704 +481.216099 +434.500399 +436.793426 +429.889670 +476.913446 +485.188130 +437.959826 +441.081278 +428.385898 +516.002610 diff --git a/test_data/aniso_block_jacobi_ones_1.txt b/test_data/aniso_block_jacobi_ones_1.txt new file mode 100644 index 00000000..31ba3739 --- /dev/null +++ b/test_data/aniso_block_jacobi_ones_1.txt @@ -0,0 +1,625 @@ +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 +0.501872 +0.430168 +0.441805 +0.430168 +0.501872 diff --git a/test_data/aniso_block_jacobi_ones_2.txt b/test_data/aniso_block_jacobi_ones_2.txt new file mode 100644 index 00000000..0cc4f160 --- /dev/null +++ b/test_data/aniso_block_jacobi_ones_2.txt @@ -0,0 +1,625 @@ +0.835185 +0.694060 +0.715841 +0.712069 +0.791588 +0.778748 +0.702100 +0.714695 +0.712232 +0.791565 +0.778748 +0.702100 +0.714695 +0.712232 +0.791565 +0.778748 +0.702100 +0.714695 +0.712232 +0.791565 +0.778730 +0.702231 +0.713778 +0.718671 +0.746370 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.954237 +0.874867 +0.878451 +0.868951 +0.996605 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996622 +0.868828 +0.879312 +0.868828 +0.996622 +0.996605 +0.868951 +0.878451 +0.874867 +0.954237 +0.746370 +0.718671 +0.713778 +0.702231 +0.778730 +0.791565 +0.712232 +0.714695 +0.702100 +0.778748 +0.791565 +0.712232 +0.714695 +0.702100 +0.778748 +0.791565 +0.712232 +0.714695 +0.702100 +0.778748 +0.791588 +0.712069 +0.715841 +0.694060 +0.835185 diff --git a/test_data/aniso_gs_inc_1.txt b/test_data/aniso_gs_inc_1.txt new file mode 100644 index 00000000..daace4d8 --- /dev/null +++ b/test_data/aniso_gs_inc_1.txt @@ -0,0 +1,625 @@ +0.000000 +0.749251 +1.393880 +2.053118 +2.710315 +3.367798 +4.025241 +4.682690 +5.340137 +5.997585 +6.655033 +7.312481 +7.969929 +8.627377 +9.284825 +9.942272 +10.599720 +11.257168 +11.914616 +12.572064 +13.229512 +13.886960 +14.544408 +15.201855 +15.859303 +18.725786 +17.147474 +18.556255 +19.526718 +20.561347 +21.586603 +22.613226 +23.639650 +24.666103 +25.692551 +26.719000 +27.745450 +28.771899 +29.798348 +30.824797 +31.851246 +32.877695 +33.904144 +34.930593 +35.957042 +36.983491 +38.009941 +39.036390 +40.062839 +41.210151 +44.633285 +43.343356 +44.408408 +45.741999 +46.950377 +48.189087 +49.421684 +50.655409 +51.888936 +53.122497 +54.356052 +55.589608 +56.823164 +58.056720 +59.290276 +60.523832 +61.757387 +62.990943 +64.224499 +65.458055 +66.691611 +67.925167 +69.158723 +70.391394 +71.981238 +73.267337 +74.760420 +75.374486 +76.822820 +78.174751 +79.519787 +80.871200 +82.220591 +83.570477 +84.920257 +86.270057 +87.619854 +88.969651 +90.319449 +91.669246 +93.019043 +94.368841 +95.718638 +97.068435 +98.418233 +99.768030 +101.117827 +102.467631 +103.814475 +105.839038 +102.925543 +108.733002 +109.284187 +110.668911 +112.114405 +113.523874 +114.939099 +116.354369 +117.769306 +119.184376 +120.599407 +122.014448 +123.429487 +124.844527 +126.259566 +127.674605 +129.089645 +130.504684 +131.919723 +133.334763 +134.749802 +136.164841 +137.579905 +138.988854 +141.451264 +132.964096 +143.890186 +144.812759 +146.103975 +147.582142 +149.035763 +150.485783 +151.937807 +153.389433 +154.841080 +156.292743 +157.744398 +159.196056 +160.647713 +162.099371 +163.551028 +165.002685 +166.454342 +167.906000 +169.357657 +170.809314 +172.260971 +173.712682 +175.154301 +178.059327 +163.142176 +179.575473 +181.191550 +182.444821 +183.916633 +185.396496 +186.867501 +188.339601 +189.811908 +191.284092 +192.756305 +194.228515 +195.700724 +197.172934 +198.645143 +200.117353 +201.589562 +203.061772 +204.533981 +206.006191 +207.478400 +208.950609 +210.422913 +211.880577 +215.232112 +193.370757 +215.489158 +217.998987 +219.291170 +220.745116 +222.235910 +223.720172 +225.203491 +226.687305 +228.171056 +229.654794 +231.138541 +232.622285 +234.106030 +235.589775 +237.073520 +238.557265 +240.041009 +241.524754 +243.008499 +244.492244 +245.975988 +247.459876 +248.924205 +252.724930 +223.617344 +251.499178 +255.015059 +256.412033 +257.854317 +259.346305 +260.838296 +262.328234 +263.818410 +265.308655 +266.798869 +268.289088 +269.779308 +271.269527 +272.759746 +274.249965 +275.740184 +277.230403 +278.720622 +280.210841 +281.701061 +283.191278 +284.681695 +286.147404 +290.399029 +253.870241 +287.548959 +292.129650 +293.677729 +295.121326 +296.610539 +298.106187 +299.600136 +301.093886 +302.587752 +304.081608 +305.575459 +307.069313 +308.563165 +310.057018 +311.550871 +313.044724 +314.538577 +316.032430 +317.526283 +319.020136 +320.513987 +322.008096 +323.472207 +328.175782 +284.125306 +323.614833 +329.289552 +331.017727 +332.475590 +333.962040 +335.458756 +336.955033 +338.450856 +339.946737 +341.442636 +342.938528 +344.434420 +345.930312 +347.426205 +348.922097 +350.417990 +351.913882 +353.409774 +354.905667 +356.401559 +357.897449 +359.393659 +360.854497 +366.010649 +314.381098 +359.687101 +366.469813 +368.394853 +369.877148 +371.362773 +372.859292 +374.356764 +375.853812 +377.350825 +378.847865 +380.344903 +381.841940 +383.338977 +384.836014 +386.333051 +387.830089 +389.327126 +390.824163 +392.321200 +393.818237 +395.315271 +396.812688 +398.269311 +403.878411 +344.637126 +395.761867 +403.659032 +405.790088 +407.303798 +408.791003 +410.287003 +411.784953 +413.282712 +414.780374 +416.278051 +417.775732 +419.273411 +420.771091 +422.268771 +423.766450 +425.264130 +426.761809 +428.259489 +429.757168 +431.254848 +432.752524 +434.250647 +435.702525 +441.764789 +374.893228 +431.837590 +440.852117 +443.193960 +444.743477 +446.234385 +447.730070 +449.228111 +450.726252 +452.224292 +453.722326 +455.220367 +456.718408 +458.216448 +459.714488 +461.212528 +462.710568 +464.208608 +465.706649 +467.204689 +468.702729 +470.200764 +471.699312 +473.146148 +479.661703 +405.149352 +467.913674 +478.046842 +480.601868 +482.189781 +483.685986 +485.181760 +486.679741 +488.178060 +489.676318 +491.174556 +492.672798 +494.171041 +495.669283 +497.167526 +498.665768 +500.164011 +501.662254 +503.160496 +504.658739 +506.156981 +507.655218 +509.154033 +510.595659 +517.564577 +435.405482 +503.989891 +515.242250 +518.011626 +519.639386 +521.141971 +522.638252 +524.136160 +525.634541 +527.132920 +528.631275 +530.129630 +531.627986 +533.126342 +534.624699 +536.123055 +537.621411 +539.119767 +540.618123 +542.116479 +543.614836 +545.113185 +546.612178 +548.048501 +555.470823 +465.661613 +540.066157 +552.437939 +555.422218 +557.090604 +558.600252 +560.097387 +561.595278 +563.093666 +564.592105 +566.090528 +567.588947 +569.087366 +570.585786 +572.084206 +573.582626 +575.081046 +576.579466 +578.077886 +579.576306 +581.074726 +582.573139 +584.072260 +585.503226 +593.378978 +495.917744 +576.142440 +589.633740 +592.833179 +594.542598 +596.059715 +597.557958 +599.055907 +600.554284 +602.052750 +603.551211 +605.049666 +606.548121 +608.046577 +609.545033 +611.043489 +612.541944 +614.040400 +615.538856 +617.037312 +618.535767 +620.034215 +621.533437 +622.959017 +631.288213 +526.173876 +612.218728 +626.829587 +630.244301 +631.994958 +633.519778 +635.019297 +636.517376 +638.015746 +639.514221 +641.012701 +642.511177 +644.009653 +645.508129 +647.006604 +648.505080 +650.003556 +651.502032 +653.000508 +654.498983 +655.997459 +657.495926 +658.995233 +660.415410 +669.198057 +556.430007 +648.295019 +664.025451 +667.655493 +669.447488 +670.980138 +672.481043 +673.979307 +675.477682 +676.976157 +678.474647 +679.973135 +681.471622 +682.970109 +684.468596 +685.967083 +687.465570 +688.964058 +690.462545 +691.961032 +693.459519 +694.957997 +696.457379 +697.872145 +707.108248 +586.686138 +684.371310 +701.221322 +705.066714 +706.900095 +708.440644 +709.943000 +711.441490 +712.939883 +714.438357 +715.936851 +717.435346 +718.933839 +720.432332 +721.930826 +723.429319 +724.927813 +726.426306 +727.924799 +729.423293 +730.921786 +732.420269 +733.919724 +735.329071 +745.018633 +616.942269 +720.447602 +738.417196 +742.477947 +744.352737 +745.901221 +747.405065 +748.903809 +750.402231 +751.900705 +753.399201 +754.897698 +756.396195 +757.894692 +759.393189 +760.891686 +762.390183 +763.888680 +765.387177 +766.885674 +768.384171 +769.882657 +771.382180 +772.786107 +782.929129 +647.198400 +756.523893 +775.613070 +779.889185 +781.805395 +783.361832 +784.867185 +786.366199 +787.864661 +789.363137 +790.861632 +792.360132 +793.858631 +795.357130 +796.855629 +798.354128 +799.852627 +801.351125 +802.849624 +804.348123 +805.846622 +807.345110 +808.844699 +810.243205 +820.839688 +677.454531 +792.600184 +812.808945 +817.300425 +819.258060 +820.822458 +822.329331 +823.828627 +825.327134 +826.825615 +828.324110 +829.822610 +831.321110 +832.819611 +834.318111 +835.816611 +837.315111 +838.813611 +840.312111 +841.810611 +843.309111 +844.807599 +846.307254 +847.700337 +858.750282 +707.710662 +828.676476 +850.004820 +854.711666 +856.710728 +858.283091 +859.791491 +861.291074 +862.789631 +864.288119 +865.786614 +867.285115 +868.783615 +870.282116 +871.780617 +873.279117 +874.777618 +876.276119 +877.774620 +879.273120 +880.771621 +882.270108 +883.769829 +885.157489 +896.660895 diff --git a/test_data/aniso_gs_inc_2.txt b/test_data/aniso_gs_inc_2.txt new file mode 100644 index 00000000..9a332f59 --- /dev/null +++ b/test_data/aniso_gs_inc_2.txt @@ -0,0 +1,625 @@ +11.603952 +10.253379 +11.909341 +12.969640 +14.138871 +15.289126 +16.442581 +17.595509 +18.748522 +19.901521 +21.054523 +22.207524 +23.360525 +24.513526 +25.666528 +26.819529 +27.972530 +29.125531 +30.278533 +31.431534 +32.584535 +33.737537 +34.890538 +36.074639 +28.708490 +49.326865 +44.884030 +47.175660 +49.113887 +50.949131 +52.830339 +54.699211 +56.570852 +58.441928 +60.313112 +62.184276 +64.055444 +65.926612 +67.797779 +69.668947 +71.540114 +73.411281 +75.282449 +77.153616 +79.024784 +80.895951 +82.767119 +84.637831 +86.657977 +72.612588 +98.086028 +96.138736 +97.310196 +99.966290 +102.234001 +104.547959 +106.864316 +109.177568 +111.491920 +113.805977 +116.120103 +118.434214 +120.748328 +123.062442 +125.376555 +127.690669 +130.004782 +132.318896 +134.633010 +136.947123 +139.261237 +141.575355 +143.887567 +146.499076 +126.058114 +151.351220 +157.004169 +157.226341 +159.982998 +162.625379 +165.187890 +167.777212 +170.362010 +172.946990 +175.532154 +178.117231 +180.702335 +183.287432 +185.872531 +188.457629 +191.042727 +193.627825 +196.212924 +198.798022 +201.383120 +203.968219 +206.553338 +209.134372 +212.174850 +185.459545 +206.397966 +222.917723 +223.299642 +225.782356 +228.648809 +231.388296 +234.134725 +236.886071 +239.635453 +242.385250 +245.135004 +247.884750 +250.634502 +253.384252 +256.134002 +258.883753 +261.633503 +264.383254 +267.133004 +269.882755 +272.632505 +275.382304 +278.125425 +281.490712 +248.555448 +262.126772 +291.313806 +293.020601 +295.224986 +298.144215 +301.012609 +303.854592 +306.704579 +309.553983 +312.403081 +315.252324 +318.101531 +320.950743 +323.799956 +326.649168 +329.498380 +332.347592 +335.196805 +338.046017 +340.895229 +343.744441 +346.593737 +349.433558 +353.058314 +313.929015 +318.107871 +360.870953 +364.781770 +366.915389 +369.784403 +372.727787 +375.634146 +378.541781 +381.451273 +384.360200 +387.269183 +390.178183 +393.087173 +395.996166 +398.905159 +401.814151 +404.723144 +407.632137 +410.541129 +413.450122 +416.359113 +419.268230 +422.164984 +426.008845 +380.698722 +374.178689 +430.949190 +437.628066 +439.948057 +442.746193 +445.715989 +448.665757 +451.608470 +454.553359 +457.498221 +460.442950 +463.387721 +466.332487 +469.277252 +472.222017 +475.166783 +478.111548 +481.056314 +484.001079 +486.945844 +489.890608 +492.835542 +495.765188 +499.803497 +448.319716 +430.279890 +501.253029 +511.026959 +513.753227 +516.513304 +519.478921 +522.454279 +525.419565 +528.385246 +531.351469 +534.317551 +537.283634 +540.249727 +543.215816 +546.181906 +549.147995 +552.114085 +555.080175 +558.046265 +561.012354 +563.978442 +566.944745 +569.892824 +574.110647 +516.457300 +486.390711 +571.651358 +584.696799 +587.986893 +590.761902 +593.712408 +596.699081 +599.678949 +602.657150 +605.635930 +608.614718 +611.593467 +614.572225 +617.550983 +620.529741 +623.508498 +626.487256 +629.466014 +632.444772 +635.423529 +638.402284 +641.381302 +644.339157 +648.727507 +584.907017 +542.504271 +642.088013 +658.495102 +662.450079 +665.291509 +668.229912 +671.218601 +674.207181 +677.193183 +680.179335 +683.165630 +686.151890 +689.138148 +692.124409 +695.110670 +698.096930 +701.083190 +704.069451 +707.055711 +710.041971 +713.028228 +716.014795 +718.977264 +723.530762 +653.544597 +598.618459 +712.539710 +732.352487 +737.032285 +739.980814 +742.916903 +745.903265 +748.896228 +751.887128 +754.877673 +757.868370 +760.859070 +763.849760 +766.840451 +769.831143 +772.821835 +775.812526 +778.803218 +781.793910 +784.784601 +787.775289 +790.766333 +793.730346 +798.445787 +722.294850 +654.732709 +782.997106 +806.236290 +811.674397 +814.758437 +817.703449 +820.686838 +823.681327 +826.675171 +829.668393 +832.661669 +835.654980 +838.648283 +841.641584 +844.634887 +847.628190 +850.621492 +853.614794 +856.608097 +859.601399 +862.594697 +865.588399 +868.552138 +873.427618 +791.112465 +710.846908 +853.456575 +880.131594 +886.345842 +889.583612 +892.547377 +895.529241 +898.523719 +901.519159 +904.514025 +907.508825 +910.503664 +913.498503 +916.493340 +919.488177 +922.483014 +925.477852 +928.472689 +931.467526 +934.462363 +937.457195 +940.452478 +943.414868 +948.449262 +859.970237 +766.961059 +923.916759 +954.031775 +961.031287 +964.433742 +967.423698 +970.406278 +973.400206 +976.396355 +979.392211 +982.387924 +985.383655 +988.379395 +991.375133 +994.370870 +997.366608 +1000.362346 +1003.358083 +1006.353821 +1009.349558 +1012.345290 +1015.341519 +1018.301927 +1023.494570 +928.851885 +823.075180 +994.377174 +1027.933972 +1035.723255 +1039.296652 +1042.317918 +1045.303434 +1048.296897 +1051.293240 +1054.289655 +1057.285920 +1060.282176 +1063.278441 +1066.274707 +1069.270971 +1072.267236 +1075.263501 +1078.259766 +1081.256031 +1084.252295 +1087.248553 +1090.245356 +1093.203409 +1098.553909 +997.747696 +879.189286 +1064.837656 +1101.836979 +1110.418194 +1114.165956 +1117.221814 +1120.212098 +1123.205480 +1126.201780 +1129.198475 +1132.195072 +1135.191638 +1138.188210 +1141.184783 +1144.181356 +1147.177929 +1150.174502 +1153.171075 +1156.167648 +1159.164221 +1162.160786 +1165.157944 +1168.113423 +1173.621551 +1066.651890 +935.303384 +1135.298152 +1175.740301 +1185.114456 +1189.038390 +1192.130833 +1195.127235 +1198.120999 +1201.117201 +1204.114008 +1207.110796 +1210.107548 +1213.104298 +1216.101051 +1219.097804 +1222.094557 +1225.091310 +1228.088063 +1231.084815 +1234.081568 +1237.078313 +1240.075697 +1243.028474 +1248.694094 +1135.561035 +991.417478 +1205.758649 +1249.643743 +1259.811295 +1263.912326 +1267.042509 +1270.045948 +1273.040517 +1276.036665 +1279.033497 +1282.030388 +1285.027250 +1288.024105 +1291.020963 +1294.017821 +1297.014678 +1300.011536 +1303.008393 +1306.005251 +1309.002109 +1311.998957 +1314.996493 +1317.946493 +1323.769527 +1204.473099 +1047.531571 +1276.219145 +1323.547229 +1334.508379 +1338.786968 +1341.955536 +1344.966601 +1347.962312 +1350.958491 +1353.955313 +1356.952252 +1359.949179 +1362.946097 +1365.943015 +1368.939933 +1371.936852 +1374.933771 +1377.930689 +1380.927608 +1383.924527 +1386.921436 +1389.919078 +1392.866258 +1398.846660 +1273.386881 +1103.645664 +1346.679639 +1397.450729 +1409.205567 +1413.661934 +1416.869236 +1419.888289 +1422.885384 +1425.881686 +1428.878495 +1431.875452 +1434.872414 +1437.869369 +1440.866322 +1443.863276 +1446.860230 +1449.857185 +1452.854139 +1455.851093 +1458.848047 +1461.844991 +1464.842715 +1467.787049 +1473.924792 +1342.301673 +1159.759756 +1417.140133 +1471.354234 +1483.902797 +1488.537048 +1491.783266 +1494.810518 +1497.809163 +1500.805666 +1503.802473 +1506.799434 +1509.796414 +1512.793391 +1515.790365 +1518.787340 +1521.784314 +1524.781289 +1527.778264 +1530.775238 +1533.772213 +1536.769177 +1539.766968 +1542.708442 +1549.003509 +1411.217058 +1215.873849 +1487.600626 +1545.257741 +1558.600043 +1563.412228 +1566.697455 +1569.733026 +1572.733325 +1575.730092 +1578.726914 +1581.723873 +1584.720863 +1587.717851 +1590.714838 +1593.711824 +1596.708811 +1599.705798 +1602.702784 +1605.699771 +1608.696758 +1611.693732 +1614.691582 +1617.630186 +1624.082570 +1480.132790 +1271.987941 +1558.061118 +1619.161248 +1633.297295 +1638.287436 +1641.611719 +1644.655674 +1647.657694 +1650.654767 +1653.651623 +1656.648581 +1659.645573 +1662.642568 +1665.639562 +1668.636555 +1671.633549 +1674.630542 +1677.627536 +1680.624529 +1683.621523 +1686.618504 +1689.616407 +1692.552137 +1699.161831 +1549.048725 +818.048038 +1139.912759 +1192.376101 +1206.714007 +1210.799086 +1213.324325 +1215.531030 +1217.693920 +1219.850221 +1222.006083 +1224.161990 +1226.317929 +1228.473874 +1230.629819 +1232.785763 +1234.941707 +1237.097651 +1239.253595 +1241.409540 +1243.565484 +1245.721418 +1247.877993 +1249.999254 +1253.275276 +1333.319327 diff --git a/test_data/aniso_gs_ones_1.txt b/test_data/aniso_gs_ones_1.txt new file mode 100644 index 00000000..f631fd5f --- /dev/null +++ b/test_data/aniso_gs_ones_1.txt @@ -0,0 +1,625 @@ +0.749251 +0.644629 +0.659238 +0.657198 +0.657483 +0.657443 +0.657449 +0.657448 +0.657448 +0.657448 +0.657448 +0.657448 +0.657448 +0.657448 +0.657448 +0.657448 +0.657448 +0.657448 +0.657448 +0.657448 +0.657448 +0.657448 +0.657448 +0.657448 +0.657448 +1.036468 +1.043665 +1.021446 +1.027511 +1.026250 +1.026484 +1.026443 +1.026450 +1.026449 +1.026449 +1.026449 +1.026449 +1.026449 +1.026449 +1.026449 +1.026449 +1.026449 +1.026449 +1.026449 +1.026449 +1.026449 +1.026449 +1.026449 +1.026449 +1.031260 +1.145458 +1.255180 +1.233009 +1.232760 +1.233862 +1.233476 +1.233574 +1.233552 +1.233557 +1.233556 +1.233556 +1.233556 +1.233556 +1.233556 +1.233556 +1.233556 +1.233556 +1.233556 +1.233556 +1.233556 +1.233556 +1.233556 +1.233556 +1.233521 +1.242946 +1.186377 +1.358377 +1.353956 +1.348763 +1.349857 +1.349836 +1.349778 +1.349803 +1.349796 +1.349798 +1.349797 +1.349797 +1.349797 +1.349797 +1.349797 +1.349797 +1.349797 +1.349797 +1.349797 +1.349797 +1.349797 +1.349797 +1.349798 +1.349715 +1.362485 +1.201565 +1.406109 +1.420122 +1.414997 +1.414802 +1.415103 +1.415033 +1.415038 +1.415040 +1.415039 +1.415039 +1.415039 +1.415039 +1.415039 +1.415039 +1.415039 +1.415039 +1.415039 +1.415039 +1.415039 +1.415039 +1.415039 +1.415040 +1.414914 +1.429857 +1.207133 +1.427354 +1.454734 +1.452521 +1.451433 +1.451652 +1.451672 +1.451653 +1.451658 +1.451657 +1.451657 +1.451657 +1.451657 +1.451657 +1.451657 +1.451657 +1.451657 +1.451657 +1.451657 +1.451657 +1.451657 +1.451657 +1.451658 +1.451500 +1.467775 +1.209148 +1.436530 +1.472130 +1.473350 +1.472185 +1.472153 +1.472222 +1.472210 +1.472209 +1.472210 +1.472209 +1.472210 +1.472210 +1.472210 +1.472210 +1.472210 +1.472210 +1.472210 +1.472210 +1.472210 +1.472210 +1.472210 +1.472211 +1.472030 +1.489097 +1.209865 +1.440396 +1.480578 +1.484611 +1.483908 +1.483694 +1.483742 +1.483748 +1.483744 +1.483745 +1.483745 +1.483745 +1.483745 +1.483745 +1.483745 +1.483745 +1.483745 +1.483745 +1.483745 +1.483745 +1.483745 +1.483745 +1.483747 +1.483552 +1.501079 +1.210117 +1.441990 +1.484559 +1.490531 +1.490463 +1.490207 +1.490207 +1.490222 +1.490219 +1.490219 +1.490219 +1.490219 +1.490219 +1.490219 +1.490219 +1.490219 +1.490219 +1.490219 +1.490219 +1.490219 +1.490219 +1.490219 +1.490221 +1.490017 +1.507809 +1.210203 +1.442635 +1.486387 +1.493559 +1.494069 +1.493881 +1.493841 +1.493852 +1.493854 +1.493853 +1.493853 +1.493853 +1.493853 +1.493853 +1.493853 +1.493853 +1.493853 +1.493853 +1.493853 +1.493853 +1.493853 +1.493853 +1.493855 +1.493646 +1.511588 +1.210232 +1.442891 +1.487207 +1.495068 +1.496016 +1.495942 +1.495888 +1.495890 +1.495893 +1.495892 +1.495892 +1.495892 +1.495892 +1.495892 +1.495892 +1.495892 +1.495892 +1.495892 +1.495892 +1.495892 +1.495892 +1.495892 +1.495895 +1.495682 +1.513710 +1.210241 +1.442991 +1.487568 +1.495802 +1.497045 +1.497087 +1.497041 +1.497034 +1.497037 +1.497037 +1.497037 +1.497037 +1.497037 +1.497037 +1.497037 +1.497037 +1.497037 +1.497037 +1.497037 +1.497037 +1.497037 +1.497037 +1.497040 +1.496825 +1.514901 +1.210244 +1.443029 +1.487723 +1.496152 +1.497578 +1.497715 +1.497689 +1.497678 +1.497679 +1.497680 +1.497680 +1.497680 +1.497680 +1.497680 +1.497680 +1.497680 +1.497680 +1.497680 +1.497680 +1.497680 +1.497680 +1.497680 +1.497682 +1.497467 +1.515570 +1.210245 +1.443043 +1.487789 +1.496315 +1.497848 +1.498055 +1.498051 +1.498041 +1.498040 +1.498040 +1.498040 +1.498040 +1.498040 +1.498040 +1.498040 +1.498040 +1.498040 +1.498040 +1.498040 +1.498040 +1.498040 +1.498040 +1.498043 +1.497827 +1.515945 +1.210245 +1.443049 +1.487816 +1.496390 +1.497982 +1.498235 +1.498252 +1.498244 +1.498242 +1.498242 +1.498243 +1.498243 +1.498243 +1.498243 +1.498243 +1.498243 +1.498243 +1.498243 +1.498243 +1.498243 +1.498243 +1.498243 +1.498245 +1.498029 +1.516156 +1.210245 +1.443051 +1.487828 +1.496424 +1.498048 +1.498329 +1.498361 +1.498358 +1.498356 +1.498356 +1.498356 +1.498356 +1.498356 +1.498356 +1.498356 +1.498356 +1.498356 +1.498356 +1.498356 +1.498356 +1.498356 +1.498356 +1.498359 +1.498142 +1.516274 +1.210245 +1.443051 +1.487832 +1.496438 +1.498079 +1.498378 +1.498421 +1.498422 +1.498420 +1.498420 +1.498420 +1.498420 +1.498420 +1.498420 +1.498420 +1.498420 +1.498420 +1.498420 +1.498420 +1.498420 +1.498420 +1.498420 +1.498422 +1.498206 +1.516341 +1.210245 +1.443052 +1.487834 +1.496445 +1.498094 +1.498402 +1.498453 +1.498457 +1.498456 +1.498456 +1.498456 +1.498456 +1.498456 +1.498456 +1.498456 +1.498456 +1.498456 +1.498456 +1.498456 +1.498456 +1.498456 +1.498456 +1.498458 +1.498241 +1.516378 +1.210245 +1.443052 +1.487835 +1.496448 +1.498101 +1.498414 +1.498469 +1.498477 +1.498476 +1.498476 +1.498476 +1.498476 +1.498476 +1.498476 +1.498476 +1.498476 +1.498476 +1.498476 +1.498476 +1.498476 +1.498476 +1.498476 +1.498478 +1.498261 +1.516399 +1.210245 +1.443052 +1.487835 +1.496449 +1.498104 +1.498420 +1.498478 +1.498487 +1.498487 +1.498487 +1.498487 +1.498487 +1.498487 +1.498487 +1.498487 +1.498487 +1.498487 +1.498487 +1.498487 +1.498487 +1.498487 +1.498487 +1.498490 +1.498273 +1.516411 +1.210245 +1.443052 +1.487835 +1.496449 +1.498106 +1.498423 +1.498483 +1.498493 +1.498494 +1.498494 +1.498493 +1.498493 +1.498493 +1.498493 +1.498493 +1.498493 +1.498493 +1.498493 +1.498493 +1.498493 +1.498493 +1.498493 +1.498496 +1.498279 +1.516417 +1.210245 +1.443052 +1.487835 +1.496450 +1.498106 +1.498424 +1.498485 +1.498496 +1.498497 +1.498497 +1.498497 +1.498497 +1.498497 +1.498497 +1.498497 +1.498497 +1.498497 +1.498497 +1.498497 +1.498497 +1.498497 +1.498497 +1.498500 +1.498283 +1.516421 +1.210245 +1.443052 +1.487835 +1.496450 +1.498107 +1.498425 +1.498486 +1.498497 +1.498499 +1.498499 +1.498499 +1.498499 +1.498499 +1.498499 +1.498499 +1.498499 +1.498499 +1.498499 +1.498499 +1.498499 +1.498499 +1.498499 +1.498502 +1.498285 +1.516423 +1.210245 +1.443052 +1.487835 +1.496450 +1.498107 +1.498425 +1.498486 +1.498498 +1.498500 +1.498500 +1.498500 +1.498500 +1.498500 +1.498500 +1.498500 +1.498500 +1.498500 +1.498500 +1.498500 +1.498500 +1.498500 +1.498500 +1.498503 +1.498286 +1.516424 +1.210245 +1.443052 +1.487835 +1.496450 +1.498107 +1.498425 +1.498487 +1.498498 +1.498500 +1.498501 +1.498501 +1.498501 +1.498501 +1.498501 +1.498501 +1.498501 +1.498501 +1.498501 +1.498501 +1.498501 +1.498501 +1.498501 +1.498503 +1.498286 +1.516425 diff --git a/test_data/aniso_gs_ones_2.txt b/test_data/aniso_gs_ones_2.txt new file mode 100644 index 00000000..314953ae --- /dev/null +++ b/test_data/aniso_gs_ones_2.txt @@ -0,0 +1,625 @@ +1.331636 +1.133155 +1.154005 +1.153255 +1.152890 +1.153030 +1.152995 +1.153003 +1.153001 +1.153001 +1.153001 +1.153001 +1.153001 +1.153001 +1.153001 +1.153001 +1.153001 +1.153001 +1.153001 +1.153001 +1.153001 +1.153001 +1.153001 +1.154239 +0.982382 +1.883369 +1.917317 +1.859281 +1.872986 +1.871035 +1.871141 +1.871183 +1.871163 +1.871169 +1.871167 +1.871167 +1.871167 +1.871167 +1.871167 +1.871167 +1.871167 +1.871167 +1.871167 +1.871167 +1.871167 +1.871167 +1.871167 +1.871149 +1.874632 +1.642532 +2.105569 +2.370127 +2.314926 +2.311190 +2.314990 +2.313954 +2.314129 +2.314115 +2.314112 +2.314114 +2.314113 +2.314114 +2.314114 +2.314114 +2.314114 +2.314114 +2.314114 +2.314114 +2.314114 +2.314114 +2.314114 +2.314114 +2.314065 +2.319060 +2.068788 +2.192622 +2.606868 +2.598989 +2.582099 +2.585027 +2.585299 +2.585031 +2.585112 +2.585097 +2.585098 +2.585098 +2.585098 +2.585098 +2.585098 +2.585098 +2.585098 +2.585098 +2.585098 +2.585098 +2.585098 +2.585098 +2.585099 +2.585023 +2.590811 +2.337059 +2.225780 +2.722707 +2.766167 +2.750153 +2.748789 +2.749949 +2.749753 +2.749736 +2.749756 +2.749749 +2.749751 +2.749750 +2.749750 +2.749750 +2.749750 +2.749750 +2.749750 +2.749750 +2.749750 +2.749750 +2.749750 +2.749751 +2.749657 +2.755802 +2.502981 +2.238032 +2.776644 +2.859183 +2.852678 +2.848424 +2.849132 +2.849282 +2.849197 +2.849212 +2.849213 +2.849212 +2.849212 +2.849212 +2.849212 +2.849212 +2.849212 +2.849212 +2.849212 +2.849212 +2.849212 +2.849212 +2.849214 +2.849108 +2.855391 +2.604336 +2.242404 +2.800766 +2.908438 +2.913398 +2.909015 +2.908731 +2.909036 +2.909000 +2.908987 +2.908994 +2.908992 +2.908992 +2.908993 +2.908993 +2.908993 +2.908993 +2.908993 +2.908993 +2.908993 +2.908993 +2.908993 +2.908994 +2.908883 +2.915208 +2.665686 +2.243899 +2.811185 +2.933428 +2.948125 +2.945537 +2.944552 +2.944740 +2.944784 +2.944763 +2.944765 +2.944766 +2.944765 +2.944765 +2.944765 +2.944765 +2.944765 +2.944765 +2.944765 +2.944765 +2.944765 +2.944765 +2.944767 +2.944653 +2.950982 +2.702561 +2.244382 +2.815544 +2.945643 +2.967292 +2.967184 +2.966061 +2.966024 +2.966100 +2.966092 +2.966088 +2.966090 +2.966090 +2.966090 +2.966090 +2.966090 +2.966090 +2.966090 +2.966090 +2.966090 +2.966090 +2.966090 +2.966091 +2.965976 +2.972298 +2.724604 +2.244526 +2.817313 +2.951420 +2.977518 +2.979730 +2.978911 +2.978700 +2.978752 +2.978762 +2.978757 +2.978757 +2.978758 +2.978758 +2.978758 +2.978758 +2.978758 +2.978758 +2.978758 +2.978758 +2.978758 +2.978758 +2.978759 +2.978644 +2.984957 +2.737722 +2.244562 +2.818008 +2.954072 +2.982803 +2.986820 +2.986514 +2.986243 +2.986244 +2.986263 +2.986261 +2.986260 +2.986260 +2.986260 +2.986260 +2.986260 +2.986260 +2.986260 +2.986260 +2.986260 +2.986260 +2.986260 +2.986262 +2.986147 +2.992452 +2.745500 +2.244568 +2.818273 +2.955257 +2.985456 +2.990723 +2.990947 +2.990718 +2.990677 +2.990690 +2.990693 +2.990692 +2.990692 +2.990692 +2.990692 +2.990692 +2.990692 +2.990692 +2.990692 +2.990692 +2.990692 +2.990692 +2.990693 +2.990578 +2.996879 +2.750097 +2.244567 +2.818370 +2.955772 +2.986753 +2.992817 +2.993486 +2.993357 +2.993296 +2.993299 +2.993303 +2.993303 +2.993302 +2.993302 +2.993302 +2.993302 +2.993302 +2.993302 +2.993302 +2.993302 +2.993302 +2.993302 +2.993304 +2.993189 +2.999486 +2.752806 +2.244566 +2.818404 +2.955991 +2.987370 +2.993912 +2.994912 +2.994899 +2.994841 +2.994833 +2.994837 +2.994838 +2.994837 +2.994837 +2.994837 +2.994837 +2.994837 +2.994837 +2.994837 +2.994837 +2.994837 +2.994837 +2.994839 +2.994724 +3.001019 +2.754400 +2.244565 +2.818415 +2.956081 +2.987658 +2.994472 +2.995697 +2.995789 +2.995749 +2.995735 +2.995737 +2.995738 +2.995738 +2.995738 +2.995738 +2.995738 +2.995738 +2.995738 +2.995738 +2.995738 +2.995738 +2.995738 +2.995739 +2.995624 +3.001918 +2.755334 +2.244564 +2.818419 +2.956118 +2.987788 +2.994751 +2.996120 +2.996296 +2.996279 +2.996265 +2.996264 +2.996265 +2.996265 +2.996265 +2.996265 +2.996265 +2.996265 +2.996265 +2.996265 +2.996265 +2.996265 +2.996265 +2.996267 +2.996151 +3.002445 +2.755882 +2.244564 +2.818420 +2.956132 +2.987846 +2.994888 +2.996343 +2.996579 +2.996586 +2.996575 +2.996572 +2.996573 +2.996573 +2.996573 +2.996573 +2.996573 +2.996573 +2.996573 +2.996573 +2.996573 +2.996573 +2.996573 +2.996575 +2.996460 +3.002752 +2.756202 +2.244564 +2.818420 +2.956137 +2.987872 +2.994953 +2.996458 +2.996735 +2.996762 +2.996756 +2.996753 +2.996753 +2.996753 +2.996753 +2.996753 +2.996753 +2.996753 +2.996753 +2.996753 +2.996753 +2.996753 +2.996753 +2.996755 +2.996639 +3.002932 +2.756389 +2.244564 +2.818420 +2.956139 +2.987883 +2.994984 +2.996517 +2.996819 +2.996862 +2.996861 +2.996858 +2.996857 +2.996858 +2.996858 +2.996858 +2.996858 +2.996858 +2.996858 +2.996858 +2.996858 +2.996858 +2.996858 +2.996859 +2.996744 +3.003037 +2.756498 +2.244564 +2.818420 +2.956140 +2.987887 +2.994998 +2.996546 +2.996864 +2.996918 +2.996921 +2.996919 +2.996919 +2.996919 +2.996919 +2.996919 +2.996919 +2.996919 +2.996919 +2.996919 +2.996919 +2.996919 +2.996919 +2.996920 +2.996805 +3.003097 +2.756561 +2.244564 +2.818420 +2.956140 +2.987889 +2.995004 +2.996560 +2.996887 +2.996949 +2.996956 +2.996955 +2.996954 +2.996954 +2.996954 +2.996954 +2.996954 +2.996954 +2.996954 +2.996954 +2.996954 +2.996954 +2.996954 +2.996956 +2.996841 +3.003133 +2.756598 +2.244564 +2.818420 +2.956140 +2.987890 +2.995007 +2.996567 +2.996899 +2.996965 +2.996975 +2.996975 +2.996975 +2.996975 +2.996975 +2.996975 +2.996975 +2.996975 +2.996975 +2.996975 +2.996975 +2.996975 +2.996975 +2.996977 +2.996861 +3.003153 +2.756619 +2.244564 +2.818420 +2.956140 +2.987890 +2.995008 +2.996570 +2.996906 +2.996974 +2.996986 +2.996987 +2.996987 +2.996987 +2.996987 +2.996987 +2.996987 +2.996987 +2.996987 +2.996987 +2.996987 +2.996987 +2.996987 +2.996988 +2.996873 +3.003165 +2.756632 +2.244564 +2.818420 +2.956140 +2.987890 +2.995009 +2.996572 +2.996909 +2.996979 +2.996992 +2.996994 +2.996994 +2.996994 +2.996994 +2.996994 +2.996994 +2.996994 +2.996994 +2.996994 +2.996994 +2.996994 +2.996993 +2.996995 +2.996880 +3.003172 +2.756639 +1.401687 +1.999861 +2.116224 +2.147501 +2.154021 +2.155540 +2.155859 +2.155928 +2.155942 +2.155944 +2.155944 +2.155944 +2.155944 +2.155944 +2.155944 +2.155944 +2.155944 +2.155944 +2.155944 +2.155944 +2.155944 +2.155945 +2.155885 +2.157587 +2.294828 diff --git a/test_data/aniso_jacobi_inc_1.txt b/test_data/aniso_jacobi_inc_1.txt new file mode 100644 index 00000000..9098cc6c --- /dev/null +++ b/test_data/aniso_jacobi_inc_1.txt @@ -0,0 +1,625 @@ +0.000000 +0.561938 +1.123876 +1.685814 +2.247752 +2.809690 +3.371628 +3.933566 +4.495504 +5.057443 +5.619381 +6.181319 +6.743257 +7.305195 +7.867133 +8.429071 +8.991009 +9.552947 +10.114885 +10.676823 +11.238761 +11.800699 +12.362637 +12.924575 +13.486513 +14.048452 +14.610390 +15.172328 +15.734266 +16.296204 +16.858142 +17.420080 +17.982018 +18.543956 +19.105894 +19.667832 +20.229770 +20.791708 +21.353646 +21.915584 +22.477522 +23.039461 +23.601399 +24.163337 +24.725275 +25.287213 +25.849151 +26.411089 +26.973027 +27.534965 +28.096903 +28.658841 +29.220779 +29.782717 +30.344655 +30.906593 +31.468531 +32.030470 +32.592408 +33.154346 +33.716284 +34.278222 +34.840160 +35.402098 +35.964036 +36.525974 +37.087912 +37.649850 +38.211788 +38.773726 +39.335664 +39.897602 +40.459540 +41.021479 +41.583417 +42.145355 +42.707293 +43.269231 +43.831169 +44.393107 +44.955045 +45.516983 +46.078921 +46.640859 +47.202797 +47.764735 +48.326673 +48.888611 +49.450549 +50.012488 +50.574426 +51.136364 +51.698302 +52.260240 +52.822178 +53.384116 +53.946054 +54.507992 +55.069930 +55.631868 +56.193806 +56.755744 +57.317682 +57.879620 +58.441558 +59.003497 +59.565435 +60.127373 +60.689311 +61.251249 +61.813187 +62.375125 +62.937063 +63.499001 +64.060939 +64.622877 +65.184815 +65.746753 +66.308691 +66.870629 +67.432567 +67.994505 +68.556444 +69.118382 +69.680320 +70.242258 +70.804196 +71.366134 +71.928072 +72.490010 +73.051948 +73.613886 +74.175824 +74.737762 +75.299700 +75.861638 +76.423576 +76.985514 +77.547453 +78.109391 +78.671329 +79.233267 +79.795205 +80.357143 +80.919081 +81.481019 +82.042957 +82.604895 +83.166833 +83.728771 +84.290709 +84.852647 +85.414585 +85.976523 +86.538462 +87.100400 +87.662338 +88.224276 +88.786214 +89.348152 +89.910090 +90.472028 +91.033966 +91.595904 +92.157842 +92.719780 +93.281718 +93.843656 +94.405594 +94.967532 +95.529471 +96.091409 +96.653347 +97.215285 +97.777223 +98.339161 +98.901099 +99.463037 +100.024975 +100.586913 +101.148851 +101.710789 +102.272727 +102.834665 +103.396603 +103.958541 +104.520480 +105.082418 +105.644356 +106.206294 +106.768232 +107.330170 +107.892108 +108.454046 +109.015984 +109.577922 +110.139860 +110.701798 +111.263736 +111.825674 +112.387612 +112.949550 +113.511489 +114.073427 +114.635365 +115.197303 +115.759241 +116.321179 +116.883117 +117.445055 +118.006993 +118.568931 +119.130869 +119.692807 +120.254745 +120.816683 +121.378621 +121.940559 +122.502498 +123.064436 +123.626374 +124.188312 +124.750250 +125.312188 +125.874126 +126.436064 +126.998002 +127.559940 +128.121878 +128.683816 +129.245754 +129.807692 +130.369630 +130.931568 +131.493506 +132.055445 +132.617383 +133.179321 +133.741259 +134.303197 +134.865135 +135.427073 +135.989011 +136.550949 +137.112887 +137.674825 +138.236763 +138.798701 +139.360639 +139.922577 +140.484515 +141.046454 +141.608392 +142.170330 +142.732268 +143.294206 +143.856144 +144.418082 +144.980020 +145.541958 +146.103896 +146.665834 +147.227772 +147.789710 +148.351648 +148.913586 +149.475524 +150.037463 +150.599401 +151.161339 +151.723277 +152.285215 +152.847153 +153.409091 +153.971029 +154.532967 +155.094905 +155.656843 +156.218781 +156.780719 +157.342657 +157.904595 +158.466533 +159.028472 +159.590410 +160.152348 +160.714286 +161.276224 +161.838162 +162.400100 +162.962038 +163.523976 +164.085914 +164.647852 +165.209790 +165.771728 +166.333666 +166.895604 +167.457542 +168.019481 +168.581419 +169.143357 +169.705295 +170.267233 +170.829171 +171.391109 +171.953047 +172.514985 +173.076923 +173.638861 +174.200799 +174.762737 +175.324675 +175.886613 +176.448551 +177.010490 +177.572428 +178.134366 +178.696304 +179.258242 +179.820180 +180.382118 +180.944056 +181.505994 +182.067932 +182.629870 +183.191808 +183.753746 +184.315684 +184.877622 +185.439560 +186.001499 +186.563437 +187.125375 +187.687313 +188.249251 +188.811189 +189.373127 +189.935065 +190.497003 +191.058941 +191.620879 +192.182817 +192.744755 +193.306693 +193.868631 +194.430569 +194.992507 +195.554446 +196.116384 +196.678322 +197.240260 +197.802198 +198.364136 +198.926074 +199.488012 +200.049950 +200.611888 +201.173826 +201.735764 +202.297702 +202.859640 +203.421578 +203.983516 +204.545455 +205.107393 +205.669331 +206.231269 +206.793207 +207.355145 +207.917083 +208.479021 +209.040959 +209.602897 +210.164835 +210.726773 +211.288711 +211.850649 +212.412587 +212.974525 +213.536464 +214.098402 +214.660340 +215.222278 +215.784216 +216.346154 +216.908092 +217.470030 +218.031968 +218.593906 +219.155844 +219.717782 +220.279720 +220.841658 +221.403596 +221.965534 +222.527473 +223.089411 +223.651349 +224.213287 +224.775225 +225.337163 +225.899101 +226.461039 +227.022977 +227.584915 +228.146853 +228.708791 +229.270729 +229.832667 +230.394605 +230.956543 +231.518482 +232.080420 +232.642358 +233.204296 +233.766234 +234.328172 +234.890110 +235.452048 +236.013986 +236.575924 +237.137862 +237.699800 +238.261738 +238.823676 +239.385614 +239.947552 +240.509491 +241.071429 +241.633367 +242.195305 +242.757243 +243.319181 +243.881119 +244.443057 +245.004995 +245.566933 +246.128871 +246.690809 +247.252747 +247.814685 +248.376623 +248.938561 +249.500500 +250.062438 +250.624376 +251.186314 +251.748252 +252.310190 +252.872128 +253.434066 +253.996004 +254.557942 +255.119880 +255.681818 +256.243756 +256.805694 +257.367632 +257.929570 +258.491508 +259.053447 +259.615385 +260.177323 +260.739261 +261.301199 +261.863137 +262.425075 +262.987013 +263.548951 +264.110889 +264.672827 +265.234765 +265.796703 +266.358641 +266.920579 +267.482517 +268.044456 +268.606394 +269.168332 +269.730270 +270.292208 +270.854146 +271.416084 +271.978022 +272.539960 +273.101898 +273.663836 +274.225774 +274.787712 +275.349650 +275.911588 +276.473526 +277.035465 +277.597403 +278.159341 +278.721279 +279.283217 +279.845155 +280.407093 +280.969031 +281.530969 +282.092907 +282.654845 +283.216783 +283.778721 +284.340659 +284.902597 +285.464535 +286.026474 +286.588412 +287.150350 +287.712288 +288.274226 +288.836164 +289.398102 +289.960040 +290.521978 +291.083916 +291.645854 +292.207792 +292.769730 +293.331668 +293.893606 +294.455544 +295.017483 +295.579421 +296.141359 +296.703297 +297.265235 +297.827173 +298.389111 +298.951049 +299.512987 +300.074925 +300.636863 +301.198801 +301.760739 +302.322677 +302.884615 +303.446553 +304.008492 +304.570430 +305.132368 +305.694306 +306.256244 +306.818182 +307.380120 +307.942058 +308.503996 +309.065934 +309.627872 +310.189810 +310.751748 +311.313686 +311.875624 +312.437562 +312.999500 +313.561439 +314.123377 +314.685315 +315.247253 +315.809191 +316.371129 +316.933067 +317.495005 +318.056943 +318.618881 +319.180819 +319.742757 +320.304695 +320.866633 +321.428571 +321.990509 +322.552448 +323.114386 +323.676324 +324.238262 +324.800200 +325.362138 +325.924076 +326.486014 +327.047952 +327.609890 +328.171828 +328.733766 +329.295704 +329.857642 +330.419580 +330.981518 +331.543457 +332.105395 +332.667333 +333.229271 +333.791209 +334.353147 +334.915085 +335.477023 +336.038961 +336.600899 +337.162837 +337.724775 +338.286713 +338.848651 +339.410589 +339.972527 +340.534466 +341.096404 +341.658342 +342.220280 +342.782218 +343.344156 +343.906094 +344.468032 +345.029970 +345.591908 +346.153846 +346.715784 +347.277722 +347.839660 +348.401598 +348.963536 +349.525475 +350.087413 +350.649351 diff --git a/test_data/aniso_jacobi_inc_2.txt b/test_data/aniso_jacobi_inc_2.txt new file mode 100644 index 00000000..f0e6fc40 --- /dev/null +++ b/test_data/aniso_jacobi_inc_2.txt @@ -0,0 +1,625 @@ +6.866112 +7.705245 +8.559544 +9.413844 +10.268143 +11.122443 +11.976742 +12.831042 +13.685342 +14.539641 +15.393941 +16.248240 +17.102540 +17.956840 +18.811139 +19.665439 +20.519738 +21.374038 +22.228337 +23.082637 +23.936937 +24.791236 +25.645536 +26.499835 +23.403008 +29.768863 +29.220779 +30.344655 +31.468531 +32.592408 +33.716284 +34.840160 +35.964036 +37.087912 +38.211788 +39.335664 +40.459540 +41.583417 +42.707293 +43.831169 +44.955045 +46.078921 +47.202797 +48.326673 +49.450549 +50.574426 +51.698302 +52.822178 +53.946054 +49.955963 +56.702925 +57.317682 +58.441558 +59.565435 +60.689311 +61.813187 +62.937063 +64.060939 +65.184815 +66.308691 +67.432567 +68.556444 +69.680320 +70.804196 +71.928072 +73.051948 +74.175824 +75.299700 +76.423576 +77.547453 +78.671329 +79.795205 +80.919081 +82.042957 +76.890025 +83.636988 +85.414585 +86.538462 +87.662338 +88.786214 +89.910090 +91.033966 +92.157842 +93.281718 +94.405594 +95.529471 +96.653347 +97.777223 +98.901099 +100.024975 +101.148851 +102.272727 +103.396603 +104.520480 +105.644356 +106.768232 +107.892108 +109.015984 +110.139860 +103.824088 +110.571051 +113.511489 +114.635365 +115.759241 +116.883117 +118.006993 +119.130869 +120.254745 +121.378621 +122.502498 +123.626374 +124.750250 +125.874126 +126.998002 +128.121878 +129.245754 +130.369630 +131.493506 +132.617383 +133.741259 +134.865135 +135.989011 +137.112887 +138.236763 +130.758151 +137.505113 +141.608392 +142.732268 +143.856144 +144.980020 +146.103896 +147.227772 +148.351648 +149.475524 +150.599401 +151.723277 +152.847153 +153.971029 +155.094905 +156.218781 +157.342657 +158.466533 +159.590410 +160.714286 +161.838162 +162.962038 +164.085914 +165.209790 +166.333666 +157.692213 +164.439176 +169.705295 +170.829171 +171.953047 +173.076923 +174.200799 +175.324675 +176.448551 +177.572428 +178.696304 +179.820180 +180.944056 +182.067932 +183.191808 +184.315684 +185.439560 +186.563437 +187.687313 +188.811189 +189.935065 +191.058941 +192.182817 +193.306693 +194.430569 +184.626276 +191.373239 +197.802198 +198.926074 +200.049950 +201.173826 +202.297702 +203.421578 +204.545455 +205.669331 +206.793207 +207.917083 +209.040959 +210.164835 +211.288711 +212.412587 +213.536464 +214.660340 +215.784216 +216.908092 +218.031968 +219.155844 +220.279720 +221.403596 +222.527473 +211.560338 +218.307301 +225.899101 +227.022977 +228.146853 +229.270729 +230.394605 +231.518482 +232.642358 +233.766234 +234.890110 +236.013986 +237.137862 +238.261738 +239.385614 +240.509491 +241.633367 +242.757243 +243.881119 +245.004995 +246.128871 +247.252747 +248.376623 +249.500500 +250.624376 +238.494401 +245.241364 +253.996004 +255.119880 +256.243756 +257.367632 +258.491508 +259.615385 +260.739261 +261.863137 +262.987013 +264.110889 +265.234765 +266.358641 +267.482517 +268.606394 +269.730270 +270.854146 +271.978022 +273.101898 +274.225774 +275.349650 +276.473526 +277.597403 +278.721279 +265.428464 +272.175427 +282.092907 +283.216783 +284.340659 +285.464535 +286.588412 +287.712288 +288.836164 +289.960040 +291.083916 +292.207792 +293.331668 +294.455544 +295.579421 +296.703297 +297.827173 +298.951049 +300.074925 +301.198801 +302.322677 +303.446553 +304.570430 +305.694306 +306.818182 +292.362526 +299.109489 +310.189810 +311.313686 +312.437562 +313.561439 +314.685315 +315.809191 +316.933067 +318.056943 +319.180819 +320.304695 +321.428571 +322.552448 +323.676324 +324.800200 +325.924076 +327.047952 +328.171828 +329.295704 +330.419580 +331.543457 +332.667333 +333.791209 +334.915085 +319.296589 +326.043552 +338.286713 +339.410589 +340.534466 +341.658342 +342.782218 +343.906094 +345.029970 +346.153846 +347.277722 +348.401598 +349.525475 +350.649351 +351.773227 +352.897103 +354.020979 +355.144855 +356.268731 +357.392607 +358.516484 +359.640360 +360.764236 +361.888112 +363.011988 +346.230652 +352.977614 +366.383616 +367.507493 +368.631369 +369.755245 +370.879121 +372.002997 +373.126873 +374.250749 +375.374625 +376.498501 +377.622378 +378.746254 +379.870130 +380.994006 +382.117882 +383.241758 +384.365634 +385.489510 +386.613387 +387.737263 +388.861139 +389.985015 +391.108891 +373.164714 +379.911677 +394.480519 +395.604396 +396.728272 +397.852148 +398.976024 +400.099900 +401.223776 +402.347652 +403.471528 +404.595405 +405.719281 +406.843157 +407.967033 +409.090909 +410.214785 +411.338661 +412.462537 +413.586414 +414.710290 +415.834166 +416.958042 +418.081918 +419.205794 +400.098777 +406.845740 +422.577423 +423.701299 +424.825175 +425.949051 +427.072927 +428.196803 +429.320679 +430.444555 +431.568432 +432.692308 +433.816184 +434.940060 +436.063936 +437.187812 +438.311688 +439.435564 +440.559441 +441.683317 +442.807193 +443.931069 +445.054945 +446.178821 +447.302697 +427.032840 +433.779802 +450.674326 +451.798202 +452.922078 +454.045954 +455.169830 +456.293706 +457.417582 +458.541459 +459.665335 +460.789211 +461.913087 +463.036963 +464.160839 +465.284715 +466.408591 +467.532468 +468.656344 +469.780220 +470.904096 +472.027972 +473.151848 +474.275724 +475.399600 +453.966902 +460.713865 +478.771229 +479.895105 +481.018981 +482.142857 +483.266733 +484.390609 +485.514486 +486.638362 +487.762238 +488.886114 +490.009990 +491.133866 +492.257742 +493.381618 +494.505495 +495.629371 +496.753247 +497.877123 +499.000999 +500.124875 +501.248751 +502.372627 +503.496503 +480.900965 +487.647928 +506.868132 +507.992008 +509.115884 +510.239760 +511.363636 +512.487512 +513.611389 +514.735265 +515.859141 +516.983017 +518.106893 +519.230769 +520.354645 +521.478521 +522.602398 +523.726274 +524.850150 +525.974026 +527.097902 +528.221778 +529.345654 +530.469530 +531.593407 +507.835027 +514.581990 +534.965035 +536.088911 +537.212787 +538.336663 +539.460539 +540.584416 +541.708292 +542.832168 +543.956044 +545.079920 +546.203796 +547.327672 +548.451548 +549.575425 +550.699301 +551.823177 +552.947053 +554.070929 +555.194805 +556.318681 +557.442557 +558.566434 +559.690310 +534.769090 +541.516053 +563.061938 +564.185814 +565.309690 +566.433566 +567.557443 +568.681319 +569.805195 +570.929071 +572.052947 +573.176823 +574.300699 +575.424575 +576.548452 +577.672328 +578.796204 +579.920080 +581.043956 +582.167832 +583.291708 +584.415584 +585.539461 +586.663337 +587.787213 +561.703153 +568.450116 +591.158841 +592.282717 +593.406593 +594.530470 +595.654346 +596.778222 +597.902098 +599.025974 +600.149850 +601.273726 +602.397602 +603.521479 +604.645355 +605.769231 +606.893107 +608.016983 +609.140859 +610.264735 +611.388611 +612.512488 +613.636364 +614.760240 +615.884116 +588.637215 +595.384178 +619.255744 +620.379620 +621.503497 +622.627373 +623.751249 +624.875125 +625.999001 +627.122877 +628.246753 +629.370629 +630.494505 +631.618382 +632.742258 +633.866134 +634.990010 +636.113886 +637.237762 +638.361638 +639.485514 +640.609391 +641.733267 +642.857143 +643.981019 +615.571278 +622.318241 +647.352647 +648.476523 +649.600400 +650.724276 +651.848152 +652.972028 +654.095904 +655.219780 +656.343656 +657.467532 +658.591409 +659.715285 +660.839161 +661.963037 +663.086913 +664.210789 +665.334665 +666.458541 +667.582418 +668.706294 +669.830170 +670.954046 +672.077922 +642.505341 +478.730994 +506.583104 +507.437404 +508.291703 +509.146003 +510.000302 +510.854602 +511.708902 +512.563201 +513.417501 +514.271800 +515.126100 +515.980399 +516.834699 +517.688999 +518.543298 +519.397598 +520.251897 +521.106197 +521.960497 +522.814796 +523.669096 +524.523395 +525.377695 +564.863522 diff --git a/test_data/aniso_jacobi_ones_1.txt b/test_data/aniso_jacobi_ones_1.txt new file mode 100644 index 00000000..29969780 --- /dev/null +++ b/test_data/aniso_jacobi_ones_1.txt @@ -0,0 +1,625 @@ +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 +0.561938 diff --git a/test_data/aniso_jacobi_ones_2.txt b/test_data/aniso_jacobi_ones_2.txt new file mode 100644 index 00000000..fe56416a --- /dev/null +++ b/test_data/aniso_jacobi_ones_2.txt @@ -0,0 +1,625 @@ +0.916233 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.804702 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +1.077363 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.077363 +0.804702 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.854300 +0.916233 diff --git a/test_data/aniso_sor_inc_1.txt b/test_data/aniso_sor_inc_1.txt new file mode 100644 index 00000000..860f2801 --- /dev/null +++ b/test_data/aniso_sor_inc_1.txt @@ -0,0 +1,625 @@ +0.000000 +0.561938 +1.045410 +1.539838 +2.032737 +2.525849 +3.018931 +3.512017 +4.005103 +4.498189 +4.991275 +5.484361 +5.977447 +6.470533 +6.963618 +7.456704 +7.949790 +8.442876 +8.935962 +9.429048 +9.922134 +10.415220 +10.908306 +11.401392 +11.894477 +14.044339 +12.860606 +13.917191 +14.645038 +15.421010 +16.189953 +16.959920 +17.729737 +18.499577 +19.269413 +20.039250 +20.809087 +21.578924 +22.348761 +23.118598 +23.888434 +24.658271 +25.428108 +26.197945 +26.967782 +27.737619 +28.507455 +29.277292 +30.047129 +30.907613 +33.474964 +32.507517 +33.306306 +34.306500 +35.212783 +36.141816 +37.066263 +37.991557 +38.916702 +39.841873 +40.767039 +41.692206 +42.617373 +43.542540 +44.467707 +45.392874 +46.318041 +47.243207 +48.168374 +49.093541 +50.018708 +50.943875 +51.869042 +52.793546 +53.985928 +54.950503 +56.070315 +56.530864 +57.617115 +58.631063 +59.639840 +60.653400 +61.665443 +62.677858 +63.690192 +64.702543 +65.714891 +66.727239 +67.739587 +68.751935 +69.764282 +70.776630 +71.788978 +72.801326 +73.813674 +74.826022 +75.838370 +76.850723 +77.860857 +79.379278 +77.194157 +81.549751 +81.963140 +83.001684 +84.085804 +85.142905 +86.204324 +87.265777 +88.326980 +89.388282 +90.449556 +91.510836 +92.572116 +93.633395 +94.694675 +95.755954 +96.817234 +97.878513 +98.939793 +100.001072 +101.062351 +102.123631 +103.184929 +104.241641 +106.088448 +99.723072 +107.917639 +108.609569 +109.577982 +110.686607 +111.776822 +112.864337 +113.953355 +115.042074 +116.130810 +117.219557 +118.308299 +119.397042 +120.485785 +121.574528 +122.663271 +123.752014 +124.840757 +125.929500 +127.018243 +128.106986 +129.195728 +130.284512 +131.365726 +133.544495 +122.356632 +134.681605 +135.893663 +136.833616 +137.937474 +139.047372 +140.150626 +141.254701 +142.358931 +143.463069 +144.567229 +145.671386 +146.775543 +147.879700 +148.983857 +150.088014 +151.192172 +152.296329 +153.400486 +154.504643 +155.608800 +156.712957 +157.817185 +158.910433 +161.424084 +145.028068 +161.616868 +163.499240 +164.468378 +165.558837 +166.676933 +167.790129 +168.902618 +170.015479 +171.128292 +172.241096 +173.353906 +174.466714 +175.579523 +176.692331 +177.805140 +178.917948 +180.030757 +181.143566 +182.256374 +183.369183 +184.481991 +185.594907 +186.693154 +189.543697 +167.713008 +188.624384 +191.261294 +192.309024 +193.390738 +194.509729 +195.628722 +196.746175 +197.863807 +198.981491 +200.099152 +201.216816 +202.334481 +203.452145 +204.569809 +205.687474 +206.805138 +207.922802 +209.040467 +210.158131 +211.275795 +212.393459 +213.511271 +214.610553 +217.799272 +190.402681 +215.661719 +219.097237 +220.258297 +221.340995 +222.457904 +223.579640 +224.700102 +225.820414 +226.940814 +228.061206 +229.181595 +230.301984 +231.422374 +232.542764 +233.663153 +234.783543 +235.903933 +237.024322 +238.144712 +239.265102 +240.385490 +241.506072 +242.604155 +246.131837 +213.093979 +242.711125 +246.967164 +248.263295 +249.356693 +250.471530 +251.594067 +252.716275 +253.838142 +254.960053 +256.081977 +257.203896 +258.325815 +259.447734 +260.569654 +261.691573 +262.813492 +263.935411 +265.057331 +266.179250 +267.301169 +268.423087 +269.545244 +270.640873 +274.507987 +235.785823 +269.765326 +274.852360 +276.296140 +277.407861 +278.522080 +279.644469 +280.767573 +281.890359 +283.013119 +284.135899 +285.258678 +286.381455 +287.504233 +288.627011 +289.749789 +290.872566 +291.995344 +293.118122 +294.240900 +295.363678 +296.486453 +297.609516 +298.701983 +302.908808 +258.477845 +296.821400 +302.744274 +304.342566 +305.477848 +306.593252 +307.715252 +308.838715 +309.962034 +311.085280 +312.208538 +313.331799 +314.455059 +315.578318 +316.701578 +317.824838 +318.948097 +320.071357 +321.194617 +322.317876 +323.441136 +324.564393 +325.687985 +326.776894 +331.323592 +281.169921 +323.878192 +330.639088 +332.395470 +333.557608 +334.675789 +335.797552 +336.921084 +338.044689 +339.168219 +340.291745 +341.415275 +342.538806 +343.662336 +344.785866 +345.909396 +347.032926 +348.156456 +349.279986 +350.403517 +351.527047 +352.650573 +353.774484 +354.859611 +359.746277 +303.862014 +350.935255 +358.535131 +360.451401 +361.642335 +362.764490 +363.886320 +365.009806 +366.133545 +367.257238 +368.380917 +369.504598 +370.628281 +371.751962 +372.875644 +373.999326 +375.123008 +376.246690 +377.370372 +378.494054 +379.617736 +380.741414 +381.865525 +382.946744 +388.173432 +326.554112 +377.992418 +386.431688 +388.508719 +389.729539 +390.856478 +391.978689 +393.102120 +394.225906 +395.349690 +396.473456 +397.597222 +398.720990 +399.844757 +400.968524 +402.092291 +403.216058 +404.339825 +405.463592 +406.587360 +407.711127 +408.834889 +409.959134 +411.036375 +416.603118 +349.246210 +405.049618 +414.328454 +416.566663 +417.817953 +418.950189 +420.073040 +421.196458 +422.320249 +423.444079 +424.567896 +425.691710 +426.815525 +427.939340 +429.063155 +430.186970 +431.310785 +432.434600 +433.558415 +434.682230 +435.806045 +436.929854 +438.054195 +439.127420 +445.034234 +371.938308 +432.106830 +442.225305 +444.624884 +445.906949 +447.044787 +448.168468 +449.291930 +450.415713 +451.539563 +452.663408 +453.787250 +454.911091 +456.034933 +457.158775 +458.282617 +459.406458 +460.530300 +461.654142 +462.777984 +463.901826 +465.025661 +466.150078 +467.219263 +473.466159 +394.630407 +459.164046 +470.122190 +472.683226 +473.996218 +475.139833 +476.264473 +477.388032 +478.511810 +479.635665 +480.759526 +481.883383 +483.007240 +484.131096 +485.254953 +486.378810 +487.502667 +488.626524 +489.750381 +490.874238 +491.998094 +493.121945 +494.246425 +495.311558 +501.898543 +417.322505 +486.221264 +498.019088 +500.741620 +502.085616 +503.235104 +504.360782 +505.484480 +506.608262 +507.732118 +508.855985 +509.979851 +511.103717 +512.227582 +513.351447 +514.475313 +515.599178 +516.723043 +517.846908 +518.970774 +520.094639 +521.218497 +522.343035 +523.404108 +530.331186 +440.014603 +513.278483 +525.915992 +528.800035 +530.175071 +531.330483 +532.457250 +533.581118 +534.704912 +535.828768 +536.952638 +538.076509 +539.200379 +540.324249 +541.448119 +542.571989 +543.695859 +544.819729 +545.943600 +547.067470 +548.191340 +549.315202 +550.439793 +551.496804 +558.763975 +462.706702 +540.335701 +553.812897 +556.858460 +558.264553 +559.425916 +560.553799 +561.677856 +562.801673 +563.925529 +565.049400 +566.173274 +567.297147 +568.421019 +569.544892 +570.668765 +571.792637 +572.916510 +574.040383 +575.164256 +576.288128 +577.411993 +578.536635 +579.589580 +587.196847 +485.398800 +567.392920 +581.709803 +584.916889 +586.354047 +587.521374 +588.650388 +589.774649 +590.898495 +592.022352 +593.146224 +594.270099 +595.393973 +596.517847 +597.641721 +598.765596 +599.889470 +601.013344 +602.137218 +603.261093 +604.384967 +605.508832 +606.633524 +607.682403 +615.629766 +508.090898 +594.450138 +609.606709 +612.975319 +614.443545 +615.616843 +616.746998 +617.871470 +618.995351 +620.119211 +621.243083 +622.366958 +623.490833 +624.614708 +625.738583 +626.862458 +627.986333 +629.110208 +630.234083 +631.357958 +632.481833 +633.605699 +634.730441 +635.775253 +644.062711 +530.782997 +621.507357 +637.503615 +641.033749 +642.533046 +643.712318 +644.843618 +645.968306 +647.092224 +648.216089 +649.339961 +650.463836 +651.587712 +652.711587 +653.835463 +654.959338 +656.083214 +657.207089 +658.330965 +659.454840 +660.578716 +661.702581 +662.827372 +663.868117 +672.495672 diff --git a/test_data/aniso_sor_inc_2.txt b/test_data/aniso_sor_inc_2.txt new file mode 100644 index 00000000..6cd88488 --- /dev/null +++ b/test_data/aniso_sor_inc_2.txt @@ -0,0 +1,625 @@ +6.527223 +6.048495 +7.221709 +8.065341 +8.969483 +9.863058 +10.758417 +11.653482 +12.548595 +13.443700 +14.338806 +15.233913 +16.129019 +17.024125 +17.919231 +18.814337 +19.709443 +20.604550 +21.499656 +22.394762 +23.289868 +24.184974 +25.080080 +25.992680 +22.095764 +34.768531 +31.677570 +33.494904 +34.949081 +36.369391 +37.812042 +39.248266 +40.685973 +42.123373 +43.560832 +44.998281 +46.435731 +47.873181 +49.310631 +50.748081 +52.185531 +53.622981 +55.060432 +56.497882 +57.935332 +59.372782 +60.810232 +62.247426 +63.768677 +56.298388 +71.910873 +70.331798 +71.390138 +73.384288 +75.113017 +76.879135 +78.644310 +80.408160 +82.172556 +83.936798 +85.701077 +87.465348 +89.229621 +90.993893 +92.758166 +94.522438 +96.286710 +98.050983 +99.815255 +101.579527 +103.343800 +105.108075 +106.871278 +108.802503 +97.900653 +112.610312 +116.350003 +116.705249 +118.798994 +120.792307 +122.738108 +124.701382 +126.661352 +128.621611 +130.581933 +132.542214 +134.502509 +136.462800 +138.423092 +140.383383 +142.343675 +144.303967 +146.264259 +148.224551 +150.184842 +152.145134 +154.105438 +156.063446 +158.278781 +144.010633 +154.695934 +166.166095 +166.587618 +168.503417 +170.657857 +172.727369 +174.802945 +176.881303 +178.958432 +181.035844 +183.113217 +185.190590 +187.267965 +189.345339 +191.422714 +193.500088 +195.577462 +197.654837 +199.732211 +201.809585 +203.886960 +205.964361 +208.038016 +210.459346 +192.856663 +197.307845 +217.822836 +219.128873 +220.853046 +223.049424 +225.208004 +227.350376 +229.498003 +231.645153 +233.792138 +235.939211 +238.086261 +240.233314 +242.380368 +244.527421 +246.674474 +248.821528 +250.968581 +253.115634 +255.262688 +257.409741 +259.556841 +261.698632 +264.278165 +243.357319 +240.113994 +270.330714 +273.136577 +274.806714 +276.972464 +279.183066 +281.369520 +283.557102 +285.745807 +287.934147 +290.122530 +292.310921 +294.499306 +296.687694 +298.876081 +301.064467 +303.252854 +305.441241 +307.629628 +309.818015 +312.006401 +314.194858 +316.376396 +319.085192 +294.855073 +282.989547 +323.217354 +327.915407 +329.704971 +331.824152 +334.053710 +336.269553 +338.481074 +340.694004 +342.906895 +345.119707 +347.332546 +349.545381 +351.758215 +353.971050 +356.183885 +358.396720 +360.609555 +362.822390 +365.035225 +367.248059 +369.460988 +371.665372 +374.486044 +346.951689 +325.888942 +376.267021 +383.083311 +385.140702 +387.234103 +389.461757 +391.694893 +393.921593 +396.148604 +398.375947 +400.603199 +402.830452 +405.057712 +407.284969 +409.512227 +411.739484 +413.966742 +416.194000 +418.421257 +420.648515 +422.875771 +425.103149 +427.320349 +430.242516 +399.406867 +368.796115 +429.384749 +438.440568 +440.871776 +442.974067 +445.192181 +447.433053 +449.669460 +451.904854 +454.140618 +456.376382 +458.612122 +460.847869 +463.083615 +465.319361 +467.555107 +469.790853 +472.026599 +474.262345 +476.498091 +478.733836 +480.969727 +483.193812 +486.211300 +452.076115 +411.705642 +482.530069 +493.887077 +496.759817 +498.904820 +501.115090 +503.357496 +505.599677 +507.840237 +510.080902 +512.321655 +514.562386 +516.803116 +519.043847 +521.284578 +523.525309 +525.766041 +528.006772 +530.247503 +532.488234 +534.728963 +536.969865 +539.197333 +542.306490 +504.872829 +454.615795 +535.686250 +549.374454 +552.728730 +554.943139 +557.151798 +559.392821 +561.637915 +563.881689 +566.125250 +568.368907 +570.612566 +572.856217 +575.099870 +577.343523 +579.587176 +581.830829 +584.074482 +586.318135 +588.561788 +590.805439 +593.049289 +595.278078 +598.476747 +557.745257 +497.526071 +588.846572 +604.880050 +608.738131 +611.040545 +613.254816 +615.493973 +617.740104 +619.985801 +622.231111 +624.476458 +626.721826 +628.967188 +631.212550 +633.457913 +635.703275 +637.948638 +640.194000 +642.439363 +644.684725 +646.930085 +649.175671 +651.404570 +654.691482 +610.662557 +540.436346 +642.008420 +660.393566 +664.767271 +667.169586 +669.395794 +671.633974 +673.880134 +676.126871 +678.373248 +680.619586 +682.865949 +685.112311 +687.358672 +689.605033 +691.851394 +694.097755 +696.344116 +698.590477 +700.836838 +703.083196 +705.329805 +707.558105 +710.932515 +663.606397 +583.346603 +695.170805 +715.910439 +720.805799 +723.315148 +725.558075 +727.796691 +730.042519 +732.289722 +734.536738 +736.783666 +739.030605 +741.277550 +743.524494 +745.771437 +748.018380 +750.265324 +752.512267 +754.759210 +757.006154 +759.253094 +761.500312 +763.727596 +767.189067 +716.565902 +626.256845 +748.333370 +771.428703 +776.848691 +779.469136 +781.732068 +783.972526 +786.218065 +788.465401 +790.712776 +792.960058 +795.207335 +797.454618 +799.701901 +801.949183 +804.196466 +806.443748 +808.691031 +810.938313 +813.185596 +815.432875 +817.680458 +819.906484 +823.454762 +769.534638 +669.167078 +801.495990 +826.947527 +832.893566 +835.627327 +837.912365 +840.155825 +842.401312 +844.648626 +846.896182 +849.143676 +851.391151 +853.638630 +855.886110 +858.133590 +860.381070 +862.628550 +864.876030 +867.123509 +869.370989 +871.618465 +873.866271 +876.090898 +879.725832 +822.508805 +712.077307 +854.658625 +882.466572 +888.939323 +891.787569 +894.095987 +896.343304 +898.589027 +900.836282 +903.083911 +905.331527 +907.579120 +909.826713 +912.074308 +914.321902 +916.569497 +918.817091 +921.064685 +923.312280 +925.559874 +927.807464 +930.055410 +932.278556 +936.000059 +875.486162 +754.987535 +907.821263 +937.985701 +944.985466 +947.948793 +950.281328 +952.533082 +954.779307 +957.026529 +959.274175 +961.521856 +963.769519 +966.017179 +968.264840 +970.512501 +972.760162 +975.007822 +977.255483 +979.503144 +981.750805 +983.998461 +986.246500 +988.468115 +992.276138 +928.465390 +797.897761 +960.983901 +993.504860 +1001.031773 +1004.110477 +1006.467541 +1008.724105 +1010.971041 +1013.218282 +1015.465923 +1017.713635 +1019.961339 +1022.209038 +1024.456737 +1026.704436 +1028.952136 +1031.199835 +1033.447534 +1035.695234 +1037.942933 +1040.190627 +1042.438730 +1044.658788 +1048.553300 +981.445714 +840.807988 +1014.146538 +1049.024031 +1057.078149 +1060.272374 +1062.654187 +1064.915788 +1067.163587 +1069.410905 +1071.658537 +1073.906261 +1076.153987 +1078.401709 +1080.649431 +1082.897153 +1085.144874 +1087.392596 +1089.640318 +1091.888039 +1094.135761 +1096.383477 +1098.631628 +1100.850112 +1104.831097 +1034.426679 +883.718214 +1067.309175 +1104.543205 +1113.124553 +1116.434366 +1118.841045 +1121.107816 +1123.356582 +1125.604024 +1127.851655 +1130.099382 +1132.347120 +1134.594856 +1136.842590 +1139.090325 +1141.338059 +1143.585794 +1145.833528 +1148.081263 +1150.328998 +1152.576726 +1154.824916 +1157.041816 +1161.109264 +1087.408019 +926.628440 +1120.471812 +1160.062380 +1169.170968 +1172.596401 +1175.028005 +1177.300021 +1179.549820 +1181.797424 +1184.045066 +1186.292791 +1188.540535 +1190.788278 +1193.036020 +1195.283762 +1197.531504 +1199.779246 +1202.026988 +1204.274730 +1206.522472 +1208.770208 +1211.018431 +1213.233742 +1217.387647 +1140.389577 +969.538666 +1173.634448 +1215.581556 +1225.217388 +1228.758455 +1231.215014 +1233.492316 +1235.743188 +1237.990982 +1240.238643 +1242.486368 +1244.734114 +1246.981861 +1249.229608 +1251.477354 +1253.725100 +1255.972847 +1258.220593 +1260.468339 +1262.716086 +1264.963825 +1267.212079 +1269.425797 +1273.666156 +1193.371263 +725.543519 +951.954605 +989.463364 +999.293504 +1002.341009 +1004.351092 +1006.158014 +1007.936983 +1009.711861 +1011.486466 +1013.261100 +1015.035753 +1016.810410 +1018.585067 +1020.359723 +1022.134379 +1023.909036 +1025.683692 +1027.458348 +1029.233005 +1031.007656 +1032.782662 +1034.538266 +1036.901401 +1086.239957 diff --git a/test_data/aniso_sor_ones_1.txt b/test_data/aniso_sor_ones_1.txt new file mode 100644 index 00000000..1e25e97c --- /dev/null +++ b/test_data/aniso_sor_ones_1.txt @@ -0,0 +1,625 @@ +0.561938 +0.483472 +0.494428 +0.492898 +0.493112 +0.493082 +0.493086 +0.493086 +0.493086 +0.493086 +0.493086 +0.493086 +0.493086 +0.493086 +0.493086 +0.493086 +0.493086 +0.493086 +0.493086 +0.493086 +0.493086 +0.493086 +0.493086 +0.493086 +0.493086 +0.777351 +0.782749 +0.766084 +0.770633 +0.769688 +0.769863 +0.769832 +0.769838 +0.769837 +0.769837 +0.769837 +0.769837 +0.769837 +0.769837 +0.769837 +0.769837 +0.769837 +0.769837 +0.769837 +0.769837 +0.769837 +0.769837 +0.769837 +0.769837 +0.773445 +0.859094 +0.941385 +0.924757 +0.924570 +0.925397 +0.925107 +0.925180 +0.925164 +0.925167 +0.925167 +0.925167 +0.925167 +0.925167 +0.925167 +0.925167 +0.925167 +0.925167 +0.925167 +0.925167 +0.925167 +0.925167 +0.925167 +0.925167 +0.925141 +0.932210 +0.889782 +1.018783 +1.015467 +1.011573 +1.012393 +1.012377 +1.012334 +1.012352 +1.012347 +1.012348 +1.012348 +1.012348 +1.012348 +1.012348 +1.012348 +1.012348 +1.012348 +1.012348 +1.012348 +1.012348 +1.012348 +1.012348 +1.012348 +1.012286 +1.021864 +0.901174 +1.054582 +1.065092 +1.061247 +1.061102 +1.061327 +1.061275 +1.061278 +1.061280 +1.061279 +1.061280 +1.061279 +1.061279 +1.061279 +1.061279 +1.061279 +1.061279 +1.061279 +1.061279 +1.061279 +1.061279 +1.061279 +1.061280 +1.061186 +1.072392 +0.905350 +1.070516 +1.091050 +1.089390 +1.088575 +1.088739 +1.088754 +1.088740 +1.088743 +1.088743 +1.088743 +1.088743 +1.088743 +1.088743 +1.088743 +1.088743 +1.088743 +1.088743 +1.088743 +1.088743 +1.088743 +1.088743 +1.088744 +1.088625 +1.100831 +0.906861 +1.077398 +1.104098 +1.105013 +1.104139 +1.104115 +1.104166 +1.104157 +1.104156 +1.104157 +1.104157 +1.104157 +1.104157 +1.104157 +1.104157 +1.104157 +1.104157 +1.104157 +1.104157 +1.104157 +1.104157 +1.104157 +1.104158 +1.104023 +1.116823 +0.907399 +1.080297 +1.110433 +1.113458 +1.112931 +1.112770 +1.112807 +1.112811 +1.112808 +1.112809 +1.112809 +1.112809 +1.112809 +1.112809 +1.112809 +1.112809 +1.112809 +1.112809 +1.112809 +1.112809 +1.112809 +1.112809 +1.112810 +1.112664 +1.125809 +0.907587 +1.081493 +1.113419 +1.117898 +1.117847 +1.117655 +1.117655 +1.117666 +1.117665 +1.117664 +1.117664 +1.117664 +1.117664 +1.117664 +1.117664 +1.117664 +1.117664 +1.117664 +1.117664 +1.117664 +1.117664 +1.117664 +1.117666 +1.117513 +1.130857 +0.907652 +1.081976 +1.114790 +1.120169 +1.120552 +1.120411 +1.120381 +1.120389 +1.120390 +1.120390 +1.120390 +1.120390 +1.120390 +1.120390 +1.120390 +1.120390 +1.120390 +1.120390 +1.120390 +1.120390 +1.120390 +1.120390 +1.120391 +1.120234 +1.133691 +0.907674 +1.082168 +1.115405 +1.121301 +1.122012 +1.121956 +1.121916 +1.121917 +1.121920 +1.121919 +1.121919 +1.121919 +1.121919 +1.121919 +1.121919 +1.121919 +1.121919 +1.121919 +1.121919 +1.121919 +1.121919 +1.121919 +1.121921 +1.121762 +1.135283 +0.907681 +1.082243 +1.115676 +1.121852 +1.122784 +1.122815 +1.122781 +1.122776 +1.122778 +1.122778 +1.122778 +1.122778 +1.122778 +1.122778 +1.122778 +1.122778 +1.122778 +1.122778 +1.122778 +1.122778 +1.122778 +1.122778 +1.122780 +1.122619 +1.136176 +0.907683 +1.082272 +1.115792 +1.122114 +1.123183 +1.123286 +1.123267 +1.123259 +1.123259 +1.123260 +1.123260 +1.123260 +1.123260 +1.123260 +1.123260 +1.123260 +1.123260 +1.123260 +1.123260 +1.123260 +1.123260 +1.123260 +1.123262 +1.123100 +1.136678 +0.907684 +1.082283 +1.115842 +1.122236 +1.123386 +1.123541 +1.123538 +1.123530 +1.123530 +1.123530 +1.123530 +1.123530 +1.123530 +1.123530 +1.123530 +1.123530 +1.123530 +1.123530 +1.123530 +1.123530 +1.123530 +1.123530 +1.123532 +1.123370 +1.136959 +0.907684 +1.082287 +1.115862 +1.122292 +1.123487 +1.123676 +1.123689 +1.123683 +1.123682 +1.123682 +1.123682 +1.123682 +1.123682 +1.123682 +1.123682 +1.123682 +1.123682 +1.123682 +1.123682 +1.123682 +1.123682 +1.123682 +1.123684 +1.123521 +1.137117 +0.907684 +1.082288 +1.115871 +1.122318 +1.123536 +1.123747 +1.123771 +1.123769 +1.123767 +1.123767 +1.123767 +1.123767 +1.123767 +1.123767 +1.123767 +1.123767 +1.123767 +1.123767 +1.123767 +1.123767 +1.123767 +1.123767 +1.123769 +1.123607 +1.137206 +0.907684 +1.082288 +1.115874 +1.122329 +1.123560 +1.123783 +1.123816 +1.123817 +1.123815 +1.123815 +1.123815 +1.123815 +1.123815 +1.123815 +1.123815 +1.123815 +1.123815 +1.123815 +1.123815 +1.123815 +1.123815 +1.123815 +1.123817 +1.123654 +1.137256 +0.907684 +1.082289 +1.115875 +1.122334 +1.123571 +1.123802 +1.123840 +1.123843 +1.123842 +1.123842 +1.123842 +1.123842 +1.123842 +1.123842 +1.123842 +1.123842 +1.123842 +1.123842 +1.123842 +1.123842 +1.123842 +1.123842 +1.123844 +1.123681 +1.137283 +0.907684 +1.082289 +1.115876 +1.122336 +1.123576 +1.123811 +1.123852 +1.123857 +1.123857 +1.123857 +1.123857 +1.123857 +1.123857 +1.123857 +1.123857 +1.123857 +1.123857 +1.123857 +1.123857 +1.123857 +1.123857 +1.123857 +1.123859 +1.123696 +1.137299 +0.907684 +1.082289 +1.115876 +1.122337 +1.123578 +1.123815 +1.123859 +1.123865 +1.123866 +1.123865 +1.123865 +1.123865 +1.123865 +1.123865 +1.123865 +1.123865 +1.123865 +1.123865 +1.123865 +1.123865 +1.123865 +1.123865 +1.123867 +1.123705 +1.137308 +0.907684 +1.082289 +1.115876 +1.122337 +1.123579 +1.123817 +1.123862 +1.123869 +1.123870 +1.123870 +1.123870 +1.123870 +1.123870 +1.123870 +1.123870 +1.123870 +1.123870 +1.123870 +1.123870 +1.123870 +1.123870 +1.123870 +1.123872 +1.123709 +1.137313 +0.907684 +1.082289 +1.115876 +1.122337 +1.123580 +1.123818 +1.123864 +1.123872 +1.123873 +1.123873 +1.123873 +1.123873 +1.123873 +1.123873 +1.123873 +1.123873 +1.123873 +1.123873 +1.123873 +1.123873 +1.123873 +1.123873 +1.123875 +1.123712 +1.137316 +0.907684 +1.082289 +1.115876 +1.122337 +1.123580 +1.123819 +1.123864 +1.123873 +1.123874 +1.123874 +1.123874 +1.123874 +1.123874 +1.123874 +1.123874 +1.123874 +1.123874 +1.123874 +1.123874 +1.123874 +1.123874 +1.123874 +1.123876 +1.123713 +1.137317 +0.907684 +1.082289 +1.115876 +1.122337 +1.123580 +1.123819 +1.123865 +1.123873 +1.123875 +1.123875 +1.123875 +1.123875 +1.123875 +1.123875 +1.123875 +1.123875 +1.123875 +1.123875 +1.123875 +1.123875 +1.123875 +1.123875 +1.123877 +1.123714 +1.137318 +0.907684 +1.082289 +1.115876 +1.122337 +1.123580 +1.123819 +1.123865 +1.123874 +1.123875 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123876 +1.123875 +1.123877 +1.123715 +1.137319 diff --git a/test_data/aniso_sor_ones_2.txt b/test_data/aniso_sor_ones_2.txt new file mode 100644 index 00000000..44a3bb5d --- /dev/null +++ b/test_data/aniso_sor_ones_2.txt @@ -0,0 +1,625 @@ +1.030014 +0.879135 +0.896342 +0.895155 +0.895057 +0.895121 +0.895103 +0.895107 +0.895106 +0.895106 +0.895106 +0.895106 +0.895106 +0.895106 +0.895106 +0.895106 +0.895106 +0.895106 +0.895106 +0.895106 +0.895106 +0.895106 +0.895106 +0.895803 +0.799133 +1.448071 +1.469865 +1.428888 +1.438871 +1.437301 +1.437448 +1.437456 +1.437448 +1.437451 +1.437450 +1.437450 +1.437450 +1.437450 +1.437450 +1.437450 +1.437450 +1.437450 +1.437450 +1.437450 +1.437450 +1.437450 +1.437450 +1.437440 +1.439399 +1.310647 +1.613929 +1.803889 +1.764524 +1.762330 +1.764881 +1.764152 +1.764288 +1.764272 +1.764272 +1.764273 +1.764272 +1.764272 +1.764272 +1.764272 +1.764272 +1.764272 +1.764272 +1.764272 +1.764272 +1.764272 +1.764272 +1.764272 +1.764245 +1.767042 +1.629798 +1.678241 +1.975755 +1.969665 +1.958217 +1.960274 +1.960419 +1.960247 +1.960302 +1.960290 +1.960292 +1.960292 +1.960292 +1.960292 +1.960292 +1.960292 +1.960292 +1.960292 +1.960292 +1.960292 +1.960292 +1.960292 +1.960292 +1.960249 +1.963474 +1.825528 +1.702588 +2.058814 +2.088515 +2.077585 +2.076745 +2.077510 +2.077373 +2.077366 +2.077378 +2.077374 +2.077375 +2.077374 +2.077374 +2.077374 +2.077374 +2.077374 +2.077374 +2.077374 +2.077374 +2.077374 +2.077374 +2.077375 +2.077322 +2.080732 +1.944123 +1.711568 +2.097120 +2.153816 +2.149327 +2.146526 +2.147006 +2.147098 +2.147043 +2.147054 +2.147054 +2.147053 +2.147053 +2.147053 +2.147053 +2.147053 +2.147053 +2.147053 +2.147053 +2.147053 +2.147053 +2.147053 +2.147054 +2.146995 +2.150470 +2.015355 +1.714782 +2.114130 +2.188045 +2.191293 +2.188390 +2.188219 +2.188416 +2.188391 +2.188384 +2.188388 +2.188387 +2.188387 +2.188387 +2.188387 +2.188387 +2.188387 +2.188387 +2.188387 +2.188387 +2.188387 +2.188387 +2.188388 +2.188326 +2.191816 +2.057860 +1.715893 +2.121440 +2.205270 +2.215050 +2.213330 +2.212696 +2.212820 +2.212847 +2.212833 +2.212835 +2.212835 +2.212835 +2.212835 +2.212835 +2.212835 +2.212835 +2.212835 +2.212835 +2.212835 +2.212835 +2.212835 +2.212836 +2.212772 +2.216259 +2.083095 +1.716259 +2.124490 +2.213634 +2.228051 +2.227964 +2.227237 +2.227216 +2.227264 +2.227259 +2.227257 +2.227258 +2.227258 +2.227258 +2.227258 +2.227258 +2.227258 +2.227258 +2.227258 +2.227258 +2.227258 +2.227258 +2.227259 +2.227195 +2.230674 +2.098018 +1.716372 +2.125727 +2.217569 +2.234938 +2.236374 +2.235843 +2.235709 +2.235742 +2.235749 +2.235746 +2.235746 +2.235746 +2.235746 +2.235746 +2.235746 +2.235746 +2.235746 +2.235746 +2.235746 +2.235746 +2.235746 +2.235747 +2.235683 +2.239155 +2.106814 +1.716403 +2.126214 +2.219368 +2.238477 +2.241092 +2.240892 +2.240720 +2.240721 +2.240733 +2.240732 +2.240731 +2.240731 +2.240731 +2.240731 +2.240731 +2.240731 +2.240731 +2.240731 +2.240731 +2.240731 +2.240731 +2.240732 +2.240668 +2.244135 +2.111985 +1.716410 +2.126400 +2.220170 +2.240245 +2.243674 +2.243815 +2.243669 +2.243643 +2.243652 +2.243654 +2.243653 +2.243653 +2.243653 +2.243653 +2.243653 +2.243653 +2.243653 +2.243653 +2.243653 +2.243653 +2.243653 +2.243654 +2.243590 +2.247054 +2.115017 +1.716411 +2.126469 +2.220518 +2.241105 +2.245051 +2.245479 +2.245397 +2.245358 +2.245360 +2.245363 +2.245363 +2.245362 +2.245362 +2.245362 +2.245362 +2.245362 +2.245362 +2.245362 +2.245362 +2.245362 +2.245362 +2.245364 +2.245300 +2.248761 +2.116792 +1.716410 +2.126494 +2.220666 +2.241514 +2.245769 +2.246409 +2.246400 +2.246363 +2.246359 +2.246361 +2.246361 +2.246361 +2.246361 +2.246361 +2.246361 +2.246361 +2.246361 +2.246361 +2.246361 +2.246361 +2.246361 +2.246362 +2.246298 +2.249758 +2.117829 +1.716410 +2.126502 +2.220727 +2.241704 +2.246134 +2.246918 +2.246976 +2.246950 +2.246942 +2.246943 +2.246943 +2.246943 +2.246943 +2.246943 +2.246943 +2.246943 +2.246943 +2.246943 +2.246943 +2.246943 +2.246943 +2.246944 +2.246880 +2.250340 +2.118434 +1.716409 +2.126505 +2.220751 +2.241790 +2.246315 +2.247191 +2.247302 +2.247291 +2.247283 +2.247282 +2.247283 +2.247283 +2.247283 +2.247283 +2.247283 +2.247283 +2.247283 +2.247283 +2.247283 +2.247283 +2.247283 +2.247284 +2.247220 +2.250678 +2.118787 +1.716409 +2.126505 +2.220761 +2.241828 +2.246404 +2.247335 +2.247484 +2.247488 +2.247481 +2.247479 +2.247480 +2.247480 +2.247480 +2.247480 +2.247480 +2.247480 +2.247480 +2.247480 +2.247480 +2.247480 +2.247480 +2.247481 +2.247417 +2.250875 +2.118991 +1.716409 +2.126505 +2.220765 +2.241845 +2.246446 +2.247409 +2.247583 +2.247600 +2.247596 +2.247594 +2.247594 +2.247594 +2.247594 +2.247594 +2.247594 +2.247594 +2.247594 +2.247594 +2.247594 +2.247594 +2.247594 +2.247595 +2.247532 +2.250990 +2.119110 +1.716409 +2.126506 +2.220766 +2.241852 +2.246466 +2.247446 +2.247637 +2.247664 +2.247663 +2.247661 +2.247661 +2.247661 +2.247661 +2.247661 +2.247661 +2.247661 +2.247661 +2.247661 +2.247661 +2.247661 +2.247661 +2.247662 +2.247598 +2.251056 +2.119180 +1.716409 +2.126505 +2.220767 +2.241855 +2.246475 +2.247465 +2.247665 +2.247699 +2.247701 +2.247700 +2.247699 +2.247699 +2.247699 +2.247699 +2.247699 +2.247699 +2.247699 +2.247699 +2.247699 +2.247699 +2.247699 +2.247700 +2.247637 +2.251095 +2.119220 +1.716409 +2.126505 +2.220767 +2.241856 +2.246479 +2.247474 +2.247680 +2.247718 +2.247723 +2.247722 +2.247722 +2.247722 +2.247722 +2.247722 +2.247722 +2.247722 +2.247722 +2.247722 +2.247722 +2.247722 +2.247722 +2.247723 +2.247659 +2.251117 +2.119243 +1.716409 +2.126505 +2.220767 +2.241857 +2.246481 +2.247478 +2.247688 +2.247729 +2.247735 +2.247735 +2.247735 +2.247735 +2.247735 +2.247735 +2.247735 +2.247735 +2.247735 +2.247735 +2.247735 +2.247735 +2.247735 +2.247736 +2.247672 +2.251130 +2.119256 +1.716409 +2.126505 +2.220767 +2.241857 +2.246482 +2.247480 +2.247692 +2.247734 +2.247742 +2.247742 +2.247742 +2.247742 +2.247742 +2.247742 +2.247742 +2.247742 +2.247742 +2.247742 +2.247742 +2.247742 +2.247742 +2.247743 +2.247679 +2.251137 +2.119264 +1.716409 +2.126505 +2.220767 +2.241857 +2.246482 +2.247481 +2.247693 +2.247737 +2.247745 +2.247747 +2.247746 +2.247746 +2.247746 +2.247746 +2.247746 +2.247746 +2.247746 +2.247746 +2.247746 +2.247746 +2.247746 +2.247747 +2.247684 +2.251142 +2.119268 +1.242291 +1.666066 +1.748314 +1.769138 +1.773427 +1.774401 +1.774603 +1.774647 +1.774655 +1.774656 +1.774656 +1.774656 +1.774656 +1.774656 +1.774656 +1.774656 +1.774656 +1.774656 +1.774656 +1.774656 +1.774656 +1.774657 +1.774624 +1.775500 +1.859500 diff --git a/test_data/laplace_block_jacobi_inc_1.txt b/test_data/laplace_block_jacobi_inc_1.txt new file mode 100644 index 00000000..4fdc5d47 --- /dev/null +++ b/test_data/laplace_block_jacobi_inc_1.txt @@ -0,0 +1,1000 @@ +0.001204 +0.031296 +0.062493 +0.093518 +0.118981 +0.151435 +0.187314 +0.218725 +0.249536 +0.269213 +0.301667 +0.343332 +0.374957 +0.405554 +0.419444 +0.451898 +0.499350 +0.531189 +0.561572 +0.569676 +0.602130 +0.655367 +0.687421 +0.717590 +0.719907 +0.752361 +0.811385 +0.843654 +0.873607 +0.870139 +0.902592 +0.967403 +0.999886 +1.029625 +1.020370 +1.052824 +1.123421 +1.156118 +1.185643 +1.170602 +1.203055 +1.279439 +1.312350 +1.341661 +1.320833 +1.353287 +1.435456 +1.468582 +1.497679 +1.471065 +1.503518 +1.591474 +1.624814 +1.653697 +1.621296 +1.653750 +1.747492 +1.781046 +1.809714 +1.771527 +1.803981 +1.903510 +1.937279 +1.965732 +1.921759 +1.954213 +2.059528 +2.093511 +2.121750 +2.071990 +2.104444 +2.215546 +2.249743 +2.277768 +2.222222 +2.254676 +2.371563 +2.405975 +2.433786 +2.372453 +2.404907 +2.527581 +2.562207 +2.589804 +2.522685 +2.555138 +2.683599 +2.718439 +2.745821 +2.672916 +2.705370 +2.839617 +2.874671 +2.901839 +2.823148 +2.855601 +2.995635 +3.030904 +3.057857 +2.973379 +3.005833 +3.151653 +3.187136 +3.213875 +3.123611 +3.156064 +3.307670 +3.343368 +3.369893 +3.273842 +3.306296 +3.463688 +3.499600 +3.525911 +3.424073 +3.456527 +3.619706 +3.655832 +3.681928 +3.574305 +3.606759 +3.775724 +3.812064 +3.837946 +3.724536 +3.756990 +3.931742 +3.968296 +3.993964 +3.874768 +3.907222 +4.087760 +4.124529 +4.149982 +4.024999 +4.057453 +4.243777 +4.280761 +4.306000 +4.175231 +4.207684 +4.399795 +4.436993 +4.462018 +4.325462 +4.357916 +4.555813 +4.593225 +4.618035 +4.475694 +4.508147 +4.711831 +4.749457 +4.774053 +4.625925 +4.658379 +4.867849 +4.905689 +4.930071 +4.776157 +4.808610 +5.023867 +5.061921 +5.086089 +4.926388 +4.958842 +5.179884 +5.218154 +5.242107 +5.076619 +5.109073 +5.335902 +5.374386 +5.398124 +5.226851 +5.259305 +5.491920 +5.530618 +5.554142 +5.377082 +5.409536 +5.647938 +5.686850 +5.710160 +5.527314 +5.559768 +5.803956 +5.843082 +5.866178 +5.677545 +5.709999 +5.959974 +5.999314 +6.022196 +5.827777 +5.860230 +6.115991 +6.155546 +6.178214 +5.978008 +6.010462 +6.272009 +6.311778 +6.334231 +6.128240 +6.160693 +6.428027 +6.468011 +6.490249 +6.278471 +6.310925 +6.584045 +6.624243 +6.646267 +6.428703 +6.461156 +6.740063 +6.780475 +6.802285 +6.578934 +6.611388 +6.896081 +6.936707 +6.958303 +6.729165 +6.761619 +7.052098 +7.092939 +7.114321 +6.879397 +6.911851 +7.208116 +7.249171 +7.270338 +7.029628 +7.062082 +7.364134 +7.405403 +7.426356 +7.179860 +7.212314 +7.520152 +7.561636 +7.582374 +7.330091 +7.362545 +7.676170 +7.717868 +7.738392 +7.480323 +7.512776 +7.832188 +7.874100 +7.894410 +7.630554 +7.663008 +7.988205 +8.030332 +8.050428 +7.780786 +7.813239 +8.144223 +8.186564 +8.206445 +7.931017 +7.963471 +8.300241 +8.342796 +8.362463 +8.081249 +8.113702 +8.456259 +8.499028 +8.518481 +8.231480 +8.263934 +8.612277 +8.655261 +8.674499 +8.381711 +8.414165 +8.768295 +8.811493 +8.830517 +8.531943 +8.564397 +8.924312 +8.967725 +8.986535 +8.682174 +8.714628 +9.080330 +9.123957 +9.142552 +8.832406 +8.864860 +9.236348 +9.280189 +9.298570 +8.982637 +9.015091 +9.392366 +9.436421 +9.454588 +9.132869 +9.165322 +9.548384 +9.592653 +9.610606 +9.283100 +9.315554 +9.704402 +9.748886 +9.766624 +9.433332 +9.465785 +9.860419 +9.905118 +9.922642 +9.583563 +9.616017 +10.016437 +10.061350 +10.078659 +9.733795 +9.766248 +10.172455 +10.217582 +10.234677 +9.884026 +9.916480 +10.328473 +10.373814 +10.390695 +10.034258 +10.066711 +10.484491 +10.530046 +10.546713 +10.184489 +10.216943 +10.640509 +10.686278 +10.702731 +10.334720 +10.367174 +10.796526 +10.842511 +10.858749 +10.484952 +10.517406 +10.952544 +10.998743 +11.014766 +10.635183 +10.667637 +11.108562 +11.154975 +11.170784 +10.785415 +10.817868 +11.264580 +11.311207 +11.326802 +10.935646 +10.968100 +11.420598 +11.467439 +11.482820 +11.085878 +11.118331 +11.576615 +11.623671 +11.638838 +11.236109 +11.268563 +11.732633 +11.779903 +11.794856 +11.386341 +11.418794 +11.888651 +11.936136 +11.950873 +11.536572 +11.569026 +12.044669 +12.092368 +12.106891 +11.686804 +11.719257 +12.200687 +12.248600 +12.262909 +11.837035 +11.869489 +12.356705 +12.404832 +12.418927 +11.987266 +12.019720 +12.512722 +12.561064 +12.574945 +12.137498 +12.169952 +12.668740 +12.717296 +12.730963 +12.287729 +12.320183 +12.824758 +12.873528 +12.886980 +12.437961 +12.470414 +12.980776 +13.029761 +13.042998 +12.588192 +12.620646 +13.136794 +13.185993 +13.199016 +12.738424 +12.770877 +13.292812 +13.342225 +13.355034 +12.888655 +12.921109 +13.448829 +13.498457 +13.511052 +13.038887 +13.071340 +13.604847 +13.654689 +13.667070 +13.189118 +13.221572 +13.760865 +13.810921 +13.823087 +13.339350 +13.371803 +13.916883 +13.967153 +13.979105 +13.489581 +13.522035 +14.072901 +14.123386 +14.135123 +13.639812 +13.672266 +14.228919 +14.279618 +14.291141 +13.790044 +13.822498 +14.384936 +14.435850 +14.447159 +13.940275 +13.972729 +14.540954 +14.592082 +14.603176 +14.090507 +14.122960 +14.696972 +14.748314 +14.759194 +14.240738 +14.273192 +14.852990 +14.904546 +14.915212 +14.390970 +14.423423 +15.009008 +15.060778 +15.071230 +14.541201 +14.573655 +15.165026 +15.217011 +15.227248 +14.691433 +14.723886 +15.321043 +15.373243 +15.383266 +14.841664 +14.874118 +15.477061 +15.529475 +15.539283 +14.991896 +15.024349 +15.633079 +15.685707 +15.695301 +15.142127 +15.174581 +15.789097 +15.841939 +15.851319 +15.292358 +15.324812 +15.945115 +15.998171 +16.007337 +15.442590 +15.475044 +16.101133 +16.154403 +16.163355 +15.592821 +15.625275 +16.257150 +16.310636 +16.319373 +15.743053 +15.775506 +16.413168 +16.466868 +16.475390 +15.893284 +15.925738 +16.569186 +16.623100 +16.631408 +16.043516 +16.075969 +16.725204 +16.779332 +16.787426 +16.193747 +16.226201 +16.881222 +16.935564 +16.943444 +16.343979 +16.376432 +17.037240 +17.091796 +17.099462 +16.494210 +16.526664 +17.193257 +17.248028 +17.255480 +16.644442 +16.676895 +17.349275 +17.404260 +17.411497 +16.794673 +16.827127 +17.505293 +17.560493 +17.567515 +16.944904 +16.977358 +17.661311 +17.716725 +17.723533 +17.095136 +17.127590 +17.817329 +17.872957 +17.879551 +17.245367 +17.277821 +17.973347 +18.029189 +18.035569 +17.395599 +17.428052 +18.129364 +18.185421 +18.191587 +17.545830 +17.578284 +18.285382 +18.341653 +18.347604 +17.696062 +17.728515 +18.441400 +18.497885 +18.503622 +17.846293 +17.878747 +18.597418 +18.654118 +18.659640 +17.996525 +18.028978 +18.753436 +18.810350 +18.815658 +18.146756 +18.179210 +18.909454 +18.966582 +18.971676 +18.296988 +18.329441 +19.065471 +19.122814 +19.127694 +18.447219 +18.479673 +19.221489 +19.279046 +19.283711 +18.597450 +18.629904 +19.377507 +19.435278 +19.439729 +18.747682 +18.780136 +19.533525 +19.591510 +19.595747 +18.897913 +18.930367 +19.689543 +19.747743 +19.751765 +19.048145 +19.080598 +19.845561 +19.903975 +19.907783 +19.198376 +19.230830 +20.001578 +20.060207 +20.063801 +19.348608 +19.381061 +20.157596 +20.216439 +20.219818 +19.498839 +19.531293 +20.313614 +20.372671 +20.375836 +19.649071 +19.681524 +20.469632 +20.528903 +20.531854 +19.799302 +19.831756 +20.625650 +20.685135 +20.687872 +19.949534 +19.981987 +20.781667 +20.841368 +20.843890 +20.099765 +20.132219 +20.937685 +20.997600 +20.999908 +20.249996 +20.282450 +21.093703 +21.153832 +21.155925 +20.400228 +20.432682 +21.249721 +21.310064 +21.311943 +20.550459 +20.582913 +21.405739 +21.466296 +21.467961 +20.700691 +20.733144 +21.561757 +21.622528 +21.623979 +20.850922 +20.883376 +21.717774 +21.778760 +21.779997 +21.001154 +21.033607 +21.873792 +21.934993 +21.936015 +21.151385 +21.183839 +22.029810 +22.091225 +22.092032 +21.301617 +21.334070 +22.185828 +22.247457 +22.248050 +21.451848 +21.484302 +22.341846 +22.403689 +22.404068 +21.602080 +21.634533 +22.497864 +22.559921 +22.560086 +21.752311 +21.784765 +22.653881 +22.716153 +22.716104 +21.902542 +21.934996 +22.809899 +22.872385 +22.872122 +22.052774 +22.085228 +22.965917 +23.028618 +23.028139 +22.203005 +22.235459 +23.121935 +23.184850 +23.184157 +22.353237 +22.385690 +23.277953 +23.341082 +23.340175 +22.503468 +22.535922 +23.433971 +23.497314 +23.496193 +22.653700 +22.686153 +23.589988 +23.653546 +23.652211 +22.803931 +22.836385 +23.746006 +23.809778 +23.808228 +22.954163 +22.986616 +23.902024 +23.966010 +23.964246 +23.104394 +23.136848 +24.058042 +24.122243 +24.120264 +23.254626 +23.287079 +24.214060 +24.278475 +24.276282 +23.404857 +23.437311 +24.370078 +24.434707 +24.432300 +23.555088 +23.587542 +24.526095 +24.590939 +24.588318 +23.705320 +23.737774 +24.682113 +24.747171 +24.744335 +23.855551 +23.888005 +24.838131 +24.903403 +24.900353 +24.005783 +24.038236 +24.994149 +25.059635 +25.056371 +24.156014 +24.188468 +25.150167 +25.215868 +25.212389 +24.306246 +24.338699 +25.306185 +25.372100 +25.368407 +24.456477 +24.488931 +25.462202 +25.528332 +25.524425 +24.606709 +24.639162 +25.618220 +25.684564 +25.680442 +24.756940 +24.789394 +25.774238 +25.840796 +25.836460 +24.907172 +24.939625 +25.930256 +25.997028 +25.992478 +25.057403 +25.089857 +26.086274 +26.153260 +26.148496 +25.207634 +25.240088 +26.242292 +26.309493 +26.304514 +25.357866 +25.390320 +26.398309 +26.465725 +26.460532 +25.508097 +25.540551 +26.554327 +26.621957 +26.616549 +25.658329 +25.690783 +26.710345 +26.778189 +26.772567 +25.808560 +25.841014 +26.866363 +26.934421 +26.928585 +25.958792 +25.991245 +27.022381 +27.090653 +27.084603 +26.109023 +26.141477 +27.178399 +27.246885 +27.240621 +26.259255 +26.291708 +27.334416 +27.403117 +27.396639 +26.409486 +26.441940 +27.490434 +27.559350 +27.552656 +26.559718 +26.592171 +27.646452 +27.715582 +27.708674 +26.709949 +26.742403 +27.802470 +27.871814 +27.864692 +26.860180 +26.892634 +27.958488 +28.028046 +28.020710 +27.010412 +27.042866 +28.114506 +28.184278 +28.176728 +27.160643 +27.193097 +28.270523 +28.340510 +28.332746 +27.310875 +27.343329 +28.426541 +28.496742 +28.488763 +27.461106 +27.493560 +28.582559 +28.652975 +28.644781 +27.611338 +27.643791 +28.738577 +28.809207 +28.800799 +27.761569 +27.794023 +28.894595 +28.965439 +28.956817 +27.911801 +27.944254 +29.050613 +29.121671 +29.112835 +28.062032 +28.094486 +29.206630 +29.277903 +29.268853 +28.212264 +28.244717 +29.362648 +29.434135 +29.424870 +28.362495 +28.394949 +29.518666 +29.590367 +29.580888 +28.512726 +28.545180 +29.674684 +29.746600 +29.736906 +28.662958 +28.695412 +29.830702 +29.902832 +29.892924 +28.813189 +28.845643 +29.986719 +30.059064 +30.048942 +28.963421 +28.995875 +30.142737 +30.215296 +30.204960 +29.113652 +29.146106 +30.298755 +30.371528 +30.360977 +29.263884 +29.296337 +30.454773 +30.527760 +30.516995 +29.414115 +29.446569 +30.610791 +30.683992 +30.673013 +29.564347 +29.596800 +30.766809 +30.840225 +30.829031 +29.714578 +29.747032 +30.922826 +30.996457 +30.985049 +29.864810 +29.897263 +31.078844 +31.152689 +31.141067 +30.015041 diff --git a/test_data/laplace_block_jacobi_inc_2.txt b/test_data/laplace_block_jacobi_inc_2.txt new file mode 100644 index 00000000..42b003e9 --- /dev/null +++ b/test_data/laplace_block_jacobi_inc_2.txt @@ -0,0 +1,1000 @@ +0.417503 +0.675738 +0.738567 +0.777734 +0.789386 +0.838151 +0.921424 +0.977667 +1.007528 +0.796863 +1.039139 +1.442650 +1.520753 +1.560455 +1.552091 +1.606947 +1.721800 +1.789059 +1.813766 +1.448064 +1.508545 +1.975331 +2.057459 +2.095140 +2.073577 +2.128433 +2.256485 +2.325766 +2.346448 +1.917470 +1.977951 +2.508013 +2.594166 +2.629825 +2.595063 +2.649919 +2.791170 +2.862472 +2.879130 +2.386876 +2.447356 +3.040695 +3.130873 +3.164510 +3.116549 +3.171405 +3.325855 +3.399179 +3.411811 +2.856281 +2.916762 +3.573376 +3.667579 +3.699194 +3.638036 +3.692891 +3.860539 +3.935886 +3.944493 +3.325687 +3.386168 +4.106058 +4.204286 +4.233879 +4.159522 +4.214377 +4.395224 +4.472593 +4.477175 +3.795093 +3.855574 +4.638740 +4.740993 +4.768564 +4.681008 +4.735863 +4.929909 +5.009299 +5.009856 +4.264499 +4.324980 +5.171421 +5.277700 +5.303249 +5.202494 +5.257349 +5.464594 +5.546006 +5.542538 +4.733905 +4.229316 +4.842272 +4.926028 +4.954951 +4.878960 +4.927725 +5.098641 +5.165128 +5.174062 +4.608676 +4.757125 +5.466547 +5.562100 +5.593367 +5.504438 +5.559293 +5.754712 +5.830407 +5.837664 +5.166050 +5.792653 +6.864065 +6.993033 +7.019608 +6.881772 +6.945763 +7.207435 +7.305150 +7.294172 +6.245926 +6.318355 +7.482329 +7.617408 +7.640876 +7.485594 +7.549585 +7.828703 +7.929525 +7.912435 +6.771628 +6.844057 +8.100592 +8.241783 +8.262145 +8.089417 +8.153408 +8.449971 +8.553900 +8.530699 +7.297330 +7.369759 +8.718856 +8.866158 +8.883413 +8.693239 +8.757230 +9.071240 +9.178275 +9.148963 +7.823032 +7.895461 +9.337119 +9.490533 +9.504681 +9.297062 +9.361053 +9.692508 +9.802650 +9.767226 +8.348734 +8.421163 +9.955383 +10.114907 +10.125949 +9.900884 +9.964875 +10.313776 +10.427024 +10.385490 +8.874436 +8.946865 +10.573647 +10.739282 +10.747218 +10.504707 +10.568698 +10.935044 +11.051399 +11.003754 +9.400139 +9.472567 +11.191910 +11.363657 +11.368486 +11.108529 +11.172520 +11.556313 +11.675774 +11.622017 +9.925841 +8.869184 +10.089518 +10.217125 +10.232362 +10.033140 +10.087995 +10.393707 +10.485431 +10.460635 +9.278109 +9.451183 +10.793364 +10.929167 +10.940214 +10.719299 +10.774154 +11.101559 +11.197474 +11.164480 +9.860108 +11.049674 +13.046701 +13.236782 +13.232291 +12.919997 +12.983987 +13.420117 +13.548898 +13.476808 +11.502947 +11.575376 +13.664965 +13.861156 +13.853559 +13.523819 +13.587810 +14.041386 +14.173273 +14.095072 +12.028649 +12.101078 +14.283228 +14.485531 +14.474827 +14.127642 +14.191632 +14.662654 +14.797648 +14.713335 +12.554351 +12.626780 +14.901492 +15.109906 +15.096095 +14.731464 +14.795455 +15.283922 +15.422023 +15.331599 +13.080053 +13.152482 +15.519756 +15.734281 +15.717363 +15.335287 +15.399277 +15.905190 +16.046398 +15.949863 +13.605755 +13.678184 +16.138019 +16.358656 +16.338632 +15.939109 +16.003100 +16.526459 +16.670773 +16.568126 +14.131458 +14.203887 +16.756283 +16.983031 +16.959900 +16.542932 +16.606922 +17.147727 +17.295147 +17.186390 +14.657160 +14.729589 +17.374546 +17.607405 +17.581168 +17.146754 +17.210745 +17.768995 +17.919522 +17.804653 +15.182862 +13.563243 +15.416335 +15.584192 +15.579210 +15.248000 +15.302856 +15.740555 +15.852498 +15.787451 +13.972168 +14.145241 +16.120180 +16.296235 +16.287062 +15.934159 +15.989015 +16.448407 +16.564541 +16.491297 +14.554166 +16.306695 +19.229337 +19.480530 +19.444973 +18.958221 +19.022212 +19.632800 +19.792647 +19.659444 +16.759968 +16.832397 +19.847601 +20.104905 +20.066241 +19.562044 +19.626035 +20.254068 +20.417022 +20.277708 +17.285670 +17.358099 +20.465865 +20.729279 +20.687509 +20.165866 +20.229857 +20.875336 +21.041396 +20.895971 +17.811372 +17.883801 +21.084128 +21.353654 +21.308778 +20.769689 +20.833680 +21.496604 +21.665771 +21.514235 +18.337075 +18.409503 +21.702392 +21.978029 +21.930046 +21.373511 +21.437502 +22.117873 +22.290146 +22.132499 +18.862777 +18.935206 +22.320655 +22.602404 +22.551314 +21.977334 +22.041325 +22.739141 +22.914521 +22.750762 +19.388479 +19.460908 +22.938919 +23.226779 +23.172582 +22.581156 +22.645147 +23.360409 +23.538896 +23.369026 +19.914181 +19.986610 +23.557183 +23.851154 +23.793851 +23.184979 +23.248970 +23.981677 +24.163271 +23.987290 +20.439883 +18.257301 +20.743151 +20.951259 +20.926057 +20.462861 +20.517716 +21.087402 +21.219566 +21.114268 +18.666226 +18.839299 +21.446997 +21.663302 +21.633909 +21.149020 +21.203875 +21.795254 +21.931608 +21.818114 +19.248224 +21.563716 +25.411974 +25.724278 +25.657655 +24.996446 +25.060437 +25.845482 +26.036395 +25.842080 +22.016989 +22.089418 +26.030237 +26.348653 +26.278924 +25.600269 +25.664259 +26.466750 +26.660770 +26.460344 +22.542691 +22.615120 +26.648501 +26.973028 +26.900192 +26.204091 +26.268082 +27.088019 +27.285145 +27.078608 +23.068394 +23.140823 +27.266764 +27.597403 +27.521460 +26.807914 +26.871904 +27.709287 +27.909520 +27.696871 +23.594096 +23.666525 +27.885028 +28.221777 +28.142728 +27.411736 +27.475727 +28.330555 +28.533894 +28.315135 +24.119798 +24.192227 +28.503292 +28.846152 +28.763997 +28.015559 +28.079549 +28.951823 +29.158269 +28.933398 +24.645500 +24.717929 +29.121555 +29.470527 +29.385265 +28.619381 +28.683372 +29.573092 +29.782644 +29.551662 +25.171202 +25.243631 +29.739819 +30.094902 +30.006533 +29.223203 +29.287194 +30.194360 +30.407019 +30.169926 +25.696904 +22.951359 +26.069968 +26.318326 +26.272905 +25.677721 +25.732577 +26.434250 +26.586633 +26.441085 +23.360284 +23.533357 +26.773813 +27.030369 +26.980757 +26.363880 +26.418736 +27.142102 +27.298676 +27.144930 +23.942282 +26.820737 +31.594610 +31.968026 +31.870338 +31.034671 +31.098662 +32.058165 +32.280143 +32.024717 +27.274011 +27.346439 +32.212873 +32.592401 +32.491606 +31.638493 +31.702484 +32.679433 +32.904518 +32.642980 +27.799713 +27.872142 +32.831137 +33.216776 +33.112874 +32.242316 +32.306307 +33.300701 +33.528893 +33.261244 +28.325415 +28.397844 +33.449401 +33.841151 +33.734143 +32.846138 +32.910129 +33.921969 +34.153268 +33.879507 +28.851117 +28.923546 +34.067664 +34.465526 +34.355411 +33.449961 +33.513952 +34.543238 +34.777643 +34.497771 +29.376819 +29.449248 +34.685928 +35.089900 +34.976679 +34.053783 +34.117774 +35.164506 +35.402017 +35.116035 +29.902521 +29.974950 +35.304191 +35.714275 +35.597947 +34.657606 +34.721597 +35.785774 +36.026392 +35.734298 +30.428223 +30.500652 +35.922455 +36.338650 +36.219216 +35.261428 +35.325419 +36.407042 +36.650767 +36.352562 +30.953925 +27.645417 +31.396785 +31.685394 +31.619752 +30.892582 +30.947437 +31.781097 +31.953700 +31.767901 +28.054342 +28.227416 +32.100630 +32.397437 +32.327604 +31.578741 +31.633596 +32.488949 +32.665743 +32.471747 +28.636341 +32.077759 +37.777246 +38.211775 +38.083020 +37.072896 +37.136886 +38.270847 +38.523892 +38.207353 +32.531032 +32.603461 +38.395509 +38.836149 +38.704289 +37.676718 +37.740709 +38.892115 +39.148266 +38.825616 +33.056734 +33.129163 +39.013773 +39.460524 +39.325557 +38.280541 +38.344531 +39.513384 +39.772641 +39.443880 +33.582436 +33.654865 +39.632037 +40.084899 +39.946825 +38.884363 +38.948354 +40.134652 +40.397016 +40.062144 +34.108138 +34.180567 +40.250300 +40.709274 +40.568093 +39.488186 +39.552176 +40.755920 +41.021391 +40.680407 +34.633840 +34.706269 +40.868564 +41.333649 +41.189362 +40.092008 +40.155999 +41.377188 +41.645766 +41.298671 +35.159542 +35.231971 +41.486828 +41.958024 +41.810630 +40.695830 +40.759821 +41.998457 +42.270141 +41.916934 +35.685244 +35.757673 +42.105091 +42.582398 +42.431898 +41.299653 +41.363644 +42.619725 +42.894515 +42.535198 +36.210947 +32.339475 +36.723601 +37.052461 +36.966600 +36.107443 +36.162298 +37.127945 +37.320767 +37.094718 +32.748400 +32.921474 +37.427447 +37.764504 +37.674452 +36.793601 +36.848457 +37.835797 +38.032810 +37.798564 +33.330399 +37.334780 +43.959882 +44.455523 +44.295703 +43.111120 +43.175111 +44.483530 +44.767640 +44.389989 +37.788053 +37.860482 +44.578146 +45.079898 +44.916971 +43.714943 +43.778934 +45.104798 +45.392015 +45.008253 +38.313755 +38.386184 +45.196409 +45.704273 +45.538239 +44.318765 +44.382756 +45.726066 +46.016389 +45.626516 +38.839457 +38.911886 +45.814673 +46.328647 +46.159508 +44.922588 +44.986579 +46.347334 +46.640764 +46.244780 +39.365159 +39.437588 +46.432937 +46.953022 +46.780776 +45.526410 +45.590401 +46.968603 +47.265139 +46.863043 +39.890861 +39.963290 +47.051200 +47.577397 +47.402044 +46.130233 +46.194224 +47.589871 +47.889514 +47.481307 +40.416563 +40.488992 +47.669464 +48.201772 +48.023312 +46.734055 +46.798046 +48.211139 +48.513889 +48.099571 +40.942266 +41.014695 +48.287727 +48.826147 +48.644581 +47.337878 +47.401868 +48.832407 +49.138264 +48.717834 +41.467968 +37.033534 +42.050418 +42.419528 +42.313447 +41.322303 +41.377158 +42.474792 +42.687835 +42.421535 +37.442459 +37.615532 +42.754263 +43.131571 +43.021299 +42.008462 +42.063317 +43.182644 +43.399878 +43.125380 +38.024457 +42.591801 +50.142518 +50.699271 +50.508385 +49.149345 +49.213336 +50.696212 +51.011388 +50.572625 +43.045074 +43.117503 +50.760782 +51.323646 +51.129654 +49.753168 +49.817158 +51.317480 +51.635763 +51.190889 +43.570776 +43.643205 +51.379045 +51.948021 +51.750922 +50.356990 +50.420981 +51.938749 +52.260138 +51.809152 +44.096478 +44.168907 +51.997309 +52.572396 +52.372190 +50.960813 +51.024803 +52.560017 +52.884513 +52.427416 +44.622180 +44.694609 +52.615573 +53.196770 +52.993458 +51.564635 +51.628626 +53.181285 +53.508887 +53.045680 +45.147882 +45.220311 +53.233836 +53.821145 +53.614727 +52.168457 +52.232448 +53.802553 +54.133262 +53.663943 +45.673585 +45.746014 +53.852100 +54.445520 +54.235995 +52.772280 +52.836271 +54.423822 +54.757637 +54.282207 +46.199287 +46.271716 +54.470364 +55.069895 +54.857263 +53.376102 +53.440093 +55.045090 +55.382012 +54.900470 +46.724989 +41.727592 +47.377234 +47.786596 +47.660295 +46.537164 +46.592019 +47.821640 +48.054902 +47.748351 +42.136517 +38.535632 +42.341078 +42.613179 +42.549905 +41.685127 +41.733892 +42.693595 +42.852278 +42.672868 +38.914992 +42.159737 +47.672360 +48.070996 +47.950413 +46.839108 +46.893963 +48.111758 +48.339302 +48.043477 +42.568662 +42.629142 +48.205042 +48.607703 +48.485098 +47.360594 +47.415449 +48.646443 +48.876009 +48.576159 +43.038068 +43.098548 +48.737723 +49.144410 +49.019782 +47.882080 +47.936936 +49.181127 +49.412716 +49.108840 +43.507473 +43.567954 +49.270405 +49.681116 +49.554467 +48.403566 +48.458422 +49.715812 +49.949423 +49.641522 +43.976879 +44.037360 +49.803087 +50.217823 +50.089152 +48.925052 +48.979908 +50.250497 +50.486129 +50.174204 +44.446285 +44.506766 +50.335768 +50.754530 +50.623837 +49.446538 +49.501394 +50.785182 +51.022836 +50.706885 +44.915691 +44.976172 +50.868450 +51.291236 +51.158521 +49.968024 +50.022880 +51.319866 +51.559543 +51.239567 +45.385097 +45.445577 +51.401132 +51.827943 +51.693206 +50.489511 +50.544366 +51.854551 +52.096250 +51.772249 +45.854502 +42.347445 +46.507612 +46.800640 +46.727122 +45.774701 +45.823466 +46.870812 +47.039739 +46.839402 +42.726805 diff --git a/test_data/laplace_block_jacobi_ones_1.txt b/test_data/laplace_block_jacobi_ones_1.txt new file mode 100644 index 00000000..9d242565 --- /dev/null +++ b/test_data/laplace_block_jacobi_ones_1.txt @@ -0,0 +1,1000 @@ +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 +0.030046 +0.031204 +0.031246 +0.031204 +0.030046 diff --git a/test_data/laplace_block_jacobi_ones_2.txt b/test_data/laplace_block_jacobi_ones_2.txt new file mode 100644 index 00000000..76c40c6d --- /dev/null +++ b/test_data/laplace_block_jacobi_ones_2.txt @@ -0,0 +1,1000 @@ +0.043187 +0.047563 +0.047826 +0.047696 +0.046660 +0.046660 +0.047696 +0.047826 +0.047563 +0.043187 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.043187 +0.047563 +0.047826 +0.047696 +0.046660 +0.046660 +0.047696 +0.047826 +0.047563 +0.043187 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.052570 +0.061826 +0.062437 +0.062127 +0.060382 +0.060382 +0.062127 +0.062437 +0.061826 +0.052570 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.043187 +0.047563 +0.047826 +0.047696 +0.046660 +0.046660 +0.047696 +0.047826 +0.047563 +0.043187 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.046941 +0.053268 +0.053671 +0.053468 +0.052149 +0.052149 +0.053468 +0.053671 +0.053268 +0.046941 +0.043187 +0.047563 +0.047826 +0.047696 +0.046660 +0.046660 +0.047696 +0.047826 +0.047563 +0.043187 diff --git a/test_data/laplace_gs_inc_1.txt b/test_data/laplace_gs_inc_1.txt new file mode 100644 index 00000000..63ca0b33 --- /dev/null +++ b/test_data/laplace_gs_inc_1.txt @@ -0,0 +1,1000 @@ +0.000000 +0.038462 +0.078402 +0.118400 +0.158400 +0.198400 +0.238400 +0.278400 +0.318400 +0.358400 +0.386095 +0.442421 +0.487603 +0.532416 +0.577216 +0.622016 +0.666816 +0.711616 +0.756416 +0.785893 +0.801097 +0.889124 +0.936599 +0.982071 +1.027451 +1.072827 +1.118203 +1.163579 +1.208366 +1.221180 +1.218855 +1.340218 +1.390308 +1.436016 +1.481476 +1.526921 +1.572367 +1.617789 +1.661958 +1.657366 +1.636887 +1.791780 +1.844551 +1.890475 +1.935957 +1.981412 +2.026865 +2.072268 +2.115745 +2.093657 +2.054949 +2.243391 +2.298854 +2.344994 +2.390494 +2.435951 +2.481404 +2.526780 +2.569556 +2.529960 +2.473013 +2.695008 +2.753163 +2.799519 +2.845037 +2.890496 +2.935947 +2.981296 +3.023369 +2.966265 +2.891078 +3.146625 +3.207474 +3.254046 +3.299581 +3.345041 +3.390492 +3.435812 +3.477182 +3.402570 +3.309142 +3.598243 +3.661784 +3.708572 +3.754125 +3.799586 +3.845036 +3.890328 +3.930996 +3.838875 +3.727207 +4.049861 +4.116095 +4.163099 +4.208669 +4.254131 +4.299580 +4.344844 +4.384809 +4.275180 +3.879499 +4.088942 +4.145640 +4.196080 +4.246266 +4.296443 +4.346619 +4.396795 +4.446382 +4.448673 +4.635601 +5.069596 +5.154067 +5.216947 +5.278651 +5.340296 +5.401939 +5.463536 +5.521447 +5.310198 +5.183962 +5.728290 +5.830988 +5.897377 +5.961218 +6.024900 +6.088569 +6.152023 +6.201206 +5.897078 +5.715008 +6.357987 +6.473684 +6.541853 +6.606152 +6.670166 +6.734150 +6.797426 +6.840755 +6.457589 +6.244580 +6.985040 +7.113044 +7.182610 +7.247095 +7.311170 +7.375180 +7.438163 +7.476116 +7.015489 +6.774025 +7.611857 +7.752088 +7.822995 +7.887623 +7.951717 +8.015717 +8.078400 +8.111041 +7.573123 +7.303459 +8.238653 +8.391103 +8.463345 +8.528109 +8.592216 +8.656203 +8.718585 +8.745921 +8.130730 +7.832893 +8.865448 +9.030115 +9.103691 +9.168591 +9.232710 +9.296682 +9.358763 +9.380796 +8.688335 +8.362327 +9.492242 +9.669127 +9.744037 +9.809072 +9.873204 +9.937162 +9.998942 +10.015670 +9.245939 +8.559193 +9.597893 +9.761575 +9.830621 +9.890197 +9.948875 +10.007373 +10.063644 +10.076509 +9.414153 +8.372063 +9.090208 +9.190826 +9.247249 +9.300844 +9.354271 +9.407688 +9.460939 +9.501845 +9.162636 +9.848006 +11.200680 +11.386803 +11.463575 +11.531697 +11.599208 +11.666663 +11.732910 +11.757526 +10.817192 +10.528428 +12.081273 +12.323197 +12.410239 +12.482395 +12.553308 +12.624042 +12.691623 +12.678481 +11.556980 +11.108637 +12.795158 +13.066182 +13.159078 +13.232599 +13.304267 +13.375576 +13.441281 +13.409393 +12.174349 +11.676627 +13.487458 +13.782655 +13.879525 +13.953725 +14.025582 +14.096877 +14.161157 +14.114395 +12.775856 +12.243142 +14.177067 +14.495671 +14.596138 +14.670840 +14.742771 +14.813990 +14.876990 +14.815999 +13.375333 +12.809482 +14.866346 +15.208251 +15.312252 +15.387423 +15.459407 +15.530544 +15.592293 +15.517166 +13.974556 +13.375802 +15.555586 +15.920777 +16.028304 +16.103937 +16.175972 +16.247026 +16.307529 +16.218278 +14.573746 +13.909284 +16.189702 +16.568812 +16.678033 +16.753356 +16.824775 +16.895102 +16.953980 +16.857549 +15.133499 +13.696563 +15.646412 +15.968402 +16.064355 +16.131405 +16.195020 +16.257618 +16.310136 +16.233462 +14.845261 +13.019652 +14.350317 +14.535756 +14.602183 +14.657655 +14.712232 +14.766689 +14.819010 +14.817387 +14.040638 +15.326563 +17.778991 +18.140819 +18.241278 +18.313697 +18.383476 +18.452771 +18.514522 +18.444296 +16.606807 +16.179528 +18.952472 +19.423067 +19.545178 +19.623846 +19.697829 +19.770672 +19.829221 +19.679022 +17.543233 +16.800369 +19.738656 +20.255544 +20.389893 +20.471441 +20.546622 +20.619925 +20.672756 +20.489529 +18.208509 +17.385658 +20.462032 +21.010964 +21.152471 +21.235575 +21.311146 +21.384190 +21.433541 +21.228811 +18.830468 +17.965685 +21.175809 +21.754102 +21.901523 +21.985707 +22.061453 +22.134229 +22.180776 +21.956821 +19.445746 +18.544958 +21.888180 +22.495385 +22.648473 +22.733623 +22.809497 +22.882018 +22.925910 +22.683121 +20.060029 +19.120744 +22.594358 +23.229018 +23.387217 +23.473164 +23.549071 +23.621274 +23.662761 +23.402324 +20.670010 +19.618787 +23.169010 +23.807692 +23.965941 +24.051175 +24.126111 +24.197168 +24.237085 +23.977139 +21.188895 +18.931914 +21.865638 +22.381692 +22.514264 +22.588632 +22.654629 +22.717370 +22.755254 +22.557395 +20.376662 +17.710597 +19.687027 +19.974476 +20.056379 +20.114112 +20.169255 +20.223768 +20.270709 +20.212053 +18.966199 +20.884813 +24.498618 +25.068714 +25.203737 +25.281571 +25.352599 +25.421644 +25.470068 +25.277429 +22.484118 +21.929231 +25.999130 +26.739850 +26.911486 +26.998564 +27.074410 +27.146404 +27.184164 +26.861680 +23.638255 +22.594118 +26.864255 +27.670961 +27.862648 +27.954658 +28.032126 +28.103962 +28.130918 +27.758850 +24.355321 +23.191792 +27.610382 +28.455740 +28.657740 +28.752423 +28.830518 +28.901622 +28.922920 +28.523653 +24.992220 +23.777865 +28.335329 +29.213390 +29.422966 +29.519351 +29.597744 +29.668291 +29.685612 +29.264216 +25.614811 +24.361651 +29.056018 +29.965453 +30.181899 +30.279680 +30.358273 +30.428343 +30.442142 +29.999780 +26.234495 +24.936681 +29.761074 +30.698066 +30.919876 +31.018615 +31.097231 +31.166803 +31.177918 +30.717754 +26.843598 +25.384546 +30.249970 +31.174762 +31.392697 +31.489947 +31.567354 +31.635770 +31.647154 +31.200537 +27.305166 +24.200764 +28.145568 +28.871817 +29.047639 +29.130707 +29.198418 +29.259089 +29.276306 +28.943138 +25.944190 +22.414656 +25.047650 +25.443715 +25.543950 +25.604677 +25.660293 +25.714167 +25.753455 +25.632078 +23.906611 +26.468143 +31.264101 +32.055340 +32.230637 +32.315449 +32.387574 +32.454943 +32.485483 +32.159319 +28.389913 +27.711631 +33.105727 +34.133662 +34.362588 +34.460309 +34.537854 +34.607006 +34.617764 +34.108203 +29.770503 +28.423318 +34.054992 +35.170352 +35.428115 +35.533209 +35.612810 +35.680865 +35.674924 +35.097668 +30.542552 +29.032771 +34.822895 +35.983452 +36.254808 +36.363812 +36.444284 +36.511023 +36.497097 +35.886952 +31.193702 +29.622642 +35.554976 +36.750579 +37.030819 +37.142089 +37.222979 +37.288879 +37.270020 +36.635678 +31.820981 +30.207932 +36.278525 +37.506499 +37.794203 +37.907143 +37.988285 +38.053558 +38.030731 +37.374528 +32.442532 +30.778323 +36.975365 +38.229016 +38.521456 +38.635256 +38.716395 +38.781152 +38.756007 +38.083552 +33.046229 +31.170473 +37.368324 +38.590601 +38.873864 +38.984979 +39.064681 +39.128626 +39.106685 +38.463394 +33.444137 +29.481525 +34.447629 +35.390880 +35.613380 +35.706295 +35.775610 +35.833065 +35.826683 +35.352207 +31.525106 +27.122867 +30.416018 +30.923131 +31.042958 +31.107136 +31.163240 +31.216121 +31.246753 +31.060524 +28.851863 +32.059646 +38.044857 +39.062090 +39.280217 +39.372957 +39.446220 +39.511187 +39.521808 +39.057857 +34.305264 +33.505093 +40.233037 +41.554835 +41.844606 +41.954329 +42.033643 +42.098926 +42.079844 +41.377350 +35.915717 +34.264979 +41.269106 +42.700699 +43.028645 +43.148424 +43.230250 +43.293319 +43.251190 +42.462056 +36.744412 +34.886372 +42.059121 +43.542637 +43.887602 +44.012609 +44.095560 +44.156661 +44.104090 +43.276205 +37.410008 +35.479432 +42.797224 +44.317821 +44.672849 +44.800655 +44.884136 +44.944127 +44.885752 +44.031857 +38.041248 +36.065170 +43.521673 +45.075039 +45.437824 +45.567465 +45.651235 +45.710510 +45.647937 +44.771810 +38.663401 +36.629453 +44.207554 +45.783844 +46.150276 +46.280502 +46.364223 +46.423078 +46.358906 +45.468840 +39.259939 +36.963794 +44.500645 +46.025109 +46.376364 +46.502434 +46.584473 +46.643061 +46.585587 +45.741434 +39.591725 +34.766630 +40.757908 +41.920950 +42.191725 +42.295146 +42.366091 +42.419791 +42.388482 +41.770209 +37.111085 +31.832438 +35.786963 +36.406009 +36.545942 +36.613795 +36.670410 +36.722144 +36.743707 +36.491838 +33.798744 +37.653882 +44.830803 +46.075826 +46.337840 +46.438973 +46.513426 +46.575670 +46.565528 +45.962184 +40.223898 +39.302362 +47.367585 +48.985775 +49.337893 +49.460285 +49.541447 +49.602402 +49.552282 +48.654592 +42.065513 +40.111064 +48.491641 +50.242430 +50.642337 +50.777601 +50.861748 +50.919283 +50.839546 +49.835877 +42.951605 +40.744575 +49.304119 +51.113701 +51.534154 +51.676022 +51.761554 +51.816431 +51.723707 +50.675290 +43.631868 +41.340680 +50.047983 +51.896606 +52.328269 +52.473459 +52.559632 +52.613128 +52.513750 +51.437574 +44.266895 +41.926507 +50.772653 +52.654216 +53.093801 +53.240936 +53.327426 +53.380148 +53.276439 +52.177859 +44.889209 +42.484133 +51.446530 +53.347905 +53.789835 +53.937184 +54.023564 +54.076023 +53.971601 +52.861719 +45.477921 +42.759871 +51.638243 +53.466803 +53.887234 +54.028810 +54.113245 +54.166082 +54.072108 +53.025368 +45.742625 +40.053350 +47.071281 +48.455241 +48.774993 +48.889251 +48.961861 +49.011568 +48.954757 +48.191668 +42.699004 +36.542465 +41.158784 +41.890083 +42.050326 +42.121950 +42.179091 +42.229614 +42.241949 +41.924148 +38.746185 +43.249049 +51.618539 +53.092014 +53.398335 +53.508066 +53.583741 +53.643131 +53.611892 +52.868556 +46.143679 +45.100959 +54.504690 +56.420219 +56.835292 +56.970653 +57.053709 +57.110146 +57.028503 +55.934756 +48.216948 +45.958731 +55.717225 +57.788349 +58.260950 +58.412063 +58.498590 +58.550360 +58.432430 +57.213189 +49.160755 +46.604462 +56.552368 +58.689236 +59.185968 +59.345090 +59.433268 +59.481670 +59.348163 +58.078102 +49.855814 +47.203590 +57.301950 +59.479809 +59.988895 +60.151864 +60.240793 +60.287543 +60.146531 +58.846969 +50.494599 +47.789386 +58.026613 +60.237502 +60.754626 +60.919626 +61.008897 +61.054826 +60.909389 +59.587325 +51.116926 +48.340151 +58.688097 +60.915541 +61.433616 +61.598415 +61.687507 +61.733356 +61.588163 +60.257563 +51.697558 +48.556987 +58.777851 +60.911276 +61.401389 +61.558727 +61.645600 +61.692517 +61.561634 +60.311603 +51.894809 +45.340676 +53.385830 +54.991159 +55.360188 +55.485434 +55.559734 +55.605350 +55.522794 +54.614476 +48.287675 +41.252648 +46.530907 +47.374576 +47.555206 +47.630643 +47.688317 +47.737605 +47.740650 +47.356810 +43.693822 +48.844540 +58.406903 +60.109072 +60.459863 +60.578277 +60.655190 +60.711675 +60.659209 +59.775658 +52.063868 +50.900024 +61.642704 +63.855929 +64.334195 +64.482651 +64.567625 +64.619469 +64.506114 +63.215983 +54.368977 +51.806968 +62.943918 +65.335809 +65.881400 +66.048518 +66.137454 +66.183365 +66.027010 +64.591798 +55.370628 +52.464970 +63.801822 +66.266450 +66.839785 +67.016332 +67.107189 +67.149014 +66.974467 +65.482325 +56.080545 +53.067122 +64.557126 +67.064698 +67.651534 +67.832456 +67.924176 +67.964074 +67.781169 +66.257782 +56.723092 +53.652847 +65.281709 +67.822374 +68.417345 +68.600375 +68.692458 +68.731495 +68.544084 +66.998121 +57.345382 +54.196679 +65.930654 +68.484561 +69.079053 +69.261447 +69.353279 +69.392431 +69.206250 +67.654570 +57.917841 +54.354497 +65.918229 +68.356825 +68.916832 +69.090047 +69.179379 +69.220308 +69.052347 +67.598742 +58.047494 +50.628233 +59.700829 +61.527708 +61.946138 +62.082441 +62.158444 +62.199927 +62.091527 +61.037812 +53.876639 diff --git a/test_data/laplace_gs_inc_2.txt b/test_data/laplace_gs_inc_2.txt new file mode 100644 index 00000000..724f583f --- /dev/null +++ b/test_data/laplace_gs_inc_2.txt @@ -0,0 +1,1000 @@ +0.713101 +1.156960 +1.254195 +1.317211 +1.377767 +1.438170 +1.498563 +1.558790 +1.606083 +1.225965 +1.638023 +2.407434 +2.569382 +2.652659 +2.728783 +2.804365 +2.879894 +2.954170 +2.983129 +2.271912 +2.314773 +3.267876 +3.473721 +3.566182 +3.646415 +3.725556 +3.804525 +3.880125 +3.880342 +2.987807 +2.944862 +4.049898 +4.285822 +4.383793 +4.465356 +4.545271 +4.624829 +4.698856 +4.679308 +3.640196 +3.568207 +4.819917 +5.083012 +5.185209 +5.267456 +5.347561 +5.427116 +5.499636 +5.462540 +4.282910 +4.190660 +5.588296 +5.878071 +5.984230 +6.067013 +6.147195 +6.226668 +6.297748 +6.243511 +4.924270 +4.813000 +6.356462 +6.672847 +6.782921 +6.866212 +6.946451 +7.025834 +7.095489 +7.024175 +5.565448 +5.435327 +7.124602 +7.467586 +7.581570 +7.665364 +7.745656 +7.824948 +7.893181 +7.804798 +6.206603 +6.024817 +7.837619 +8.197837 +8.313899 +8.397422 +8.477103 +8.555659 +8.622091 +8.523582 +6.808322 +5.535537 +6.852087 +7.133078 +7.229059 +7.298755 +7.365169 +7.430541 +7.485230 +7.404972 +6.172659 +6.085408 +7.496846 +7.771951 +7.872649 +7.954646 +8.035002 +8.115123 +8.190639 +8.152600 +6.819636 +8.160882 +10.585744 +11.094633 +11.253279 +11.366895 +11.475863 +11.583864 +11.675877 +11.504143 +9.154022 +9.258960 +12.144925 +12.803555 +12.997275 +13.122736 +13.240121 +13.355229 +13.440589 +13.153964 +10.344119 +10.139793 +13.339280 +14.084915 +14.300152 +14.430955 +14.550734 +14.666762 +14.742187 +14.387825 +11.270003 +10.980766 +14.462966 +15.279002 +15.509277 +15.643163 +15.763713 +15.879260 +15.947045 +15.538417 +12.145326 +11.815168 +15.574630 +16.457627 +16.701258 +16.837489 +16.958405 +17.073351 +17.134306 +16.674343 +13.011958 +12.648560 +16.684405 +17.633750 +17.890386 +18.028785 +18.149980 +18.264326 +18.318641 +17.807884 +13.877200 +13.475039 +17.781912 +18.794729 +19.063280 +19.203520 +19.324805 +19.438418 +19.486579 +18.927364 +14.733915 +14.080370 +18.506141 +19.516843 +19.783530 +19.921045 +20.039085 +20.149018 +20.191933 +19.634420 +15.329580 +12.226016 +15.332734 +16.063429 +16.265748 +16.372563 +16.464270 +16.549245 +16.581963 +16.173184 +13.158327 +12.420896 +15.361337 +15.937850 +16.093316 +16.188882 +16.277387 +16.363930 +16.425377 +16.178278 +13.357405 +16.189727 +21.166907 +22.247254 +22.520613 +22.662353 +22.786435 +22.904375 +22.957279 +22.361244 +17.515087 +17.759533 +23.533280 +24.921860 +25.275057 +25.440192 +25.577049 +25.702189 +25.723576 +24.876916 +19.235479 +18.811441 +25.028519 +26.573810 +26.974555 +27.152388 +27.293750 +27.418192 +27.412371 +26.436872 +20.356106 +19.753401 +26.328795 +27.984776 +28.415498 +28.600865 +28.743992 +28.866293 +28.842276 +27.776545 +21.344177 +20.673996 +27.590014 +29.345550 +29.800924 +29.991733 +30.135775 +30.256129 +30.217086 +29.070761 +22.305513 +21.589661 +28.842065 +30.694289 +31.172768 +31.368325 +31.513021 +31.631563 +31.578461 +30.354062 +23.260503 +22.469183 +30.029756 +31.963230 +32.458858 +32.657454 +32.802027 +32.918467 +32.854417 +31.564654 +24.171621 +22.874395 +30.412031 +32.278625 +32.756122 +32.947618 +33.086357 +33.197079 +33.132818 +31.895795 +24.532308 +19.333210 +24.514113 +25.815304 +26.160063 +26.303545 +26.408559 +26.492234 +26.448945 +25.577576 +20.515434 +19.052915 +23.730125 +24.704216 +24.938728 +25.049848 +25.142800 +25.228285 +25.250901 +24.705093 +20.196462 +24.724428 +32.613026 +34.436346 +34.871969 +35.047580 +35.180721 +35.294060 +35.260101 +34.079467 +26.391055 +26.849559 +35.935501 +38.263360 +38.839240 +39.053826 +39.203373 +39.319165 +39.213929 +37.611320 +28.728355 +28.068280 +37.730068 +40.291995 +40.948536 +41.186104 +41.342419 +41.453356 +41.297048 +39.497088 +30.040466 +29.075453 +39.149096 +41.855364 +42.558034 +42.809022 +42.968319 +43.074258 +42.887652 +40.967165 +31.104090 +30.036326 +40.483424 +43.309734 +44.046874 +44.306877 +44.467761 +44.569856 +44.360637 +42.340907 +32.111386 +30.982551 +41.790570 +44.728507 +45.495671 +45.762794 +45.924679 +46.023510 +45.794648 +43.683081 +33.100364 +31.850858 +42.958402 +45.973483 +46.756797 +47.026937 +47.188368 +47.284213 +47.043949 +44.869552 +33.996127 +31.964889 +42.840295 +45.688695 +46.425639 +46.681710 +46.835242 +46.926272 +46.701446 +44.663023 +34.025943 +26.607131 +33.989916 +35.933751 +36.449511 +36.635991 +36.750510 +36.819954 +36.668251 +35.263642 +28.033337 +25.784058 +32.275590 +33.691648 +34.023163 +34.154021 +34.250538 +34.329936 +34.297249 +33.411731 +27.139741 +33.438619 +44.380036 +47.028635 +47.660938 +47.879121 +48.019868 +48.118635 +47.966230 +46.124738 +35.455943 +36.162497 +48.737646 +52.109698 +52.953609 +53.229988 +53.390592 +53.483457 +53.210007 +50.754055 +38.456339 +37.558687 +50.852111 +54.543360 +55.505885 +55.817675 +55.987356 +56.069251 +55.716396 +52.987207 +39.971598 +38.622639 +52.375955 +56.243494 +57.268781 +57.600659 +57.774610 +57.847937 +57.452063 +54.573467 +41.101921 +39.607260 +53.754506 +57.756273 +58.823918 +59.168231 +59.344429 +59.411984 +58.987312 +55.996467 +42.137211 +40.562901 +55.079228 +59.198452 +60.299533 +60.652519 +60.829957 +60.893208 +60.445988 +57.357756 +43.136835 +41.392470 +56.177835 +60.357241 +61.467962 +61.822358 +61.998912 +62.059412 +61.604827 +58.467992 +43.986952 +41.176913 +55.489882 +59.383756 +60.411141 +60.741812 +60.908528 +60.967683 +60.551948 +57.651915 +43.644632 +33.949329 +43.590223 +46.212889 +46.917523 +47.152878 +47.275882 +47.323745 +47.045834 +45.073553 +35.620803 +32.550061 +40.884944 +42.761856 +43.199768 +43.353619 +43.453644 +43.523957 +43.427636 +42.184949 +34.120840 +42.218324 +56.267367 +59.777279 +60.624523 +60.891809 +61.040118 +61.118374 +60.831293 +58.295543 +44.591968 +45.560617 +61.696598 +66.160455 +67.296991 +67.644221 +67.815908 +67.877701 +67.414157 +64.060639 +48.276958 +47.142120 +64.145816 +69.019229 +70.315527 +70.712046 +70.895196 +70.938671 +70.364515 +66.656942 +50.004059 +48.262148 +65.773563 +70.855589 +72.231920 +72.655659 +72.844401 +72.875315 +72.244781 +68.358505 +51.200378 +49.264947 +67.186345 +72.414207 +73.839757 +74.279112 +74.470725 +74.494050 +73.829318 +69.820118 +52.257471 +50.221470 +68.513060 +73.859710 +75.319939 +75.768766 +75.961768 +75.980234 +75.291797 +71.183771 +53.258133 +51.000623 +69.520932 +74.904279 +76.364270 +76.811622 +77.003200 +77.020095 +76.331156 +72.194759 +54.049516 +50.439295 +68.233161 +73.202739 +74.537398 +74.949411 +75.129151 +75.149850 +74.527596 +70.737532 +53.317238 +41.319823 +53.243228 +56.561847 +57.464978 +57.753098 +57.884465 +57.906879 +57.493743 +54.937632 +43.238375 +39.328666 +49.517852 +51.863350 +52.412038 +52.590713 +52.694351 +52.754086 +52.590319 +50.983278 +41.116014 +51.022363 +68.200247 +72.586561 +73.657394 +73.977458 +74.133561 +74.188321 +73.759022 +70.514964 +53.755192 +54.991458 +74.716901 +80.293080 +81.734140 +82.157362 +82.340481 +82.367048 +81.703018 +77.432795 +58.134200 +56.762506 +77.508929 +83.587938 +85.231755 +85.719026 +85.916075 +85.916276 +85.108800 +80.400952 +60.077938 +57.939316 +79.242022 +85.562667 +87.304344 +87.826289 +88.030280 +88.013665 +87.135940 +82.219411 +61.341076 +58.958594 +80.685938 +87.163152 +88.960510 +89.501130 +89.708595 +89.682635 +88.765615 +83.716281 +62.418040 +59.912657 +82.008424 +88.603762 +90.435943 +90.986372 +91.195312 +91.164244 +90.223267 +85.075511 +63.415906 +60.636521 +82.916419 +89.521910 +91.342202 +91.887496 +92.094384 +92.063489 +91.130368 +85.977311 +64.142982 +59.722638 +81.016053 +87.075170 +88.725536 +89.222716 +89.415674 +89.394647 +88.558302 +83.865184 +63.013082 +48.702110 +62.918531 +66.940929 +68.047358 +68.390433 +68.530267 +68.525334 +67.972633 +64.825305 +50.868962 +46.111908 +58.159554 +60.976750 +61.638134 +61.842531 +61.949878 +61.998357 +61.765495 +59.791194 +48.116511 +59.835546 +80.150484 +85.419379 +86.717644 +87.092304 +87.256398 +87.286299 +86.711475 +82.753322 +62.928917 +64.434920 +87.761192 +94.458291 +96.209266 +96.711054 +96.905891 +96.895309 +96.026149 +90.831154 +68.005954 +66.397539 +90.899916 +98.194579 +100.192273 +100.773358 +100.984652 +100.939295 +99.893017 +94.175444 +70.168679 +67.631764 +92.739598 +100.309438 +102.423194 +103.046611 +103.266222 +103.199640 +102.068910 +96.112182 +71.499381 +68.667070 +94.213819 +101.950720 +104.126506 +104.771620 +104.995301 +104.917633 +103.742595 +97.643398 +72.595692 +69.617406 +95.529685 +103.383220 +105.593473 +106.248504 +106.473710 +106.390838 +105.192002 +98.995555 +73.589279 +70.283982 +96.334003 +104.169786 +106.355648 +107.001470 +107.223942 +107.143273 +105.961371 +99.783966 +74.249714 +69.014720 +93.815654 +100.970496 +102.940584 +103.524910 +103.731286 +103.666997 +102.613038 +97.011021 +72.718919 +56.089320 +72.603255 +77.332933 +78.644942 +79.044102 +79.192511 +79.159349 +78.465071 +74.723212 +58.505163 +52.896879 +66.804570 +70.094702 +70.869594 +71.100124 +71.211237 +71.248173 +70.945525 +68.602799 +55.119044 +68.652191 +92.107367 +98.261339 +99.788683 +100.218773 +100.390978 +100.395433 +99.673685 +94.999085 +72.106723 +73.883264 +100.814861 +108.636419 +110.699657 +111.281208 +111.487936 +111.439366 +110.363079 +104.239971 +77.883466 +76.038366 +104.302044 +112.816587 +115.170975 +115.847322 +116.073072 +115.981145 +114.693667 +107.962374 +80.266261 +77.330383 +106.249050 +115.072610 +117.561478 +118.287933 +118.523394 +118.405750 +117.019431 +110.018221 +81.664976 +78.381628 +107.753416 +116.754488 +119.311722 +120.062895 +120.303020 +120.172547 +118.736913 +111.583605 +82.780530 +79.327770 +109.061771 +118.177661 +120.768798 +121.529891 +121.771575 +121.635867 +120.176767 +112.927688 +83.769282 +79.936252 +109.760863 +118.830514 +121.384370 +122.131985 +122.370218 +122.238878 +120.806113 +113.600967 +84.362114 +78.310443 +106.622284 +114.875566 +117.167226 +117.839662 +118.059589 +117.951348 +116.678182 +110.164686 +82.429039 +63.478588 +82.291952 +87.730448 +89.249088 +89.704881 +89.861944 +89.800155 +88.963392 +84.625537 +66.143779 +51.317052 +62.148815 +64.946389 +65.656056 +65.869888 +65.966052 +65.984531 +65.667407 +63.511801 +52.891499 +63.445178 +81.596798 +86.719921 +88.092069 +88.487381 +88.633173 +88.606115 +87.876700 +83.693682 +65.755116 +67.585910 +88.453957 +94.921385 +96.757311 +97.290905 +97.466216 +97.382096 +96.320175 +90.930477 +70.261522 +69.379559 +91.321286 +98.367965 +100.457032 +101.077123 +101.269206 +101.141624 +99.888268 +93.977687 +72.221839 +70.468531 +92.930435 +100.237778 +102.445805 +103.111782 +103.312559 +103.160172 +101.816414 +95.672030 +73.389554 +71.345949 +94.150504 +101.601864 +103.869125 +104.557474 +104.762433 +104.597925 +103.209801 +96.937534 +74.311036 +72.120277 +95.178355 +102.712118 +105.004552 +105.700550 +105.906689 +105.737877 +104.331302 +97.986834 +75.108923 +72.558515 +95.599481 +103.054404 +105.300094 +105.979797 +106.182157 +106.019417 +104.645457 +98.369376 +75.514044 +70.954064 +92.508345 +99.171775 +101.156390 +101.759762 +101.944650 +101.808606 +100.600005 +94.998314 +73.620089 +59.379481 +73.378871 +77.619157 +78.898323 +79.299998 +79.431943 +79.353513 +78.576213 +74.949072 +60.997328 diff --git a/test_data/laplace_gs_ones_1.txt b/test_data/laplace_gs_ones_1.txt new file mode 100644 index 00000000..9a5706dc --- /dev/null +++ b/test_data/laplace_gs_ones_1.txt @@ -0,0 +1,1000 @@ +0.038462 +0.039941 +0.039998 +0.040000 +0.040000 +0.040000 +0.040000 +0.040000 +0.040000 +0.040000 +0.041477 +0.044611 +0.044790 +0.044800 +0.044800 +0.044800 +0.044800 +0.044800 +0.044800 +0.043262 +0.041773 +0.045102 +0.045358 +0.045375 +0.045376 +0.045376 +0.045376 +0.045376 +0.045317 +0.043591 +0.041803 +0.045155 +0.045423 +0.045444 +0.045445 +0.045445 +0.045445 +0.045443 +0.045374 +0.043626 +0.041806 +0.045161 +0.045430 +0.045452 +0.045453 +0.045453 +0.045453 +0.045451 +0.045381 +0.043630 +0.041806 +0.045162 +0.045431 +0.045453 +0.045454 +0.045454 +0.045454 +0.045451 +0.045381 +0.043630 +0.041806 +0.045162 +0.045431 +0.045453 +0.045454 +0.045455 +0.045454 +0.045452 +0.045381 +0.043631 +0.041806 +0.045162 +0.045431 +0.045453 +0.045454 +0.045455 +0.045454 +0.045452 +0.045381 +0.043631 +0.041806 +0.045162 +0.045431 +0.045453 +0.045454 +0.045455 +0.045454 +0.045452 +0.045381 +0.043631 +0.041806 +0.045162 +0.045431 +0.045453 +0.045454 +0.045455 +0.045454 +0.045452 +0.045381 +0.043631 +0.044788 +0.049772 +0.050150 +0.050175 +0.050176 +0.050176 +0.050176 +0.050176 +0.050117 +0.046853 +0.051766 +0.060692 +0.061568 +0.061637 +0.061642 +0.061642 +0.061642 +0.061638 +0.061382 +0.054435 +0.052784 +0.062396 +0.063552 +0.063662 +0.063671 +0.063672 +0.063671 +0.063656 +0.063181 +0.055576 +0.052922 +0.062641 +0.063852 +0.063980 +0.063992 +0.063993 +0.063993 +0.063966 +0.063445 +0.055735 +0.052941 +0.062674 +0.063894 +0.064027 +0.064040 +0.064041 +0.064040 +0.064011 +0.063482 +0.055757 +0.052943 +0.062679 +0.063900 +0.064034 +0.064047 +0.064048 +0.064047 +0.064017 +0.063487 +0.055760 +0.052943 +0.062679 +0.063901 +0.064034 +0.064048 +0.064049 +0.064048 +0.064018 +0.063487 +0.055760 +0.052943 +0.062679 +0.063901 +0.064035 +0.064048 +0.064049 +0.064048 +0.064018 +0.063487 +0.055760 +0.052943 +0.062679 +0.063901 +0.064035 +0.064048 +0.064049 +0.064048 +0.064018 +0.063487 +0.055760 +0.049598 +0.057458 +0.058468 +0.058582 +0.058594 +0.058595 +0.058594 +0.058566 +0.058106 +0.052130 +0.046424 +0.052506 +0.053327 +0.053411 +0.053418 +0.053418 +0.053418 +0.053406 +0.053000 +0.048684 +0.054659 +0.065553 +0.067246 +0.067447 +0.067467 +0.067469 +0.067468 +0.067420 +0.066520 +0.057683 +0.056285 +0.068304 +0.070482 +0.070777 +0.070810 +0.070813 +0.070809 +0.070723 +0.069437 +0.059515 +0.056575 +0.068819 +0.071118 +0.071456 +0.071497 +0.071502 +0.071496 +0.071381 +0.069995 +0.059851 +0.056623 +0.068907 +0.071230 +0.071580 +0.071625 +0.071629 +0.071622 +0.071499 +0.070092 +0.059908 +0.056630 +0.068921 +0.071249 +0.071600 +0.071646 +0.071651 +0.071643 +0.071519 +0.070108 +0.059917 +0.056631 +0.068923 +0.071251 +0.071604 +0.071650 +0.071655 +0.071647 +0.071522 +0.070110 +0.059918 +0.056632 +0.068923 +0.071252 +0.071604 +0.071650 +0.071655 +0.071647 +0.071522 +0.070110 +0.059919 +0.056302 +0.068372 +0.070611 +0.070951 +0.070996 +0.071001 +0.070993 +0.070871 +0.069529 +0.059550 +0.051821 +0.061237 +0.062934 +0.063197 +0.063233 +0.063237 +0.063230 +0.063132 +0.062121 +0.054642 +0.046890 +0.053331 +0.054339 +0.054487 +0.054504 +0.054506 +0.054504 +0.054451 +0.053891 +0.049222 +0.055537 +0.067111 +0.069166 +0.069495 +0.069539 +0.069544 +0.069537 +0.069407 +0.068206 +0.058698 +0.057417 +0.070318 +0.072973 +0.073441 +0.073510 +0.073518 +0.073503 +0.073304 +0.071621 +0.060828 +0.057817 +0.071033 +0.073863 +0.074399 +0.074483 +0.074493 +0.074473 +0.074229 +0.072399 +0.061294 +0.057897 +0.071180 +0.074052 +0.074608 +0.074699 +0.074710 +0.074686 +0.074429 +0.072562 +0.061389 +0.057912 +0.071208 +0.074089 +0.074649 +0.074743 +0.074754 +0.074729 +0.074468 +0.072594 +0.061408 +0.057915 +0.071213 +0.074096 +0.074657 +0.074751 +0.074762 +0.074738 +0.074475 +0.072600 +0.061411 +0.057881 +0.071154 +0.074024 +0.074581 +0.074674 +0.074685 +0.074660 +0.074401 +0.072536 +0.061372 +0.057397 +0.070328 +0.073045 +0.073567 +0.073655 +0.073666 +0.073642 +0.073400 +0.071658 +0.060824 +0.052518 +0.062483 +0.064489 +0.064872 +0.064937 +0.064946 +0.064928 +0.064750 +0.063480 +0.055454 +0.047033 +0.053593 +0.054674 +0.054854 +0.054882 +0.054885 +0.054878 +0.054803 +0.054180 +0.049392 +0.055817 +0.067623 +0.069823 +0.070219 +0.070284 +0.070292 +0.070274 +0.070098 +0.068773 +0.059031 +0.057795 +0.071011 +0.073864 +0.074425 +0.074525 +0.074537 +0.074508 +0.074244 +0.072390 +0.061278 +0.058249 +0.071826 +0.074884 +0.075528 +0.075649 +0.075665 +0.075627 +0.075307 +0.073280 +0.061809 +0.058351 +0.072014 +0.075128 +0.075799 +0.075930 +0.075948 +0.075905 +0.075565 +0.073490 +0.061932 +0.058373 +0.072055 +0.075183 +0.075861 +0.075995 +0.076013 +0.075969 +0.075623 +0.073536 +0.061959 +0.058373 +0.072057 +0.075186 +0.075865 +0.076000 +0.076018 +0.075973 +0.075627 +0.073539 +0.061960 +0.058320 +0.071961 +0.075067 +0.075737 +0.075870 +0.075888 +0.075844 +0.075504 +0.073435 +0.061897 +0.057771 +0.071017 +0.073936 +0.074556 +0.074678 +0.074695 +0.074654 +0.074342 +0.072425 +0.061272 +0.052751 +0.062913 +0.065046 +0.065492 +0.065579 +0.065592 +0.065562 +0.065340 +0.063959 +0.055734 +0.047079 +0.053679 +0.054787 +0.054982 +0.055015 +0.055020 +0.055010 +0.054924 +0.054277 +0.049448 +0.055909 +0.067796 +0.070051 +0.070476 +0.070554 +0.070564 +0.070540 +0.070342 +0.068968 +0.059144 +0.057924 +0.071253 +0.074184 +0.074787 +0.074904 +0.074920 +0.074882 +0.074586 +0.072663 +0.061436 +0.058401 +0.072111 +0.075262 +0.075957 +0.076099 +0.076119 +0.076070 +0.075712 +0.073604 +0.061995 +0.058515 +0.072321 +0.075536 +0.076262 +0.076416 +0.076439 +0.076383 +0.076003 +0.073839 +0.062132 +0.058541 +0.072370 +0.075601 +0.076337 +0.076495 +0.076519 +0.076461 +0.076074 +0.073895 +0.062165 +0.058540 +0.072370 +0.075602 +0.076338 +0.076498 +0.076521 +0.076463 +0.076075 +0.073896 +0.062165 +0.058477 +0.072257 +0.075460 +0.076184 +0.076340 +0.076363 +0.076306 +0.075926 +0.073772 +0.062091 +0.057903 +0.071265 +0.074265 +0.074931 +0.075073 +0.075094 +0.075043 +0.074697 +0.072707 +0.061434 +0.052831 +0.063065 +0.065249 +0.065723 +0.065824 +0.065838 +0.065802 +0.065559 +0.064133 +0.055833 +0.047095 +0.053708 +0.054826 +0.055027 +0.055063 +0.055068 +0.055056 +0.054966 +0.054310 +0.049467 +0.055940 +0.067855 +0.070131 +0.070569 +0.070652 +0.070663 +0.070636 +0.070429 +0.069037 +0.059183 +0.057969 +0.071338 +0.074299 +0.074920 +0.075046 +0.075063 +0.075020 +0.074711 +0.072762 +0.061492 +0.058455 +0.072214 +0.075402 +0.076118 +0.076271 +0.076294 +0.076239 +0.075864 +0.073723 +0.062063 +0.058574 +0.072435 +0.075689 +0.076440 +0.076606 +0.076631 +0.076569 +0.076171 +0.073971 +0.062207 +0.058603 +0.072488 +0.075761 +0.076522 +0.076693 +0.076719 +0.076655 +0.076248 +0.074032 +0.062242 +0.058602 +0.072487 +0.075761 +0.076523 +0.076694 +0.076720 +0.076656 +0.076248 +0.074032 +0.062242 +0.058535 +0.072366 +0.075608 +0.076357 +0.076525 +0.076550 +0.076487 +0.076089 +0.073899 +0.062163 +0.057950 +0.071355 +0.074388 +0.075074 +0.075226 +0.075249 +0.075192 +0.074831 +0.072813 +0.061494 +0.052860 +0.063120 +0.065324 +0.065811 +0.065917 +0.065933 +0.065894 +0.065641 +0.064198 +0.055870 +0.047100 +0.053717 +0.054840 +0.055043 +0.055080 +0.055085 +0.055073 +0.054981 +0.054322 +0.049474 +0.055951 +0.067876 +0.070160 +0.070602 +0.070688 +0.070700 +0.070671 +0.070461 +0.069061 +0.059196 +0.057985 +0.071368 +0.074340 +0.074969 +0.075098 +0.075117 +0.075072 +0.074757 +0.072798 +0.061512 +0.058475 +0.072252 +0.075453 +0.076179 +0.076337 +0.076360 +0.076303 +0.075922 +0.073767 +0.062088 +0.058596 +0.072477 +0.075747 +0.076508 +0.076680 +0.076706 +0.076642 +0.076235 +0.074021 +0.062235 +0.058625 +0.072533 +0.075822 +0.076594 +0.076771 +0.076798 +0.076731 +0.076316 +0.074085 +0.062272 +0.058625 +0.072531 +0.075821 +0.076594 +0.076772 +0.076799 +0.076731 +0.076316 +0.074084 +0.062271 +0.058556 +0.072407 +0.075664 +0.076423 +0.076596 +0.076623 +0.076557 +0.076151 +0.073947 +0.062190 +0.057967 +0.071389 +0.074434 +0.075129 +0.075285 +0.075309 +0.075250 +0.074883 +0.072853 +0.061516 +0.052871 +0.063141 +0.065352 +0.065844 +0.065953 +0.065970 +0.065929 +0.065672 +0.064222 +0.055883 +0.047102 +0.053721 +0.054845 +0.055048 +0.055086 +0.055092 +0.055079 +0.054987 +0.054326 +0.049476 +0.055955 +0.067883 +0.070170 +0.070614 +0.070701 +0.070713 +0.070684 +0.070472 +0.069070 +0.059201 +0.057990 +0.071379 +0.074356 +0.074987 +0.075118 +0.075137 +0.075091 +0.074774 +0.072811 +0.061519 +0.058482 +0.072265 +0.075472 +0.076202 +0.076361 +0.076385 +0.076327 +0.075943 +0.073784 +0.062098 +0.058604 +0.072492 +0.075769 +0.076534 +0.076708 +0.076735 +0.076669 +0.076259 +0.074039 +0.062246 +0.058634 +0.072549 +0.075845 +0.076622 +0.076801 +0.076829 +0.076760 +0.076342 +0.074105 +0.062283 +0.058633 +0.072548 +0.075844 +0.076622 +0.076802 +0.076830 +0.076761 +0.076342 +0.074104 +0.062282 +0.058564 +0.072422 +0.075686 +0.076449 +0.076624 +0.076652 +0.076585 +0.076176 +0.073966 +0.062201 +0.057974 +0.071401 +0.074452 +0.075150 +0.075308 +0.075332 +0.075273 +0.074902 +0.072868 +0.061525 +0.052875 +0.063148 +0.065363 +0.065857 +0.065967 +0.065984 +0.065942 +0.065684 +0.064231 +0.055888 +0.047102 +0.053722 +0.054846 +0.055050 +0.055089 +0.055094 +0.055082 +0.054988 +0.054328 +0.049477 +0.055956 +0.067886 +0.070173 +0.070619 +0.070706 +0.070718 +0.070689 +0.070476 +0.069073 +0.059203 +0.057992 +0.071383 +0.074361 +0.074994 +0.075125 +0.075144 +0.075098 +0.074780 +0.072816 +0.061522 +0.058484 +0.072270 +0.075479 +0.076210 +0.076371 +0.076395 +0.076336 +0.075951 +0.073790 +0.062101 +0.058607 +0.072498 +0.075777 +0.076544 +0.076719 +0.076746 +0.076680 +0.076269 +0.074047 +0.062250 +0.058637 +0.072555 +0.075854 +0.076632 +0.076812 +0.076840 +0.076772 +0.076352 +0.074112 +0.062287 +0.058636 +0.072554 +0.075853 +0.076633 +0.076813 +0.076842 +0.076772 +0.076352 +0.074112 +0.062287 +0.058567 +0.072428 +0.075694 +0.076459 +0.076635 +0.076663 +0.076595 +0.076185 +0.073973 +0.062204 +0.057976 +0.071406 +0.074458 +0.075158 +0.075317 +0.075341 +0.075281 +0.074910 +0.072874 +0.061528 +0.052876 +0.063151 +0.065367 +0.065861 +0.065972 +0.065989 +0.065948 +0.065689 +0.064235 +0.055890 diff --git a/test_data/laplace_gs_ones_2.txt b/test_data/laplace_gs_ones_2.txt new file mode 100644 index 00000000..7dfe4ffd --- /dev/null +++ b/test_data/laplace_gs_ones_2.txt @@ -0,0 +1,1000 @@ +0.051271 +0.059265 +0.060287 +0.060386 +0.060394 +0.060394 +0.060394 +0.060382 +0.059917 +0.052337 +0.060162 +0.073288 +0.075287 +0.075519 +0.075541 +0.075543 +0.075542 +0.075490 +0.074334 +0.061809 +0.061874 +0.076174 +0.078679 +0.079010 +0.079047 +0.079050 +0.079046 +0.078945 +0.077370 +0.063703 +0.062174 +0.076707 +0.079336 +0.079712 +0.079758 +0.079762 +0.079756 +0.079624 +0.077944 +0.064046 +0.062223 +0.076797 +0.079451 +0.079839 +0.079888 +0.079893 +0.079885 +0.079745 +0.078043 +0.064104 +0.062231 +0.076811 +0.079470 +0.079860 +0.079910 +0.079915 +0.079907 +0.079765 +0.078059 +0.064113 +0.062232 +0.076813 +0.079473 +0.079864 +0.079914 +0.079919 +0.079910 +0.079768 +0.078061 +0.064115 +0.062232 +0.076814 +0.079473 +0.079864 +0.079914 +0.079920 +0.079911 +0.079768 +0.078062 +0.064115 +0.061903 +0.076263 +0.078833 +0.079211 +0.079260 +0.079265 +0.079256 +0.079117 +0.077480 +0.063746 +0.054077 +0.063906 +0.065723 +0.066004 +0.066042 +0.066046 +0.066039 +0.065927 +0.064691 +0.055208 +0.062514 +0.077152 +0.079798 +0.080175 +0.080218 +0.080223 +0.080218 +0.080088 +0.078284 +0.064169 +0.078512 +0.102667 +0.107615 +0.108418 +0.108523 +0.108534 +0.108517 +0.108178 +0.104548 +0.081156 +0.082297 +0.109107 +0.115264 +0.116366 +0.116525 +0.116543 +0.116508 +0.115986 +0.111322 +0.085324 +0.083120 +0.110573 +0.117087 +0.118327 +0.118520 +0.118542 +0.118493 +0.117873 +0.112901 +0.086261 +0.083285 +0.110875 +0.117476 +0.118756 +0.118963 +0.118988 +0.118931 +0.118281 +0.113233 +0.086455 +0.083316 +0.110932 +0.117551 +0.118842 +0.119053 +0.119078 +0.119019 +0.118362 +0.113297 +0.086492 +0.083321 +0.110943 +0.117565 +0.118857 +0.119070 +0.119095 +0.119036 +0.118377 +0.113309 +0.086498 +0.083254 +0.110825 +0.117421 +0.118705 +0.118916 +0.118941 +0.118882 +0.118228 +0.113182 +0.086421 +0.081627 +0.108072 +0.114182 +0.115372 +0.115569 +0.115594 +0.115537 +0.114923 +0.110263 +0.084587 +0.066963 +0.084665 +0.088774 +0.089596 +0.089737 +0.089755 +0.089711 +0.089266 +0.086045 +0.068764 +0.066017 +0.083132 +0.086944 +0.087646 +0.087754 +0.087767 +0.087740 +0.087384 +0.084538 +0.067958 +0.084698 +0.113274 +0.120355 +0.121792 +0.122035 +0.122064 +0.121992 +0.121201 +0.115658 +0.087861 +0.089892 +0.122180 +0.131038 +0.132985 +0.133341 +0.133386 +0.133266 +0.132132 +0.125043 +0.093576 +0.091205 +0.124532 +0.133985 +0.136177 +0.136601 +0.136656 +0.136502 +0.135188 +0.127576 +0.095069 +0.091513 +0.125097 +0.134717 +0.136991 +0.137444 +0.137505 +0.137335 +0.135959 +0.128199 +0.095429 +0.091580 +0.125223 +0.134883 +0.137179 +0.137643 +0.137705 +0.137529 +0.136136 +0.128339 +0.095509 +0.091583 +0.125229 +0.134893 +0.137192 +0.137657 +0.137720 +0.137543 +0.136147 +0.128347 +0.095513 +0.091321 +0.124762 +0.134316 +0.136576 +0.137033 +0.137095 +0.136921 +0.135550 +0.127842 +0.095209 +0.088642 +0.120183 +0.128858 +0.130895 +0.131309 +0.131365 +0.131204 +0.129962 +0.122983 +0.092207 +0.071312 +0.092172 +0.097875 +0.099229 +0.099512 +0.099550 +0.099436 +0.098589 +0.093915 +0.073469 +0.067199 +0.085244 +0.089594 +0.090522 +0.090695 +0.090718 +0.090655 +0.090124 +0.086790 +0.069273 +0.086898 +0.117214 +0.125317 +0.127194 +0.127570 +0.127620 +0.127473 +0.126338 +0.119866 +0.090310 +0.092745 +0.127304 +0.137511 +0.140052 +0.140596 +0.140670 +0.140444 +0.138842 +0.130524 +0.096759 +0.094378 +0.130239 +0.141213 +0.144086 +0.144731 +0.144821 +0.144541 +0.142690 +0.133691 +0.098615 +0.094805 +0.131027 +0.142238 +0.145232 +0.145924 +0.146021 +0.145715 +0.143771 +0.134559 +0.099115 +0.094908 +0.131220 +0.142495 +0.145526 +0.146234 +0.146335 +0.146019 +0.144047 +0.134777 +0.099239 +0.094893 +0.131194 +0.142464 +0.145496 +0.146205 +0.146306 +0.145990 +0.144017 +0.134749 +0.099222 +0.094469 +0.130434 +0.141515 +0.144471 +0.145162 +0.145260 +0.144951 +0.143030 +0.133924 +0.098731 +0.091283 +0.124941 +0.134899 +0.137522 +0.138134 +0.138221 +0.137945 +0.136236 +0.128079 +0.095155 +0.072903 +0.095038 +0.101517 +0.103230 +0.103635 +0.103692 +0.103505 +0.102370 +0.096980 +0.075238 +0.067617 +0.086012 +0.090592 +0.091637 +0.091856 +0.091885 +0.091795 +0.091170 +0.087626 +0.069750 +0.087704 +0.118696 +0.127246 +0.129355 +0.129822 +0.129887 +0.129684 +0.128363 +0.121479 +0.091230 +0.093833 +0.129308 +0.140126 +0.142988 +0.143660 +0.143755 +0.143450 +0.141591 +0.132709 +0.098003 +0.095629 +0.132548 +0.144231 +0.147481 +0.148279 +0.148394 +0.148021 +0.145866 +0.136212 +0.100049 +0.096133 +0.133479 +0.145449 +0.148848 +0.149707 +0.149832 +0.149424 +0.147153 +0.137241 +0.100639 +0.096262 +0.133722 +0.145773 +0.149220 +0.150100 +0.150229 +0.149809 +0.147501 +0.137514 +0.100794 +0.096231 +0.133667 +0.145706 +0.149150 +0.150031 +0.150161 +0.149739 +0.147433 +0.137455 +0.100758 +0.095718 +0.132744 +0.144543 +0.147886 +0.148737 +0.148862 +0.148455 +0.146221 +0.136450 +0.100165 +0.092308 +0.126836 +0.137384 +0.140326 +0.141072 +0.141181 +0.140823 +0.138854 +0.130150 +0.096328 +0.073511 +0.096163 +0.102994 +0.104898 +0.105384 +0.105455 +0.105218 +0.103925 +0.098208 +0.075933 +0.067770 +0.086297 +0.090971 +0.092071 +0.092314 +0.092348 +0.092243 +0.091574 +0.087942 +0.069928 +0.088004 +0.119260 +0.127997 +0.130215 +0.130732 +0.130806 +0.130573 +0.129163 +0.122104 +0.091582 +0.094251 +0.130092 +0.141173 +0.144190 +0.144933 +0.145040 +0.144692 +0.142707 +0.133580 +0.098493 +0.096123 +0.133476 +0.145474 +0.148909 +0.149794 +0.149924 +0.149498 +0.147192 +0.137245 +0.100629 +0.096668 +0.134486 +0.146798 +0.150401 +0.151354 +0.151496 +0.151030 +0.148594 +0.138362 +0.101269 +0.096812 +0.134758 +0.147162 +0.150820 +0.151799 +0.151946 +0.151465 +0.148986 +0.138669 +0.101442 +0.096773 +0.134687 +0.147075 +0.150728 +0.151707 +0.151854 +0.151373 +0.148897 +0.138594 +0.101397 +0.096219 +0.133686 +0.145807 +0.149343 +0.150285 +0.150427 +0.149964 +0.147572 +0.137501 +0.100753 +0.092713 +0.127598 +0.138407 +0.141506 +0.142326 +0.142449 +0.142045 +0.139947 +0.130999 +0.096803 +0.073749 +0.096612 +0.103597 +0.105595 +0.106125 +0.106203 +0.105938 +0.104570 +0.098708 +0.076212 +0.067826 +0.086405 +0.091117 +0.092240 +0.092495 +0.092531 +0.092419 +0.091731 +0.088063 +0.069996 +0.088118 +0.119475 +0.128290 +0.130557 +0.131098 +0.131176 +0.130929 +0.129479 +0.122348 +0.091717 +0.094412 +0.130399 +0.141591 +0.144678 +0.145456 +0.145570 +0.145201 +0.143158 +0.133927 +0.098686 +0.096319 +0.133848 +0.145980 +0.149502 +0.150430 +0.150568 +0.150116 +0.147740 +0.137666 +0.100864 +0.096884 +0.134896 +0.147357 +0.151056 +0.152058 +0.152209 +0.151714 +0.149200 +0.138828 +0.101528 +0.097036 +0.135184 +0.147743 +0.151501 +0.152531 +0.152688 +0.152177 +0.149616 +0.139153 +0.101711 +0.096993 +0.135107 +0.147648 +0.151400 +0.152429 +0.152586 +0.152075 +0.149518 +0.139070 +0.101662 +0.096420 +0.134070 +0.146332 +0.149959 +0.150947 +0.151098 +0.150607 +0.148141 +0.137937 +0.100996 +0.092874 +0.127906 +0.138828 +0.142001 +0.142858 +0.142988 +0.142561 +0.140404 +0.131349 +0.096998 +0.073844 +0.096793 +0.103844 +0.105885 +0.106437 +0.106520 +0.106242 +0.104837 +0.098912 +0.076325 +0.067847 +0.086445 +0.091173 +0.092306 +0.092567 +0.092604 +0.092489 +0.091792 +0.088110 +0.070022 +0.088161 +0.119558 +0.128404 +0.130692 +0.131244 +0.131325 +0.131071 +0.129604 +0.122444 +0.091770 +0.094475 +0.130519 +0.141757 +0.144874 +0.145668 +0.145786 +0.145407 +0.143340 +0.134066 +0.098763 +0.096396 +0.133997 +0.146186 +0.149745 +0.150693 +0.150836 +0.150372 +0.147965 +0.137838 +0.100958 +0.096970 +0.135063 +0.147587 +0.151329 +0.152354 +0.152510 +0.152002 +0.149453 +0.139020 +0.101634 +0.097126 +0.135358 +0.147985 +0.151788 +0.152842 +0.153004 +0.152478 +0.149881 +0.139355 +0.101822 +0.097082 +0.135279 +0.147886 +0.151682 +0.152736 +0.152898 +0.152373 +0.149779 +0.139269 +0.101771 +0.096501 +0.134227 +0.146549 +0.150217 +0.151227 +0.151383 +0.150879 +0.148380 +0.138118 +0.101096 +0.092939 +0.128031 +0.139001 +0.142207 +0.143082 +0.143215 +0.142778 +0.140594 +0.131493 +0.097077 +0.073882 +0.096866 +0.103945 +0.106005 +0.106568 +0.106653 +0.106369 +0.104949 +0.098997 +0.076372 +0.067855 +0.086461 +0.091194 +0.092332 +0.092595 +0.092633 +0.092516 +0.091816 +0.088128 +0.070032 +0.088177 +0.119590 +0.128449 +0.130745 +0.131303 +0.131384 +0.131127 +0.129653 +0.122481 +0.091791 +0.094499 +0.130566 +0.141823 +0.144953 +0.145754 +0.145874 +0.145491 +0.143413 +0.134121 +0.098793 +0.096426 +0.134056 +0.146268 +0.149844 +0.150801 +0.150946 +0.150477 +0.148057 +0.137907 +0.100997 +0.097005 +0.135130 +0.147681 +0.151441 +0.152477 +0.152635 +0.152121 +0.149557 +0.139099 +0.101677 +0.097163 +0.135429 +0.148084 +0.151907 +0.152972 +0.153137 +0.152605 +0.149991 +0.139438 +0.101868 +0.097118 +0.135349 +0.147984 +0.151800 +0.152864 +0.153029 +0.152498 +0.149888 +0.139352 +0.101817 +0.096534 +0.134291 +0.146638 +0.150324 +0.151345 +0.151502 +0.150993 +0.148479 +0.138194 +0.101137 +0.092965 +0.128082 +0.139072 +0.142292 +0.143175 +0.143311 +0.142869 +0.140673 +0.131553 +0.097110 +0.073897 +0.096895 +0.103987 +0.106055 +0.106622 +0.106709 +0.106422 +0.104995 +0.099032 +0.076391 +0.059217 +0.072685 +0.076353 +0.077291 +0.077516 +0.077549 +0.077444 +0.076836 +0.073806 +0.060558 +0.073704 +0.096326 +0.103082 +0.104945 +0.105417 +0.105487 +0.105259 +0.103995 +0.098221 +0.075856 +0.078288 +0.104302 +0.112842 +0.115362 +0.116036 +0.116137 +0.115799 +0.114034 +0.106642 +0.080873 +0.079756 +0.106962 +0.116241 +0.119113 +0.119915 +0.120036 +0.119624 +0.117582 +0.109516 +0.082535 +0.080216 +0.107817 +0.117368 +0.120390 +0.121256 +0.121389 +0.120938 +0.118777 +0.110462 +0.083073 +0.080345 +0.108061 +0.117697 +0.120770 +0.121661 +0.121799 +0.121334 +0.119131 +0.110737 +0.083228 +0.080302 +0.107982 +0.117597 +0.120663 +0.121553 +0.121691 +0.121226 +0.119028 +0.110651 +0.083177 +0.079786 +0.107048 +0.116408 +0.119357 +0.120207 +0.120338 +0.119894 +0.117782 +0.109629 +0.082578 +0.076805 +0.101856 +0.110071 +0.112618 +0.113347 +0.113459 +0.113075 +0.111244 +0.104082 +0.079224 +0.062833 +0.078917 +0.084066 +0.085665 +0.086125 +0.086195 +0.085948 +0.084774 +0.080191 +0.064138 diff --git a/test_data/laplace_jacobi_inc_1.txt b/test_data/laplace_jacobi_inc_1.txt new file mode 100644 index 00000000..1c3d8de7 --- /dev/null +++ b/test_data/laplace_jacobi_inc_1.txt @@ -0,0 +1,1000 @@ +0.000000 +0.028846 +0.057692 +0.086538 +0.115385 +0.144231 +0.173077 +0.201923 +0.230769 +0.259615 +0.288462 +0.317308 +0.346154 +0.375000 +0.403846 +0.432692 +0.461538 +0.490385 +0.519231 +0.548077 +0.576923 +0.605769 +0.634615 +0.663462 +0.692308 +0.721154 +0.750000 +0.778846 +0.807692 +0.836538 +0.865385 +0.894231 +0.923077 +0.951923 +0.980769 +1.009615 +1.038462 +1.067308 +1.096154 +1.125000 +1.153846 +1.182692 +1.211538 +1.240385 +1.269231 +1.298077 +1.326923 +1.355769 +1.384615 +1.413462 +1.442308 +1.471154 +1.500000 +1.528846 +1.557692 +1.586538 +1.615385 +1.644231 +1.673077 +1.701923 +1.730769 +1.759615 +1.788462 +1.817308 +1.846154 +1.875000 +1.903846 +1.932692 +1.961538 +1.990385 +2.019231 +2.048077 +2.076923 +2.105769 +2.134615 +2.163462 +2.192308 +2.221154 +2.250000 +2.278846 +2.307692 +2.336538 +2.365385 +2.394231 +2.423077 +2.451923 +2.480769 +2.509615 +2.538462 +2.567308 +2.596154 +2.625000 +2.653846 +2.682692 +2.711538 +2.740385 +2.769231 +2.798077 +2.826923 +2.855769 +2.884615 +2.913462 +2.942308 +2.971154 +3.000000 +3.028846 +3.057692 +3.086538 +3.115385 +3.144231 +3.173077 +3.201923 +3.230769 +3.259615 +3.288462 +3.317308 +3.346154 +3.375000 +3.403846 +3.432692 +3.461538 +3.490385 +3.519231 +3.548077 +3.576923 +3.605769 +3.634615 +3.663462 +3.692308 +3.721154 +3.750000 +3.778846 +3.807692 +3.836538 +3.865385 +3.894231 +3.923077 +3.951923 +3.980769 +4.009615 +4.038462 +4.067308 +4.096154 +4.125000 +4.153846 +4.182692 +4.211538 +4.240385 +4.269231 +4.298077 +4.326923 +4.355769 +4.384615 +4.413462 +4.442308 +4.471154 +4.500000 +4.528846 +4.557692 +4.586538 +4.615385 +4.644231 +4.673077 +4.701923 +4.730769 +4.759615 +4.788462 +4.817308 +4.846154 +4.875000 +4.903846 +4.932692 +4.961538 +4.990385 +5.019231 +5.048077 +5.076923 +5.105769 +5.134615 +5.163462 +5.192308 +5.221154 +5.250000 +5.278846 +5.307692 +5.336538 +5.365385 +5.394231 +5.423077 +5.451923 +5.480769 +5.509615 +5.538462 +5.567308 +5.596154 +5.625000 +5.653846 +5.682692 +5.711538 +5.740385 +5.769231 +5.798077 +5.826923 +5.855769 +5.884615 +5.913462 +5.942308 +5.971154 +6.000000 +6.028846 +6.057692 +6.086538 +6.115385 +6.144231 +6.173077 +6.201923 +6.230769 +6.259615 +6.288462 +6.317308 +6.346154 +6.375000 +6.403846 +6.432692 +6.461538 +6.490385 +6.519231 +6.548077 +6.576923 +6.605769 +6.634615 +6.663462 +6.692308 +6.721154 +6.750000 +6.778846 +6.807692 +6.836538 +6.865385 +6.894231 +6.923077 +6.951923 +6.980769 +7.009615 +7.038462 +7.067308 +7.096154 +7.125000 +7.153846 +7.182692 +7.211538 +7.240385 +7.269231 +7.298077 +7.326923 +7.355769 +7.384615 +7.413462 +7.442308 +7.471154 +7.500000 +7.528846 +7.557692 +7.586538 +7.615385 +7.644231 +7.673077 +7.701923 +7.730769 +7.759615 +7.788462 +7.817308 +7.846154 +7.875000 +7.903846 +7.932692 +7.961538 +7.990385 +8.019231 +8.048077 +8.076923 +8.105769 +8.134615 +8.163462 +8.192308 +8.221154 +8.250000 +8.278846 +8.307692 +8.336538 +8.365385 +8.394231 +8.423077 +8.451923 +8.480769 +8.509615 +8.538462 +8.567308 +8.596154 +8.625000 +8.653846 +8.682692 +8.711538 +8.740385 +8.769231 +8.798077 +8.826923 +8.855769 +8.884615 +8.913462 +8.942308 +8.971154 +9.000000 +9.028846 +9.057692 +9.086538 +9.115385 +9.144231 +9.173077 +9.201923 +9.230769 +9.259615 +9.288462 +9.317308 +9.346154 +9.375000 +9.403846 +9.432692 +9.461538 +9.490385 +9.519231 +9.548077 +9.576923 +9.605769 +9.634615 +9.663462 +9.692308 +9.721154 +9.750000 +9.778846 +9.807692 +9.836538 +9.865385 +9.894231 +9.923077 +9.951923 +9.980769 +10.009615 +10.038462 +10.067308 +10.096154 +10.125000 +10.153846 +10.182692 +10.211538 +10.240385 +10.269231 +10.298077 +10.326923 +10.355769 +10.384615 +10.413462 +10.442308 +10.471154 +10.500000 +10.528846 +10.557692 +10.586538 +10.615385 +10.644231 +10.673077 +10.701923 +10.730769 +10.759615 +10.788462 +10.817308 +10.846154 +10.875000 +10.903846 +10.932692 +10.961538 +10.990385 +11.019231 +11.048077 +11.076923 +11.105769 +11.134615 +11.163462 +11.192308 +11.221154 +11.250000 +11.278846 +11.307692 +11.336538 +11.365385 +11.394231 +11.423077 +11.451923 +11.480769 +11.509615 +11.538462 +11.567308 +11.596154 +11.625000 +11.653846 +11.682692 +11.711538 +11.740385 +11.769231 +11.798077 +11.826923 +11.855769 +11.884615 +11.913462 +11.942308 +11.971154 +12.000000 +12.028846 +12.057692 +12.086538 +12.115385 +12.144231 +12.173077 +12.201923 +12.230769 +12.259615 +12.288462 +12.317308 +12.346154 +12.375000 +12.403846 +12.432692 +12.461538 +12.490385 +12.519231 +12.548077 +12.576923 +12.605769 +12.634615 +12.663462 +12.692308 +12.721154 +12.750000 +12.778846 +12.807692 +12.836538 +12.865385 +12.894231 +12.923077 +12.951923 +12.980769 +13.009615 +13.038462 +13.067308 +13.096154 +13.125000 +13.153846 +13.182692 +13.211538 +13.240385 +13.269231 +13.298077 +13.326923 +13.355769 +13.384615 +13.413462 +13.442308 +13.471154 +13.500000 +13.528846 +13.557692 +13.586538 +13.615385 +13.644231 +13.673077 +13.701923 +13.730769 +13.759615 +13.788462 +13.817308 +13.846154 +13.875000 +13.903846 +13.932692 +13.961538 +13.990385 +14.019231 +14.048077 +14.076923 +14.105769 +14.134615 +14.163462 +14.192308 +14.221154 +14.250000 +14.278846 +14.307692 +14.336538 +14.365385 +14.394231 +14.423077 +14.451923 +14.480769 +14.509615 +14.538462 +14.567308 +14.596154 +14.625000 +14.653846 +14.682692 +14.711538 +14.740385 +14.769231 +14.798077 +14.826923 +14.855769 +14.884615 +14.913462 +14.942308 +14.971154 +15.000000 +15.028846 +15.057692 +15.086538 +15.115385 +15.144231 +15.173077 +15.201923 +15.230769 +15.259615 +15.288462 +15.317308 +15.346154 +15.375000 +15.403846 +15.432692 +15.461538 +15.490385 +15.519231 +15.548077 +15.576923 +15.605769 +15.634615 +15.663462 +15.692308 +15.721154 +15.750000 +15.778846 +15.807692 +15.836538 +15.865385 +15.894231 +15.923077 +15.951923 +15.980769 +16.009615 +16.038462 +16.067308 +16.096154 +16.125000 +16.153846 +16.182692 +16.211538 +16.240385 +16.269231 +16.298077 +16.326923 +16.355769 +16.384615 +16.413462 +16.442308 +16.471154 +16.500000 +16.528846 +16.557692 +16.586538 +16.615385 +16.644231 +16.673077 +16.701923 +16.730769 +16.759615 +16.788462 +16.817308 +16.846154 +16.875000 +16.903846 +16.932692 +16.961538 +16.990385 +17.019231 +17.048077 +17.076923 +17.105769 +17.134615 +17.163462 +17.192308 +17.221154 +17.250000 +17.278846 +17.307692 +17.336538 +17.365385 +17.394231 +17.423077 +17.451923 +17.480769 +17.509615 +17.538462 +17.567308 +17.596154 +17.625000 +17.653846 +17.682692 +17.711538 +17.740385 +17.769231 +17.798077 +17.826923 +17.855769 +17.884615 +17.913462 +17.942308 +17.971154 +18.000000 +18.028846 +18.057692 +18.086538 +18.115385 +18.144231 +18.173077 +18.201923 +18.230769 +18.259615 +18.288462 +18.317308 +18.346154 +18.375000 +18.403846 +18.432692 +18.461538 +18.490385 +18.519231 +18.548077 +18.576923 +18.605769 +18.634615 +18.663462 +18.692308 +18.721154 +18.750000 +18.778846 +18.807692 +18.836538 +18.865385 +18.894231 +18.923077 +18.951923 +18.980769 +19.009615 +19.038462 +19.067308 +19.096154 +19.125000 +19.153846 +19.182692 +19.211538 +19.240385 +19.269231 +19.298077 +19.326923 +19.355769 +19.384615 +19.413462 +19.442308 +19.471154 +19.500000 +19.528846 +19.557692 +19.586538 +19.615385 +19.644231 +19.673077 +19.701923 +19.730769 +19.759615 +19.788462 +19.817308 +19.846154 +19.875000 +19.903846 +19.932692 +19.961538 +19.990385 +20.019231 +20.048077 +20.076923 +20.105769 +20.134615 +20.163462 +20.192308 +20.221154 +20.250000 +20.278846 +20.307692 +20.336538 +20.365385 +20.394231 +20.423077 +20.451923 +20.480769 +20.509615 +20.538462 +20.567308 +20.596154 +20.625000 +20.653846 +20.682692 +20.711538 +20.740385 +20.769231 +20.798077 +20.826923 +20.855769 +20.884615 +20.913462 +20.942308 +20.971154 +21.000000 +21.028846 +21.057692 +21.086538 +21.115385 +21.144231 +21.173077 +21.201923 +21.230769 +21.259615 +21.288462 +21.317308 +21.346154 +21.375000 +21.403846 +21.432692 +21.461538 +21.490385 +21.519231 +21.548077 +21.576923 +21.605769 +21.634615 +21.663462 +21.692308 +21.721154 +21.750000 +21.778846 +21.807692 +21.836538 +21.865385 +21.894231 +21.923077 +21.951923 +21.980769 +22.009615 +22.038462 +22.067308 +22.096154 +22.125000 +22.153846 +22.182692 +22.211538 +22.240385 +22.269231 +22.298077 +22.326923 +22.355769 +22.384615 +22.413462 +22.442308 +22.471154 +22.500000 +22.528846 +22.557692 +22.586538 +22.615385 +22.644231 +22.673077 +22.701923 +22.730769 +22.759615 +22.788462 +22.817308 +22.846154 +22.875000 +22.903846 +22.932692 +22.961538 +22.990385 +23.019231 +23.048077 +23.076923 +23.105769 +23.134615 +23.163462 +23.192308 +23.221154 +23.250000 +23.278846 +23.307692 +23.336538 +23.365385 +23.394231 +23.423077 +23.451923 +23.480769 +23.509615 +23.538462 +23.567308 +23.596154 +23.625000 +23.653846 +23.682692 +23.711538 +23.740385 +23.769231 +23.798077 +23.826923 +23.855769 +23.884615 +23.913462 +23.942308 +23.971154 +24.000000 +24.028846 +24.057692 +24.086538 +24.115385 +24.144231 +24.173077 +24.201923 +24.230769 +24.259615 +24.288462 +24.317308 +24.346154 +24.375000 +24.403846 +24.432692 +24.461538 +24.490385 +24.519231 +24.548077 +24.576923 +24.605769 +24.634615 +24.663462 +24.692308 +24.721154 +24.750000 +24.778846 +24.807692 +24.836538 +24.865385 +24.894231 +24.923077 +24.951923 +24.980769 +25.009615 +25.038462 +25.067308 +25.096154 +25.125000 +25.153846 +25.182692 +25.211538 +25.240385 +25.269231 +25.298077 +25.326923 +25.355769 +25.384615 +25.413462 +25.442308 +25.471154 +25.500000 +25.528846 +25.557692 +25.586538 +25.615385 +25.644231 +25.673077 +25.701923 +25.730769 +25.759615 +25.788462 +25.817308 +25.846154 +25.875000 +25.903846 +25.932692 +25.961538 +25.990385 +26.019231 +26.048077 +26.076923 +26.105769 +26.134615 +26.163462 +26.192308 +26.221154 +26.250000 +26.278846 +26.307692 +26.336538 +26.365385 +26.394231 +26.423077 +26.451923 +26.480769 +26.509615 +26.538462 +26.567308 +26.596154 +26.625000 +26.653846 +26.682692 +26.711538 +26.740385 +26.769231 +26.798077 +26.826923 +26.855769 +26.884615 +26.913462 +26.942308 +26.971154 +27.000000 +27.028846 +27.057692 +27.086538 +27.115385 +27.144231 +27.173077 +27.201923 +27.230769 +27.259615 +27.288462 +27.317308 +27.346154 +27.375000 +27.403846 +27.432692 +27.461538 +27.490385 +27.519231 +27.548077 +27.576923 +27.605769 +27.634615 +27.663462 +27.692308 +27.721154 +27.750000 +27.778846 +27.807692 +27.836538 +27.865385 +27.894231 +27.923077 +27.951923 +27.980769 +28.009615 +28.038462 +28.067308 +28.096154 +28.125000 +28.153846 +28.182692 +28.211538 +28.240385 +28.269231 +28.298077 +28.326923 +28.355769 +28.384615 +28.413462 +28.442308 +28.471154 +28.500000 +28.528846 +28.557692 +28.586538 +28.615385 +28.644231 +28.673077 +28.701923 +28.730769 +28.759615 +28.788462 +28.817308 diff --git a/test_data/laplace_jacobi_inc_2.txt b/test_data/laplace_jacobi_inc_2.txt new file mode 100644 index 00000000..b47c75e2 --- /dev/null +++ b/test_data/laplace_jacobi_inc_2.txt @@ -0,0 +1,1000 @@ +0.369453 +0.594397 +0.639608 +0.684819 +0.730030 +0.775240 +0.820451 +0.865662 +0.910873 +0.739737 +0.956361 +1.301128 +1.351331 +1.401535 +1.451738 +1.501942 +1.552145 +1.602348 +1.652552 +1.353273 +1.408469 +1.803162 +1.853365 +1.903569 +1.953772 +2.003976 +2.054179 +2.104382 +2.154586 +1.805381 +1.860577 +2.305196 +2.355399 +2.405603 +2.455806 +2.506010 +2.556213 +2.606416 +2.656620 +2.257489 +2.312685 +2.807230 +2.857433 +2.907637 +2.957840 +3.008044 +3.058247 +3.108450 +3.158654 +2.709597 +2.764793 +3.309264 +3.359467 +3.409671 +3.459874 +3.510078 +3.560281 +3.610484 +3.660688 +3.161705 +3.216901 +3.811298 +3.861501 +3.911705 +3.961908 +4.012112 +4.062315 +4.112518 +4.162722 +3.613813 +3.669009 +4.313332 +4.363536 +4.413739 +4.463942 +4.514146 +4.564349 +4.614553 +4.664756 +4.065921 +4.121117 +4.815366 +4.865570 +4.915773 +4.965976 +5.016180 +5.066383 +5.116587 +5.166790 +4.518029 +4.072300 +4.563517 +4.608728 +4.653939 +4.699149 +4.744360 +4.789571 +4.834782 +4.879993 +4.442585 +4.575999 +5.145433 +5.195636 +5.245839 +5.296043 +5.346246 +5.396450 +5.446653 +5.496857 +4.972911 +5.529863 +6.403846 +6.461538 +6.519231 +6.576923 +6.634615 +6.692308 +6.750000 +6.807692 +5.966716 +6.031897 +6.980769 +7.038462 +7.096154 +7.153846 +7.211538 +7.269231 +7.326923 +7.384615 +6.468750 +6.533931 +7.557692 +7.615385 +7.673077 +7.730769 +7.788462 +7.846154 +7.903846 +7.961538 +6.970784 +7.035965 +8.134615 +8.192308 +8.250000 +8.307692 +8.365385 +8.423077 +8.480769 +8.538462 +7.472818 +7.537999 +8.711538 +8.769231 +8.826923 +8.884615 +8.942308 +9.000000 +9.057692 +9.115385 +7.974852 +8.040033 +9.288462 +9.346154 +9.403846 +9.461538 +9.519231 +9.576923 +9.634615 +9.692308 +8.476886 +8.542067 +9.865385 +9.923077 +9.980769 +10.038462 +10.096154 +10.153846 +10.211538 +10.269231 +8.978920 +9.044101 +10.442308 +10.500000 +10.557692 +10.615385 +10.673077 +10.730769 +10.788462 +10.846154 +9.480954 +8.545118 +9.513961 +9.564164 +9.614368 +9.664571 +9.714774 +9.764978 +9.815181 +9.865385 +8.942030 +9.097078 +10.165773 +10.215976 +10.266180 +10.316383 +10.366587 +10.416790 +10.466993 +10.517197 +9.493990 +10.550203 +12.173077 +12.230769 +12.288462 +12.346154 +12.403846 +12.461538 +12.519231 +12.576923 +10.987056 +11.052237 +12.750000 +12.807692 +12.865385 +12.923077 +12.980769 +13.038462 +13.096154 +13.153846 +11.489090 +11.554271 +13.326923 +13.384615 +13.442308 +13.500000 +13.557692 +13.615385 +13.673077 +13.730769 +11.991124 +12.056305 +13.903846 +13.961538 +14.019231 +14.076923 +14.134615 +14.192308 +14.250000 +14.307692 +12.493158 +12.558339 +14.480769 +14.538462 +14.596154 +14.653846 +14.711538 +14.769231 +14.826923 +14.884615 +12.995192 +13.060374 +15.057692 +15.115385 +15.173077 +15.230769 +15.288462 +15.346154 +15.403846 +15.461538 +13.497226 +13.562408 +15.634615 +15.692308 +15.750000 +15.807692 +15.865385 +15.923077 +15.980769 +16.038462 +13.999260 +14.064442 +16.211538 +16.269231 +16.326923 +16.384615 +16.442308 +16.500000 +16.557692 +16.615385 +14.501294 +13.066198 +14.534301 +14.584504 +14.634708 +14.684911 +14.735115 +14.785318 +14.835521 +14.885725 +13.463110 +13.618158 +15.186113 +15.236317 +15.286520 +15.336723 +15.386927 +15.437130 +15.487334 +15.537537 +14.015070 +15.570544 +17.942308 +18.000000 +18.057692 +18.115385 +18.173077 +18.230769 +18.288462 +18.346154 +16.007396 +16.072578 +18.519231 +18.576923 +18.634615 +18.692308 +18.750000 +18.807692 +18.865385 +18.923077 +16.509430 +16.574612 +19.096154 +19.153846 +19.211538 +19.269231 +19.326923 +19.384615 +19.442308 +19.500000 +17.011464 +17.076646 +19.673077 +19.730769 +19.788462 +19.846154 +19.903846 +19.961538 +20.019231 +20.076923 +17.513499 +17.578680 +20.250000 +20.307692 +20.365385 +20.423077 +20.480769 +20.538462 +20.596154 +20.653846 +18.015533 +18.080714 +20.826923 +20.884615 +20.942308 +21.000000 +21.057692 +21.115385 +21.173077 +21.230769 +18.517567 +18.582748 +21.403846 +21.461538 +21.519231 +21.576923 +21.634615 +21.692308 +21.750000 +21.807692 +19.019601 +19.084782 +21.980769 +22.038462 +22.096154 +22.153846 +22.211538 +22.269231 +22.326923 +22.384615 +19.521635 +17.587278 +19.554641 +19.604845 +19.655048 +19.705251 +19.755455 +19.805658 +19.855862 +19.906065 +17.984190 +18.139238 +20.206453 +20.256657 +20.306860 +20.357064 +20.407267 +20.457470 +20.507674 +20.557877 +18.536150 +20.590884 +23.711538 +23.769231 +23.826923 +23.884615 +23.942308 +24.000000 +24.057692 +24.115385 +21.027737 +21.092918 +24.288462 +24.346154 +24.403846 +24.461538 +24.519231 +24.576923 +24.634615 +24.692308 +21.529771 +21.594952 +24.865385 +24.923077 +24.980769 +25.038462 +25.096154 +25.153846 +25.211538 +25.269231 +22.031805 +22.096986 +25.442308 +25.500000 +25.557692 +25.615385 +25.673077 +25.730769 +25.788462 +25.846154 +22.533839 +22.599020 +26.019231 +26.076923 +26.134615 +26.192308 +26.250000 +26.307692 +26.365385 +26.423077 +23.035873 +23.101054 +26.596154 +26.653846 +26.711538 +26.769231 +26.826923 +26.884615 +26.942308 +27.000000 +23.537907 +23.603088 +27.173077 +27.230769 +27.288462 +27.346154 +27.403846 +27.461538 +27.519231 +27.576923 +24.039941 +24.105122 +27.750000 +27.807692 +27.865385 +27.923077 +27.980769 +28.038462 +28.096154 +28.153846 +24.541975 +22.108358 +24.574982 +24.625185 +24.675388 +24.725592 +24.775795 +24.825999 +24.876202 +24.926405 +22.505270 +22.660318 +25.226794 +25.276997 +25.327200 +25.377404 +25.427607 +25.477811 +25.528014 +25.578217 +23.057230 +25.611224 +29.480769 +29.538462 +29.596154 +29.653846 +29.711538 +29.769231 +29.826923 +29.884615 +26.048077 +26.113258 +30.057692 +30.115385 +30.173077 +30.230769 +30.288462 +30.346154 +30.403846 +30.461538 +26.550111 +26.615292 +30.634615 +30.692308 +30.750000 +30.807692 +30.865385 +30.923077 +30.980769 +31.038462 +27.052145 +27.117326 +31.211538 +31.269231 +31.326923 +31.384615 +31.442308 +31.500000 +31.557692 +31.615385 +27.554179 +27.619360 +31.788462 +31.846154 +31.903846 +31.961538 +32.019231 +32.076923 +32.134615 +32.192308 +28.056213 +28.121394 +32.365385 +32.423077 +32.480769 +32.538462 +32.596154 +32.653846 +32.711538 +32.769231 +28.558247 +28.623428 +32.942308 +33.000000 +33.057692 +33.115385 +33.173077 +33.230769 +33.288462 +33.346154 +29.060281 +29.125462 +33.519231 +33.576923 +33.634615 +33.692308 +33.750000 +33.807692 +33.865385 +33.923077 +29.562315 +26.629438 +29.595322 +29.645525 +29.695729 +29.745932 +29.796135 +29.846339 +29.896542 +29.946746 +27.026350 +27.181398 +30.247134 +30.297337 +30.347541 +30.397744 +30.447947 +30.498151 +30.548354 +30.598558 +27.578310 +30.631564 +35.250000 +35.307692 +35.365385 +35.423077 +35.480769 +35.538462 +35.596154 +35.653846 +31.068417 +31.133598 +35.826923 +35.884615 +35.942308 +36.000000 +36.057692 +36.115385 +36.173077 +36.230769 +31.570451 +31.635632 +36.403846 +36.461538 +36.519231 +36.576923 +36.634615 +36.692308 +36.750000 +36.807692 +32.072485 +32.137666 +36.980769 +37.038462 +37.096154 +37.153846 +37.211538 +37.269231 +37.326923 +37.384615 +32.574519 +32.639700 +37.557692 +37.615385 +37.673077 +37.730769 +37.788462 +37.846154 +37.903846 +37.961538 +33.076553 +33.141734 +38.134615 +38.192308 +38.250000 +38.307692 +38.365385 +38.423077 +38.480769 +38.538462 +33.578587 +33.643768 +38.711538 +38.769231 +38.826923 +38.884615 +38.942308 +39.000000 +39.057692 +39.115385 +34.080621 +34.145803 +39.288462 +39.346154 +39.403846 +39.461538 +39.519231 +39.576923 +39.634615 +39.692308 +34.582655 +31.150518 +34.615662 +34.665865 +34.716069 +34.766272 +34.816476 +34.866679 +34.916882 +34.967086 +31.547430 +31.702478 +35.267474 +35.317678 +35.367881 +35.418084 +35.468288 +35.518491 +35.568695 +35.618898 +32.099390 +35.651905 +41.019231 +41.076923 +41.134615 +41.192308 +41.250000 +41.307692 +41.365385 +41.423077 +36.088757 +36.153939 +41.596154 +41.653846 +41.711538 +41.769231 +41.826923 +41.884615 +41.942308 +42.000000 +36.590791 +36.655973 +42.173077 +42.230769 +42.288462 +42.346154 +42.403846 +42.461538 +42.519231 +42.576923 +37.092825 +37.158007 +42.750000 +42.807692 +42.865385 +42.923077 +42.980769 +43.038462 +43.096154 +43.153846 +37.594859 +37.660041 +43.326923 +43.384615 +43.442308 +43.500000 +43.557692 +43.615385 +43.673077 +43.730769 +38.096893 +38.162075 +43.903846 +43.961538 +44.019231 +44.076923 +44.134615 +44.192308 +44.250000 +44.307692 +38.598928 +38.664109 +44.480769 +44.538462 +44.596154 +44.653846 +44.711538 +44.769231 +44.826923 +44.884615 +39.100962 +39.166143 +45.057692 +45.115385 +45.173077 +45.230769 +45.288462 +45.346154 +45.403846 +45.461538 +39.602996 +35.671598 +39.636002 +39.686206 +39.736409 +39.786612 +39.836816 +39.887019 +39.937223 +39.987426 +36.068510 +36.223558 +40.287814 +40.338018 +40.388221 +40.438425 +40.488628 +40.538831 +40.589035 +40.639238 +36.620470 +40.672245 +46.788462 +46.846154 +46.903846 +46.961538 +47.019231 +47.076923 +47.134615 +47.192308 +41.109098 +41.174279 +47.365385 +47.423077 +47.480769 +47.538462 +47.596154 +47.653846 +47.711538 +47.769231 +41.611132 +41.676313 +47.942308 +48.000000 +48.057692 +48.115385 +48.173077 +48.230769 +48.288462 +48.346154 +42.113166 +42.178347 +48.519231 +48.576923 +48.634615 +48.692308 +48.750000 +48.807692 +48.865385 +48.923077 +42.615200 +42.680381 +49.096154 +49.153846 +49.211538 +49.269231 +49.326923 +49.384615 +49.442308 +49.500000 +43.117234 +43.182415 +49.673077 +49.730769 +49.788462 +49.846154 +49.903846 +49.961538 +50.019231 +50.076923 +43.619268 +43.684449 +50.250000 +50.307692 +50.365385 +50.423077 +50.480769 +50.538462 +50.596154 +50.653846 +44.121302 +44.186483 +50.826923 +50.884615 +50.942308 +51.000000 +51.057692 +51.115385 +51.173077 +51.230769 +44.623336 +40.192678 +44.656342 +44.706546 +44.756749 +44.806953 +44.857156 +44.907359 +44.957563 +45.007766 +40.589589 +37.397929 +40.285595 +40.330806 +40.376017 +40.421228 +40.466439 +40.511649 +40.556860 +40.602071 +37.768214 +40.647559 +44.986409 +45.036612 +45.086816 +45.137019 +45.187223 +45.237426 +45.287629 +45.337833 +41.044471 +41.099667 +45.488443 +45.538646 +45.588850 +45.639053 +45.689257 +45.739460 +45.789663 +45.839867 +41.496579 +41.551775 +45.990477 +46.040680 +46.090884 +46.141087 +46.191291 +46.241494 +46.291697 +46.341901 +41.948687 +42.003883 +46.492511 +46.542714 +46.592918 +46.643121 +46.693325 +46.743528 +46.793732 +46.843935 +42.400795 +42.455991 +46.994545 +47.044749 +47.094952 +47.145155 +47.195359 +47.245562 +47.295766 +47.345969 +42.852903 +42.908099 +47.496579 +47.546783 +47.596986 +47.647189 +47.697393 +47.747596 +47.797800 +47.848003 +43.305011 +43.360207 +47.998613 +48.048817 +48.099020 +48.149223 +48.199427 +48.249630 +48.299834 +48.350037 +43.757119 +43.812315 +48.500647 +48.550851 +48.601054 +48.651257 +48.701461 +48.751664 +48.801868 +48.852071 +44.209227 +41.100777 +44.254715 +44.299926 +44.345137 +44.390348 +44.435558 +44.480769 +44.525980 +44.571191 +41.471061 diff --git a/test_data/laplace_jacobi_ones_1.txt b/test_data/laplace_jacobi_ones_1.txt new file mode 100644 index 00000000..93889897 --- /dev/null +++ b/test_data/laplace_jacobi_ones_1.txt @@ -0,0 +1,1000 @@ +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 +0.028846 diff --git a/test_data/laplace_jacobi_ones_2.txt b/test_data/laplace_jacobi_ones_2.txt new file mode 100644 index 00000000..b5d17b04 --- /dev/null +++ b/test_data/laplace_jacobi_ones_2.txt @@ -0,0 +1,1000 @@ +0.041882 +0.045211 +0.045211 +0.045211 +0.045211 +0.045211 +0.045211 +0.045211 +0.045211 +0.041882 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.041882 +0.045211 +0.045211 +0.045211 +0.045211 +0.045211 +0.045211 +0.045211 +0.045211 +0.041882 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.050203 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.057692 +0.050203 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.041882 +0.045211 +0.045211 +0.045211 +0.045211 +0.045211 +0.045211 +0.045211 +0.045211 +0.041882 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.045211 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.050203 +0.045211 +0.041882 +0.045211 +0.045211 +0.045211 +0.045211 +0.045211 +0.045211 +0.045211 +0.045211 +0.041882 diff --git a/test_data/laplace_sor_inc_1.txt b/test_data/laplace_sor_inc_1.txt new file mode 100644 index 00000000..65fbb196 --- /dev/null +++ b/test_data/laplace_sor_inc_1.txt @@ -0,0 +1,1000 @@ +0.000000 +0.028846 +0.058802 +0.088800 +0.118800 +0.148800 +0.178800 +0.208800 +0.238800 +0.268800 +0.289571 +0.331816 +0.365702 +0.399312 +0.432912 +0.466512 +0.500112 +0.533712 +0.567312 +0.589420 +0.600823 +0.666843 +0.702449 +0.736553 +0.770588 +0.804620 +0.838652 +0.872684 +0.906274 +0.915885 +0.914141 +1.005164 +1.042731 +1.077012 +1.111107 +1.145191 +1.179275 +1.213342 +1.246469 +1.243024 +1.227666 +1.343835 +1.383413 +1.417856 +1.451968 +1.486059 +1.520149 +1.554201 +1.586809 +1.570242 +1.541212 +1.682543 +1.724140 +1.758745 +1.792870 +1.826963 +1.861053 +1.895085 +1.927167 +1.897470 +1.854760 +2.021256 +2.064872 +2.099640 +2.133778 +2.167872 +2.201960 +2.235972 +2.267527 +2.224699 +2.168308 +2.359969 +2.405605 +2.440534 +2.474686 +2.508781 +2.542869 +2.576859 +2.607887 +2.551927 +2.481857 +2.698682 +2.746338 +2.781429 +2.815593 +2.849690 +2.883777 +2.917746 +2.948247 +2.879156 +2.795405 +3.037395 +3.087071 +3.122324 +3.156501 +3.190599 +3.224685 +3.258633 +3.288607 +3.206385 +2.909624 +3.066706 +3.109230 +3.147060 +3.184700 +3.222332 +3.259964 +3.297596 +3.334786 +3.336505 +3.476701 +3.802197 +3.865551 +3.912710 +3.958988 +4.005222 +4.051454 +4.097652 +4.141086 +3.982649 +3.887971 +4.296218 +4.373241 +4.423033 +4.470914 +4.518675 +4.566427 +4.614017 +4.650905 +4.422809 +4.286256 +4.768490 +4.855263 +4.906390 +4.954614 +5.002625 +5.050612 +5.098070 +5.130567 +4.843192 +4.683435 +5.238780 +5.334783 +5.386957 +5.435321 +5.483377 +5.531385 +5.578622 +5.607087 +5.261616 +5.080519 +5.708893 +5.814066 +5.867247 +5.915717 +5.963787 +6.011788 +6.058800 +6.083281 +5.679842 +5.477595 +6.178990 +6.293327 +6.347509 +6.396082 +6.444162 +6.492152 +6.538938 +6.559441 +6.098048 +5.874670 +6.649086 +6.772586 +6.827768 +6.876443 +6.924532 +6.972512 +7.019073 +7.035597 +6.516251 +6.271745 +7.119181 +7.251845 +7.308028 +7.356804 +7.404903 +7.452871 +7.499206 +7.511753 +6.934454 +6.419395 +7.198420 +7.321181 +7.372966 +7.417648 +7.461657 +7.505529 +7.547733 +7.557382 +7.060615 +6.279047 +6.817656 +6.893120 +6.935437 +6.975633 +7.015704 +7.055766 +7.095704 +7.126384 +6.871977 +7.386005 +8.400510 +8.540103 +8.597681 +8.648773 +8.699406 +8.749997 +8.799682 +8.818144 +8.112894 +7.896321 +9.060955 +9.242398 +9.307679 +9.361797 +9.414981 +9.468032 +9.518717 +9.508861 +8.667735 +8.331478 +9.596369 +9.799637 +9.869309 +9.924449 +9.978200 +10.031682 +10.080961 +10.057045 +9.130762 +8.757470 +10.115594 +10.336991 +10.409644 +10.465294 +10.519187 +10.572658 +10.620868 +10.585797 +9.581892 +9.182357 +10.632800 +10.871753 +10.947104 +11.003130 +11.057078 +11.110492 +11.157743 +11.111999 +10.031500 +9.607112 +11.149760 +11.406188 +11.484189 +11.540567 +11.594556 +11.647908 +11.694220 +11.637874 +10.480917 +10.031851 +11.666690 +11.940583 +12.021228 +12.077953 +12.131979 +12.185270 +12.230647 +12.163708 +10.930309 +10.431963 +12.142277 +12.426609 +12.508525 +12.565017 +12.618581 +12.671327 +12.715485 +12.643162 +11.350124 +10.272422 +11.734809 +11.976302 +12.048266 +12.098554 +12.146265 +12.193214 +12.232602 +12.175097 +11.133946 +9.764739 +10.762738 +10.901817 +10.951637 +10.993241 +11.034174 +11.075017 +11.114257 +11.113040 +10.530478 +11.494922 +13.334243 +13.605614 +13.680959 +13.735273 +13.787607 +13.839579 +13.885892 +13.833222 +12.455105 +12.134646 +14.214354 +14.567300 +14.658884 +14.717885 +14.773372 +14.828004 +14.871916 +14.759267 +13.157424 +12.600276 +14.803992 +15.191658 +15.292420 +15.353581 +15.409966 +15.464944 +15.504567 +15.367147 +13.656382 +13.039244 +15.346524 +15.758223 +15.864354 +15.926681 +15.983359 +16.038143 +16.075156 +15.921608 +14.122851 +13.474264 +15.881857 +16.315576 +16.426142 +16.489280 +16.546090 +16.600671 +16.635582 +16.467616 +14.584310 +13.908719 +16.416135 +16.871539 +16.986355 +17.050217 +17.107123 +17.161514 +17.194432 +17.012341 +15.045022 +14.340558 +16.945769 +17.421763 +17.540413 +17.604873 +17.661803 +17.715956 +17.747071 +17.551743 +15.502508 +14.714090 +17.376757 +17.855769 +17.974456 +18.038381 +18.094584 +18.147876 +18.177814 +17.982854 +15.891671 +14.198935 +16.399228 +16.786269 +16.885698 +16.941474 +16.990972 +17.038028 +17.066441 +16.918046 +15.282496 +13.282948 +14.765270 +14.980857 +15.042285 +15.085584 +15.126941 +15.167826 +15.203032 +15.159039 +14.224649 +15.663610 +18.373964 +18.801535 +18.902803 +18.961179 +19.014449 +19.066233 +19.102551 +18.958072 +16.863088 +16.446923 +19.499348 +20.054887 +20.183615 +20.248923 +20.305807 +20.359803 +20.388123 +20.146260 +17.728691 +16.945589 +20.148191 +20.753221 +20.896986 +20.965994 +21.024095 +21.077971 +21.098189 +20.819138 +18.266491 +17.393844 +20.707787 +21.341805 +21.493305 +21.564317 +21.622888 +21.676216 +21.692190 +21.392739 +18.744165 +17.833399 +21.251497 +21.910042 +22.067224 +22.139513 +22.198308 +22.251218 +22.264209 +21.948162 +19.211108 +18.271238 +21.792014 +22.474089 +22.636424 +22.709760 +22.768705 +22.821257 +22.831607 +22.499835 +19.675871 +18.702511 +22.320806 +23.023550 +23.189907 +23.263962 +23.322923 +23.375102 +23.383439 +23.038316 +20.132698 +19.038410 +22.687477 +23.381072 +23.544523 +23.617460 +23.675515 +23.726828 +23.735366 +23.400402 +20.478874 +18.150573 +21.109176 +21.653862 +21.785729 +21.848030 +21.898813 +21.944317 +21.957230 +21.707354 +19.458142 +16.810992 +18.785738 +19.082787 +19.157963 +19.203508 +19.245220 +19.285625 +19.315091 +19.224059 +17.929958 +19.851107 +23.448076 +24.041505 +24.172978 +24.236587 +24.290680 +24.341207 +24.364112 +24.119489 +21.292435 +20.783723 +24.829295 +25.600246 +25.771941 +25.845232 +25.903391 +25.955254 +25.963323 +25.581152 +22.327878 +21.317488 +25.541244 +26.377764 +26.571086 +26.649907 +26.709608 +26.760648 +26.756193 +26.323251 +22.906914 +21.774578 +26.117171 +26.987589 +27.191106 +27.272859 +27.333213 +27.383267 +27.372823 +26.915214 +23.395276 +22.216982 +26.666232 +27.562934 +27.773114 +27.856567 +27.917234 +27.966659 +27.952515 +27.476758 +23.865736 +22.655949 +27.208894 +28.129874 +28.345652 +28.430357 +28.491214 +28.540169 +28.523048 +28.030896 +24.331899 +23.083742 +27.731524 +28.671762 +28.891092 +28.976442 +29.037296 +29.085864 +29.067005 +28.562664 +24.784671 +23.377855 +28.026243 +28.942951 +29.155398 +29.238734 +29.298511 +29.346470 +29.330014 +28.847545 +25.083103 +22.111144 +25.835722 +26.543160 +26.710035 +26.779721 +26.831708 +26.874799 +26.870012 +26.514155 +23.643830 +20.342150 +22.812014 +23.192348 +23.282218 +23.330352 +23.372430 +23.412091 +23.435064 +23.295393 +21.638897 +24.044734 +28.533643 +29.296567 +29.460163 +29.529718 +29.584665 +29.633391 +29.641356 +29.293393 +25.728948 +25.128820 +30.174777 +31.166126 +31.383455 +31.465747 +31.525232 +31.574195 +31.559883 +31.033013 +26.936787 +25.698735 +30.951829 +32.025524 +32.271484 +32.361318 +32.422687 +32.469989 +32.438393 +31.846542 +27.558309 +26.164779 +31.544340 +32.656978 +32.915701 +33.009457 +33.071670 +33.117496 +33.078067 +32.457154 +28.057506 +26.609574 +32.097918 +33.238366 +33.504637 +33.600492 +33.663102 +33.708095 +33.664314 +33.023893 +28.530936 +27.048878 +32.641255 +33.806279 +34.078368 +34.175599 +34.238427 +34.282882 +34.235952 +33.578857 +28.997550 +27.472090 +33.155665 +34.337883 +34.612707 +34.710377 +34.773167 +34.817308 +34.769180 +34.101630 +29.444954 +27.722846 +33.375484 +34.518832 +34.782273 +34.876825 +34.938355 +34.982296 +34.939190 +34.306075 +29.693793 +26.074973 +30.568431 +31.440713 +31.643794 +31.721360 +31.774568 +31.814843 +31.791362 +31.327657 +27.833314 +23.874329 +26.840223 +27.304507 +27.409457 +27.460346 +27.502807 +27.541608 +27.557781 +27.368878 +25.349058 +28.240411 +33.623102 +34.556869 +34.753380 +34.829230 +34.885070 +34.931753 +34.924146 +34.471638 +30.167923 +29.476771 +35.525689 +36.739331 +37.003420 +37.095214 +37.156085 +37.201802 +37.164211 +36.490944 +31.549135 +30.083298 +36.368731 +37.681823 +37.981753 +38.083201 +38.146311 +38.189462 +38.129660 +37.376908 +32.213704 +30.558431 +36.978089 +38.335276 +38.650616 +38.757016 +38.821165 +38.862324 +38.792781 +38.006468 +32.723901 +31.005510 +37.535987 +38.922454 +39.246201 +39.355094 +39.419724 +39.459846 +39.385313 +38.578180 +33.200171 +31.444880 +38.079490 +39.490662 +39.820351 +39.930702 +39.995570 +40.035111 +39.957329 +39.133395 +33.666906 +31.863100 +38.584898 +40.010929 +40.342376 +40.452888 +40.517673 +40.557017 +40.478701 +39.646289 +34.108440 +32.069903 +38.728683 +40.100103 +40.415425 +40.521607 +40.584934 +40.624561 +40.554081 +39.769026 +34.306968 +30.040012 +35.303461 +36.341431 +36.581245 +36.666938 +36.721396 +36.758676 +36.716068 +36.143751 +32.024253 +27.406849 +30.869088 +31.417562 +31.537744 +31.591463 +31.634318 +31.672211 +31.681462 +31.443111 +29.059639 +32.436787 +38.713905 +39.819011 +40.048751 +40.131049 +40.187806 +40.232348 +40.208919 +39.651417 +34.607759 +33.825719 +40.878517 +42.315165 +42.626469 +42.727990 +42.790282 +42.832610 +42.771378 +41.951067 +36.162711 +34.469048 +41.787919 +43.341261 +43.695713 +43.809047 +43.873943 +43.912770 +43.824322 +42.909892 +36.870566 +34.953347 +42.414276 +44.016927 +44.389476 +44.508818 +44.574951 +44.611253 +44.511122 +43.558576 +37.391860 +35.402693 +42.976462 +44.609856 +44.991671 +45.113898 +45.180595 +45.215657 +45.109898 +44.135227 +37.870949 +35.842039 +43.519960 +45.178127 +45.565970 +45.689720 +45.756673 +45.791119 +45.682042 +44.690494 +38.337694 +36.255114 +44.016073 +45.686656 +46.075212 +46.198812 +46.265630 +46.300017 +46.191122 +45.193173 +38.773169 +36.417740 +44.083388 +45.683457 +46.051041 +46.169045 +46.234200 +46.269388 +46.171226 +45.233703 +38.921107 +34.005507 +40.039372 +41.243369 +41.520141 +41.614076 +41.669801 +41.704013 +41.642096 +40.960857 +36.215756 +30.939486 +34.898180 +35.530932 +35.666404 +35.722982 +35.766238 +35.803204 +35.805487 +35.517607 +32.770367 +36.633405 +43.805177 +45.081804 +45.344897 +45.433707 +45.491393 +45.533756 +45.494407 +44.831744 +39.047901 +38.175018 +46.232028 +47.891947 +48.250647 +48.361988 +48.425719 +48.464602 +48.379586 +47.411987 +40.776732 +38.855226 +47.207938 +49.001857 +49.411050 +49.536388 +49.603091 +49.637524 +49.520257 +48.443848 +41.527971 +39.348727 +47.851367 +49.699837 +50.129839 +50.262249 +50.330392 +50.361761 +50.230850 +49.111744 +42.060409 +39.800341 +48.417845 +50.298524 +50.738650 +50.874342 +50.943132 +50.973056 +50.835877 +49.693336 +42.542319 +40.239636 +48.961282 +50.866780 +51.313008 +51.450281 +51.519344 +51.548622 +51.408063 +50.248591 +43.009037 +40.647509 +49.447991 +51.363421 +51.809290 +51.946086 +52.014959 +52.044323 +51.904688 +50.740927 +43.438381 +40.765873 +49.438672 +51.267619 +51.687624 +51.817535 +51.884534 +51.915231 +51.789260 +50.699056 +43.535620 +37.971175 +44.775622 +46.145781 +46.459603 +46.561831 +46.618833 +46.649945 +46.568645 +45.778359 +40.407479 diff --git a/test_data/laplace_sor_inc_2.txt b/test_data/laplace_sor_inc_2.txt new file mode 100644 index 00000000..63f11043 --- /dev/null +++ b/test_data/laplace_sor_inc_2.txt @@ -0,0 +1,1000 @@ +0.401119 +0.665213 +0.734886 +0.785331 +0.834394 +0.883371 +0.932342 +0.981219 +1.022821 +0.824005 +1.066173 +1.520090 +1.628129 +1.691776 +1.751396 +1.810711 +1.869996 +1.928576 +1.961666 +1.572660 +1.602471 +2.171602 +2.305193 +2.374254 +2.436402 +2.497936 +2.559371 +2.618912 +2.635829 +2.138584 +2.113555 +2.780649 +2.932140 +3.004390 +3.067316 +3.129311 +3.191104 +3.249777 +3.255345 +2.669122 +2.620949 +3.383121 +3.550901 +3.625608 +3.688928 +3.751033 +3.812827 +3.870646 +3.866084 +3.194258 +3.127852 +3.984688 +4.168485 +4.245502 +4.309130 +4.371279 +4.433027 +4.490026 +4.475558 +3.718637 +3.634692 +4.586138 +4.785913 +4.865213 +4.929133 +4.991314 +5.053012 +5.109199 +5.084862 +4.242914 +4.141525 +5.187573 +5.403320 +5.484900 +5.549110 +5.611322 +5.672968 +5.728344 +5.694142 +4.767178 +4.629888 +5.758002 +5.984452 +6.067283 +6.131347 +6.193215 +6.254446 +6.308799 +6.268638 +5.269259 +4.511442 +5.372997 +5.555892 +5.627508 +5.683800 +5.738207 +5.792022 +5.839758 +5.809600 +5.075313 +4.877854 +5.750329 +5.926337 +6.001895 +6.066838 +6.130855 +6.194739 +6.256033 +6.253230 +5.504297 +6.328847 +7.855579 +8.173506 +8.286324 +8.373372 +8.457784 +8.541651 +8.616507 +8.541623 +7.140461 +7.152151 +8.979629 +9.388620 +9.522484 +9.616996 +9.706905 +9.795530 +9.867340 +9.724557 +8.029971 +7.846761 +9.887590 +10.350396 +10.497030 +10.594719 +10.686100 +10.775359 +10.841515 +10.658435 +8.760972 +8.518398 +10.754808 +11.261830 +11.417447 +11.516940 +11.608777 +11.697776 +11.759524 +11.543903 +9.462554 +9.186291 +11.615176 +12.164448 +12.328081 +12.428946 +12.520997 +12.609654 +12.667447 +12.420958 +10.159147 +9.853612 +12.474472 +13.065648 +13.237097 +13.339232 +13.431444 +13.519759 +13.573705 +13.296655 +10.854949 +10.517044 +13.326868 +13.958328 +14.136979 +14.240201 +14.332469 +14.420366 +14.470737 +14.164441 +11.545952 +11.056081 +13.969295 +14.604147 +14.782250 +14.883990 +14.974437 +15.060258 +15.107565 +14.800238 +12.090116 +10.086832 +12.223873 +12.696270 +12.835966 +12.918390 +12.991980 +13.061715 +13.101221 +12.876107 +10.931866 +10.126278 +12.049580 +12.411600 +12.520209 +12.594062 +12.663882 +12.732594 +12.787126 +12.663473 +10.949529 +12.799724 +16.106640 +16.784132 +16.966685 +17.071960 +17.167073 +17.258709 +17.313310 +16.987272 +13.908683 +13.937898 +17.767948 +18.639745 +18.871059 +18.991006 +19.094581 +19.191497 +19.228870 +18.747696 +15.153824 +14.747174 +18.876726 +19.847586 +20.107842 +20.235443 +20.341834 +20.438574 +20.459939 +19.899263 +16.015690 +15.490023 +19.867744 +20.909932 +21.188540 +21.320634 +21.428089 +21.523619 +21.534214 +20.917205 +16.797046 +16.220301 +20.835783 +21.942749 +22.236571 +22.371915 +22.479913 +22.574319 +22.575982 +21.908302 +17.562601 +16.947740 +21.798542 +22.968632 +23.276777 +23.414967 +23.523352 +23.616708 +23.609994 +22.893097 +18.324491 +17.654841 +22.725083 +23.949608 +24.268721 +24.408794 +24.517130 +24.609272 +24.595933 +23.836972 +19.061692 +18.082829 +23.177906 +24.370031 +24.679581 +24.815543 +24.920366 +25.009020 +24.994953 +24.262965 +19.474485 +16.011142 +19.656593 +20.509259 +20.739168 +20.845021 +20.927947 +20.998488 +20.993833 +20.474935 +17.106904 +15.599634 +18.729564 +19.347030 +19.503853 +19.587160 +19.659912 +19.728419 +19.760760 +19.453135 +16.625749 +19.654952 +25.011949 +26.173252 +26.455962 +26.581900 +26.682959 +26.772698 +26.776753 +26.086311 +21.072521 +21.170200 +27.320896 +28.806790 +29.176514 +29.326720 +29.438583 +29.531032 +29.493793 +28.536001 +22.738412 +22.088546 +28.625159 +30.260076 +30.679762 +30.843974 +30.960094 +31.049985 +30.981873 +29.900685 +23.725953 +22.874564 +29.694628 +31.422753 +31.871071 +32.043416 +32.161359 +32.248342 +32.161882 +31.004835 +24.557476 +23.632565 +30.712855 +32.519513 +32.989437 +33.167258 +33.286160 +33.370880 +33.270649 +32.050568 +25.354810 +24.382044 +31.715263 +33.595555 +34.084492 +34.266680 +34.386193 +34.468981 +34.356706 +33.077903 +26.141466 +25.086387 +32.636985 +34.570966 +35.070904 +35.255089 +35.374359 +35.455347 +35.335757 +34.014994 +26.874075 +25.337295 +32.786044 +34.627776 +35.101650 +35.277653 +35.392116 +35.469966 +35.358470 +34.114378 +27.085429 +22.065979 +27.318942 +28.605869 +28.945699 +29.078482 +29.167648 +29.230238 +29.159112 +28.294822 +23.410000 +21.145006 +25.537654 +26.441980 +26.659171 +26.754429 +26.829399 +26.894502 +26.893719 +26.373618 +22.378429 +26.641028 +34.150752 +35.854375 +36.260679 +36.412595 +36.518400 +36.599849 +36.532280 +35.424201 +28.375512 +28.564866 +37.164600 +39.339149 +39.878212 +40.066330 +40.185112 +40.264346 +40.124690 +38.622286 +30.496036 +29.599556 +38.678408 +41.057251 +41.670553 +41.880439 +42.004935 +42.077940 +41.889567 +40.214873 +31.617269 +30.422156 +39.815368 +42.307868 +42.960342 +43.182530 +43.309662 +43.377573 +43.162881 +41.393945 +32.491913 +31.195783 +40.862658 +43.442925 +44.122066 +44.351887 +44.480395 +44.544850 +44.312467 +42.472094 +33.307736 +31.952251 +41.878073 +44.536174 +45.236699 +45.471922 +45.601203 +45.663058 +45.416671 +43.513655 +34.102405 +32.634520 +42.760435 +45.462723 +46.170682 +46.407057 +46.535850 +46.595970 +46.344435 +44.407403 +34.809010 +32.681218 +42.556797 +45.093898 +45.753528 +45.975999 +46.098805 +46.157736 +45.928154 +44.129403 +34.789543 +28.171784 +35.074089 +36.821682 +37.283971 +37.447509 +37.542090 +37.591765 +37.441896 +36.207550 +29.765773 +26.714905 +32.390650 +33.594937 +33.878851 +33.988165 +34.065284 +34.125038 +34.085591 +33.341063 +28.157952 +33.673361 +43.374432 +45.645472 +46.187783 +46.369936 +46.480406 +46.549689 +46.399658 +44.850988 +35.729199 +36.019709 +47.118984 +50.015379 +50.740528 +50.972490 +51.098144 +51.158834 +50.902125 +48.824686 +38.319728 +37.176187 +48.852644 +52.012198 +52.838027 +53.100479 +53.233352 +53.283327 +52.958136 +50.656156 +39.580740 +38.034747 +50.056215 +53.350063 +54.226008 +54.505238 +54.641582 +54.683998 +54.324101 +51.909266 +40.497851 +38.820024 +51.125435 +54.514459 +55.421420 +55.710284 +55.848400 +55.886233 +55.505249 +53.012196 +41.327695 +39.577551 +52.143043 +55.611024 +56.540292 +56.835110 +56.974101 +57.008966 +56.613160 +54.056319 +42.123649 +40.229722 +52.971286 +56.469538 +57.400448 +57.694759 +57.832948 +57.866736 +57.469777 +54.890884 +42.795189 +40.061031 +52.394275 +55.648016 +56.504985 +56.778411 +56.909403 +56.945026 +56.586780 +54.213634 +42.532498 +34.297972 +42.867177 +45.087619 +45.679068 +45.875978 +45.975866 +46.010019 +45.775236 +44.159496 +36.143501 +32.293450 +39.259798 +40.769308 +41.122881 +41.247452 +41.326788 +41.380219 +41.299586 +40.325790 +33.947207 +40.722447 +52.629461 +55.478225 +56.162366 +56.377179 +56.492461 +56.547626 +56.310128 +54.311364 +43.101770 +43.497105 +57.115645 +60.747921 +61.667181 +61.946389 +62.079136 +62.118562 +61.737889 +59.072453 +46.168881 +44.778277 +59.074687 +63.030977 +64.078604 +64.397611 +64.539136 +64.562900 +64.092896 +61.148806 +47.572994 +45.673255 +60.345807 +64.457489 +65.566544 +65.907016 +66.052867 +66.066435 +65.553000 +62.476996 +48.533108 +46.468996 +61.434799 +65.648456 +66.792605 +67.144631 +67.292636 +67.300530 +66.762815 +63.602354 +49.375616 +47.225308 +62.450366 +66.742756 +67.909402 +68.267634 +68.416576 +68.421329 +67.868564 +64.644404 +50.170222 +47.844088 +63.218318 +67.525016 +68.686342 +69.041905 +69.189675 +69.194367 +68.645422 +65.413052 +50.802905 +47.455407 +62.259272 +66.239199 +67.299250 +67.626191 +67.765494 +67.775637 +67.283640 +64.327204 +50.291755 +40.432423 +50.675889 +53.374629 +54.098536 +54.330299 +54.435559 +54.452922 +54.130287 +52.128063 +42.530448 +37.875113 +46.134860 +47.951675 +48.376178 +48.516597 +48.598210 +48.644880 +48.521981 +47.316986 +39.740067 +47.777700 +61.896198 +65.326835 +66.155365 +66.404036 +66.524259 +66.564420 +66.237278 +63.784563 +50.481478 +50.983028 +67.128515 +71.502454 +72.619422 +72.947575 +73.087606 +73.104512 +72.596814 +69.337996 +54.027916 +52.390265 +69.315568 +74.075362 +75.349030 +75.726614 +75.877022 +75.873084 +75.254652 +71.662141 +55.576734 +53.322083 +70.655069 +75.591697 +76.938354 +77.342227 +77.497833 +77.480959 +76.810152 +73.066336 +56.580352 +54.127982 +71.763267 +76.808507 +78.194260 +78.611584 +78.769719 +78.746092 +78.047866 +74.213501 +57.435162 +54.882231 +72.775193 +77.898392 +79.306504 +79.730134 +79.889247 +79.862402 +79.149166 +75.251697 +58.227423 +55.466290 +73.480325 +78.600969 +79.996240 +80.414771 +80.572304 +80.546600 +79.842622 +75.951625 +58.819684 +54.855732 +72.135647 +76.845955 +78.111791 +78.493566 +78.641315 +78.624966 +77.996875 +74.453212 +58.057876 +46.570249 +58.491062 +61.670490 +62.528402 +62.795776 +62.906486 +62.906472 +62.494637 +60.103682 +48.921281 +43.457919 +53.012115 +55.137051 +55.633019 +55.789551 +55.873480 +55.913203 +55.747589 +54.310630 +45.534282 +54.835251 +71.167346 +75.181509 +76.155510 +76.438585 +76.563828 +76.588605 +76.170907 +73.262694 +57.863911 +58.472195 +77.147618 +82.265568 +83.581792 +83.959675 +84.107105 +84.100948 +83.464921 +79.610517 +61.890805 +60.006105 +79.563859 +85.129961 +86.631530 +87.068642 +87.228074 +87.195779 +86.427349 +82.183781 +63.585055 +60.975014 +80.972228 +86.736807 +88.323070 +88.791371 +88.956885 +88.908861 +88.078991 +83.664538 +64.632479 +61.791012 +82.099528 +87.979328 +89.608679 +90.092327 +90.260746 +90.204886 +89.344463 +84.833392 +65.499523 +62.542890 +83.107226 +89.063998 +90.715434 +91.205424 +91.374847 +91.315735 +90.440452 +85.867071 +66.289068 +63.091698 +83.748522 +89.685492 +91.316314 +91.798647 +91.966063 +91.909377 +91.049000 +86.497130 +66.840273 +62.258494 +82.016729 +87.459235 +88.932085 +89.369332 +89.525619 +89.482327 +88.717090 +84.584487 +65.826888 +52.709460 +66.308909 +69.970062 +70.962683 +71.266034 +71.382244 +71.364594 +70.862956 +68.082293 +55.313754 +44.335585 +52.407799 +54.297810 +54.764734 +54.913303 +54.989023 +55.017901 +54.840660 +53.484192 +46.136652 +54.004615 +67.800788 +71.320858 +72.224238 +72.491006 +72.601856 +72.607818 +72.177847 +69.493568 +56.511203 +57.104584 +72.871365 +77.339252 +78.551311 +78.907128 +79.037606 +79.009730 +78.369891 +74.854387 +59.910473 +58.453615 +74.972193 +79.832909 +81.212606 +81.624076 +81.765474 +81.710925 +80.947280 +77.084373 +61.388770 +59.312912 +76.199053 +81.233669 +82.690685 +83.131502 +83.278510 +83.208477 +82.387158 +78.371389 +62.311828 +60.032267 +77.168581 +82.300311 +83.795708 +84.250750 +84.400435 +84.322861 +83.473451 +79.374031 +63.071117 +60.687473 +78.018465 +83.208956 +84.721564 +85.181700 +85.332184 +85.251866 +84.390389 +80.241890 +63.753288 +61.137919 +78.498703 +83.649813 +85.135948 +85.586679 +85.734943 +85.658084 +84.815414 +80.703238 +64.195840 +60.294598 +76.755280 +81.417933 +82.744281 +83.148634 +83.286133 +83.224956 +82.482133 +78.786080 +63.179110 +52.386546 +63.663426 +66.733666 +67.610108 +67.887165 +67.989884 +67.961324 +67.483443 +65.048032 +54.514736 diff --git a/test_data/laplace_sor_ines_2.txt b/test_data/laplace_sor_ines_2.txt new file mode 100644 index 00000000..92f88f79 --- /dev/null +++ b/test_data/laplace_sor_ines_2.txt @@ -0,0 +1,1000 @@ +0.043263 +0.048314 +0.048911 +0.048967 +0.048971 +0.048972 +0.048972 +0.048965 +0.048703 +0.044440 +0.049395 +0.057953 +0.059145 +0.059279 +0.059292 +0.059293 +0.059292 +0.059263 +0.058613 +0.050991 +0.050469 +0.059761 +0.061266 +0.061459 +0.061480 +0.061482 +0.061480 +0.061422 +0.060515 +0.052180 +0.050649 +0.060081 +0.061660 +0.061880 +0.061906 +0.061908 +0.061904 +0.061829 +0.060859 +0.052386 +0.050678 +0.060134 +0.061728 +0.061954 +0.061982 +0.061985 +0.061980 +0.061900 +0.060917 +0.052420 +0.050682 +0.060142 +0.061738 +0.061966 +0.061995 +0.061998 +0.061993 +0.061912 +0.060926 +0.052425 +0.050683 +0.060143 +0.061740 +0.061968 +0.061997 +0.062000 +0.061995 +0.061914 +0.060927 +0.052426 +0.050683 +0.060143 +0.061740 +0.061968 +0.061997 +0.062000 +0.061995 +0.061914 +0.060928 +0.052426 +0.050498 +0.059833 +0.061380 +0.061601 +0.061629 +0.061632 +0.061627 +0.061548 +0.060601 +0.052219 +0.046096 +0.052883 +0.054006 +0.054172 +0.054194 +0.054197 +0.054192 +0.054128 +0.053407 +0.047416 +0.051960 +0.062063 +0.063693 +0.063914 +0.063939 +0.063941 +0.063939 +0.063865 +0.062828 +0.053665 +0.063575 +0.080510 +0.083621 +0.084099 +0.084160 +0.084166 +0.084156 +0.083964 +0.081826 +0.066064 +0.066086 +0.084771 +0.088668 +0.089329 +0.089422 +0.089432 +0.089413 +0.089113 +0.086312 +0.068835 +0.066601 +0.085688 +0.089806 +0.090551 +0.090664 +0.090678 +0.090650 +0.090291 +0.087298 +0.069423 +0.066701 +0.085870 +0.090040 +0.090810 +0.090932 +0.090946 +0.090914 +0.090537 +0.087499 +0.069540 +0.066719 +0.085904 +0.090085 +0.090861 +0.090985 +0.091000 +0.090966 +0.090585 +0.087537 +0.069561 +0.066722 +0.085910 +0.090093 +0.090870 +0.090995 +0.091010 +0.090976 +0.090593 +0.087544 +0.069565 +0.066684 +0.085844 +0.090012 +0.090784 +0.090908 +0.090923 +0.090889 +0.090510 +0.087472 +0.069522 +0.065769 +0.084295 +0.088190 +0.088910 +0.089026 +0.089040 +0.089007 +0.088651 +0.085830 +0.068491 +0.056266 +0.069171 +0.071861 +0.072366 +0.072450 +0.072460 +0.072435 +0.072175 +0.070190 +0.058228 +0.054543 +0.066452 +0.068904 +0.069330 +0.069393 +0.069401 +0.069385 +0.069180 +0.067428 +0.056483 +0.068140 +0.088299 +0.092917 +0.093801 +0.093945 +0.093962 +0.093921 +0.093458 +0.090003 +0.071053 +0.071671 +0.094341 +0.100140 +0.101345 +0.101558 +0.101585 +0.101516 +0.100845 +0.096376 +0.074954 +0.072519 +0.095856 +0.102036 +0.103395 +0.103649 +0.103682 +0.103594 +0.102811 +0.098010 +0.075920 +0.072710 +0.096207 +0.102490 +0.103900 +0.104172 +0.104207 +0.104109 +0.103289 +0.098396 +0.076144 +0.072750 +0.096283 +0.102590 +0.104013 +0.104291 +0.104328 +0.104226 +0.103396 +0.098481 +0.076193 +0.072752 +0.096287 +0.102596 +0.104022 +0.104301 +0.104338 +0.104236 +0.103404 +0.098487 +0.076196 +0.072605 +0.096025 +0.102272 +0.103675 +0.103950 +0.103987 +0.103885 +0.103068 +0.098202 +0.076025 +0.070974 +0.093242 +0.098962 +0.100235 +0.100485 +0.100518 +0.100425 +0.099680 +0.095251 +0.074198 +0.059546 +0.074811 +0.078655 +0.079515 +0.079687 +0.079710 +0.079644 +0.079131 +0.076123 +0.061817 +0.055383 +0.067949 +0.070774 +0.071351 +0.071455 +0.071469 +0.071433 +0.071114 +0.069028 +0.057424 +0.069706 +0.091100 +0.096428 +0.097607 +0.097835 +0.097865 +0.097780 +0.097093 +0.093002 +0.072811 +0.073701 +0.097978 +0.104715 +0.106320 +0.106651 +0.106696 +0.106563 +0.105588 +0.100277 +0.077237 +0.074769 +0.099897 +0.107131 +0.108948 +0.109342 +0.109396 +0.109232 +0.108099 +0.102351 +0.078456 +0.075039 +0.100395 +0.107778 +0.109671 +0.110094 +0.110153 +0.109972 +0.108782 +0.102900 +0.078773 +0.075103 +0.100514 +0.107937 +0.109852 +0.110285 +0.110346 +0.110159 +0.108952 +0.103035 +0.078850 +0.075095 +0.100501 +0.107922 +0.109838 +0.110272 +0.110333 +0.110146 +0.108938 +0.103021 +0.078841 +0.074844 +0.100052 +0.107361 +0.109233 +0.109656 +0.109716 +0.109533 +0.108355 +0.102534 +0.078551 +0.072871 +0.096652 +0.103272 +0.104944 +0.105321 +0.105374 +0.105210 +0.104158 +0.098916 +0.076334 +0.060702 +0.076890 +0.081287 +0.082394 +0.082646 +0.082682 +0.082570 +0.081864 +0.078356 +0.063116 +0.055672 +0.068479 +0.071461 +0.072116 +0.072250 +0.072267 +0.072214 +0.071834 +0.069607 +0.057757 +0.070265 +0.092125 +0.097760 +0.099094 +0.099381 +0.099421 +0.099300 +0.098491 +0.094122 +0.073454 +0.074454 +0.099365 +0.106520 +0.108340 +0.108755 +0.108813 +0.108631 +0.107486 +0.101795 +0.078106 +0.075635 +0.101493 +0.109212 +0.111281 +0.111775 +0.111846 +0.111622 +0.110290 +0.104099 +0.079456 +0.075956 +0.102087 +0.109988 +0.112152 +0.112684 +0.112761 +0.112515 +0.111111 +0.104756 +0.079834 +0.076037 +0.102239 +0.110191 +0.112384 +0.112929 +0.113009 +0.112756 +0.111328 +0.104928 +0.079931 +0.076020 +0.102209 +0.110154 +0.112346 +0.112892 +0.112972 +0.112718 +0.111291 +0.104896 +0.079912 +0.075711 +0.101654 +0.109455 +0.111587 +0.112116 +0.112193 +0.111947 +0.110563 +0.104291 +0.079554 +0.073587 +0.097976 +0.105004 +0.106892 +0.107357 +0.107425 +0.107208 +0.105984 +0.100369 +0.077162 +0.061131 +0.077684 +0.082327 +0.083565 +0.083871 +0.083915 +0.083771 +0.082961 +0.079227 +0.063612 +0.055775 +0.068672 +0.071717 +0.072408 +0.072557 +0.072578 +0.072515 +0.072107 +0.069821 +0.057878 +0.070468 +0.092507 +0.098268 +0.099675 +0.099994 +0.100040 +0.099900 +0.099032 +0.094547 +0.073694 +0.074738 +0.099897 +0.107229 +0.109152 +0.109614 +0.109680 +0.109470 +0.108242 +0.102387 +0.078441 +0.075970 +0.102122 +0.110052 +0.112245 +0.112796 +0.112877 +0.112619 +0.111188 +0.104802 +0.079852 +0.076319 +0.102769 +0.110900 +0.113199 +0.113793 +0.113881 +0.113598 +0.112085 +0.105518 +0.080263 +0.076410 +0.102940 +0.111129 +0.113463 +0.114073 +0.114164 +0.113872 +0.112332 +0.105712 +0.080373 +0.076387 +0.102901 +0.111080 +0.113411 +0.114022 +0.114113 +0.113821 +0.112282 +0.105670 +0.080347 +0.076052 +0.102295 +0.110314 +0.112574 +0.113163 +0.113251 +0.112970 +0.111482 +0.105008 +0.079958 +0.073864 +0.098498 +0.105703 +0.107697 +0.108211 +0.108288 +0.108041 +0.106732 +0.100952 +0.077490 +0.061296 +0.077994 +0.082742 +0.084043 +0.084379 +0.084429 +0.084266 +0.083405 +0.079573 +0.063807 +0.055813 +0.068743 +0.071813 +0.072520 +0.072677 +0.072699 +0.072632 +0.072211 +0.069902 +0.057923 +0.070544 +0.092650 +0.098462 +0.099901 +0.100237 +0.100285 +0.100136 +0.099243 +0.094710 +0.073785 +0.074845 +0.100101 +0.107507 +0.109476 +0.109961 +0.110032 +0.109808 +0.108543 +0.102620 +0.078570 +0.076100 +0.102370 +0.110390 +0.112639 +0.113218 +0.113305 +0.113030 +0.111553 +0.105084 +0.080010 +0.076462 +0.103042 +0.111272 +0.113634 +0.114260 +0.114354 +0.114053 +0.112489 +0.105830 +0.080437 +0.076559 +0.103224 +0.111516 +0.113915 +0.114559 +0.114657 +0.114345 +0.112752 +0.106036 +0.080553 +0.076534 +0.103181 +0.111462 +0.113858 +0.114502 +0.114600 +0.114288 +0.112697 +0.105989 +0.080525 +0.076187 +0.102552 +0.110665 +0.112986 +0.113605 +0.113699 +0.113399 +0.111863 +0.105302 +0.080121 +0.073973 +0.098705 +0.105986 +0.108028 +0.108567 +0.108649 +0.108388 +0.107039 +0.101188 +0.077621 +0.061360 +0.078116 +0.082909 +0.084239 +0.084590 +0.084642 +0.084471 +0.083586 +0.079712 +0.063884 +0.055827 +0.068770 +0.071850 +0.072563 +0.072724 +0.072747 +0.072677 +0.072251 +0.069932 +0.057940 +0.070572 +0.092705 +0.098537 +0.099990 +0.100333 +0.100382 +0.100229 +0.099325 +0.094773 +0.073819 +0.074886 +0.100180 +0.107616 +0.109605 +0.110100 +0.110174 +0.109944 +0.108663 +0.102711 +0.078621 +0.076151 +0.102468 +0.110524 +0.112799 +0.113391 +0.113480 +0.113198 +0.111701 +0.105197 +0.080072 +0.076519 +0.103152 +0.111423 +0.113813 +0.114454 +0.114552 +0.114241 +0.112655 +0.105957 +0.080507 +0.076618 +0.103339 +0.111675 +0.114103 +0.114762 +0.114864 +0.114543 +0.112926 +0.106169 +0.080627 +0.076593 +0.103294 +0.111619 +0.114044 +0.114703 +0.114805 +0.114484 +0.112869 +0.106120 +0.080598 +0.076240 +0.102655 +0.110808 +0.113156 +0.113789 +0.113886 +0.113578 +0.112020 +0.105422 +0.080188 +0.074016 +0.098788 +0.106101 +0.108165 +0.108715 +0.108799 +0.108532 +0.107165 +0.101285 +0.077675 +0.061385 +0.078165 +0.082976 +0.084319 +0.084677 +0.084731 +0.084556 +0.083661 +0.079769 +0.063915 +0.055832 +0.068780 +0.071863 +0.072580 +0.072742 +0.072765 +0.072695 +0.072266 +0.069944 +0.057946 +0.070583 +0.092726 +0.098566 +0.100025 +0.100370 +0.100421 +0.100266 +0.099357 +0.094797 +0.073833 +0.074902 +0.100211 +0.107658 +0.109656 +0.110156 +0.110230 +0.109998 +0.108710 +0.102747 +0.078641 +0.076170 +0.102506 +0.110578 +0.112863 +0.113461 +0.113552 +0.113266 +0.111761 +0.105242 +0.080097 +0.076542 +0.103195 +0.111484 +0.113886 +0.114534 +0.114633 +0.114319 +0.112723 +0.106008 +0.080535 +0.076642 +0.103385 +0.111739 +0.114181 +0.114847 +0.114950 +0.114625 +0.112998 +0.106223 +0.080657 +0.076616 +0.103339 +0.111683 +0.114121 +0.114787 +0.114890 +0.114565 +0.112940 +0.106174 +0.080628 +0.076262 +0.102697 +0.110866 +0.113226 +0.113866 +0.113964 +0.113653 +0.112085 +0.105471 +0.080215 +0.074033 +0.098822 +0.106148 +0.108220 +0.108777 +0.108862 +0.108591 +0.107217 +0.101324 +0.077696 +0.061395 +0.078184 +0.083004 +0.084352 +0.084713 +0.084768 +0.084591 +0.083691 +0.079792 +0.063928 +0.050973 +0.061031 +0.063516 +0.064120 +0.064261 +0.064281 +0.064218 +0.063841 +0.061889 +0.052618 +0.062442 +0.079641 +0.084298 +0.085514 +0.085812 +0.085856 +0.085716 +0.084926 +0.081152 +0.064870 +0.065784 +0.085438 +0.091359 +0.093014 +0.093442 +0.093506 +0.093299 +0.092187 +0.087292 +0.068562 +0.066794 +0.087267 +0.093690 +0.095580 +0.096091 +0.096169 +0.095915 +0.094621 +0.089274 +0.069714 +0.067099 +0.087834 +0.094436 +0.096423 +0.096976 +0.097061 +0.096783 +0.095413 +0.089902 +0.070072 +0.067183 +0.087993 +0.094650 +0.096671 +0.097239 +0.097327 +0.097040 +0.095643 +0.090082 +0.070173 +0.067158 +0.087948 +0.094593 +0.096610 +0.097178 +0.097267 +0.096979 +0.095585 +0.090033 +0.070144 +0.066842 +0.087375 +0.093865 +0.095810 +0.096355 +0.096439 +0.096164 +0.094822 +0.089406 +0.069777 +0.064944 +0.084071 +0.089837 +0.091532 +0.092001 +0.092074 +0.091835 +0.090666 +0.085874 +0.067637 +0.055172 +0.068072 +0.071800 +0.072884 +0.073185 +0.073230 +0.073076 +0.072319 +0.069195 +0.057036 diff --git a/test_data/laplace_sor_ones_1.txt b/test_data/laplace_sor_ones_1.txt new file mode 100644 index 00000000..c425933c --- /dev/null +++ b/test_data/laplace_sor_ones_1.txt @@ -0,0 +1,1000 @@ +0.028846 +0.029956 +0.029998 +0.030000 +0.030000 +0.030000 +0.030000 +0.030000 +0.030000 +0.030000 +0.031108 +0.033458 +0.033593 +0.033600 +0.033600 +0.033600 +0.033600 +0.033600 +0.033600 +0.032446 +0.031329 +0.033826 +0.034018 +0.034031 +0.034032 +0.034032 +0.034032 +0.034032 +0.033988 +0.032694 +0.031352 +0.033866 +0.034067 +0.034083 +0.034084 +0.034084 +0.034084 +0.034082 +0.034031 +0.032720 +0.031355 +0.033871 +0.034073 +0.034089 +0.034090 +0.034090 +0.034090 +0.034088 +0.034035 +0.032723 +0.031355 +0.033871 +0.034073 +0.034089 +0.034091 +0.034091 +0.034091 +0.034089 +0.034036 +0.032723 +0.031355 +0.033871 +0.034073 +0.034089 +0.034091 +0.034091 +0.034091 +0.034089 +0.034036 +0.032723 +0.031355 +0.033871 +0.034073 +0.034089 +0.034091 +0.034091 +0.034091 +0.034089 +0.034036 +0.032723 +0.031355 +0.033871 +0.034073 +0.034089 +0.034091 +0.034091 +0.034091 +0.034089 +0.034036 +0.032723 +0.031355 +0.033871 +0.034073 +0.034089 +0.034091 +0.034091 +0.034091 +0.034089 +0.034036 +0.032723 +0.033591 +0.037329 +0.037613 +0.037631 +0.037632 +0.037632 +0.037632 +0.037632 +0.037588 +0.035140 +0.038825 +0.045519 +0.046176 +0.046228 +0.046231 +0.046232 +0.046232 +0.046228 +0.046036 +0.040827 +0.039588 +0.046797 +0.047664 +0.047746 +0.047753 +0.047754 +0.047754 +0.047742 +0.047386 +0.041682 +0.039692 +0.046981 +0.047889 +0.047985 +0.047994 +0.047995 +0.047995 +0.047975 +0.047584 +0.041802 +0.039705 +0.047006 +0.047921 +0.048020 +0.048030 +0.048031 +0.048030 +0.048008 +0.047611 +0.041818 +0.039707 +0.047009 +0.047925 +0.048025 +0.048035 +0.048036 +0.048035 +0.048013 +0.047615 +0.041820 +0.039707 +0.047010 +0.047926 +0.048026 +0.048036 +0.048037 +0.048036 +0.048013 +0.047616 +0.041820 +0.039708 +0.047010 +0.047926 +0.048026 +0.048036 +0.048037 +0.048036 +0.048013 +0.047616 +0.041820 +0.039708 +0.047010 +0.047926 +0.048026 +0.048036 +0.048037 +0.048036 +0.048013 +0.047616 +0.041820 +0.037199 +0.043094 +0.043851 +0.043936 +0.043945 +0.043946 +0.043945 +0.043925 +0.043580 +0.039097 +0.034818 +0.039380 +0.039995 +0.040058 +0.040063 +0.040064 +0.040064 +0.040054 +0.039750 +0.036513 +0.040994 +0.049165 +0.050435 +0.050586 +0.050600 +0.050602 +0.050601 +0.050565 +0.049890 +0.043262 +0.042214 +0.051228 +0.052861 +0.053083 +0.053107 +0.053110 +0.053107 +0.053042 +0.052078 +0.044636 +0.042431 +0.051615 +0.053338 +0.053592 +0.053623 +0.053626 +0.053622 +0.053536 +0.052496 +0.044888 +0.042467 +0.051680 +0.053423 +0.053685 +0.053718 +0.053722 +0.053716 +0.053624 +0.052569 +0.044931 +0.042473 +0.051691 +0.053436 +0.053700 +0.053735 +0.053738 +0.053732 +0.053639 +0.052581 +0.044938 +0.042474 +0.051692 +0.053439 +0.053703 +0.053737 +0.053741 +0.053735 +0.053642 +0.052583 +0.044939 +0.042474 +0.051693 +0.053439 +0.053703 +0.053738 +0.053741 +0.053735 +0.053642 +0.052583 +0.044939 +0.042227 +0.051279 +0.052958 +0.053213 +0.053247 +0.053251 +0.053245 +0.053153 +0.052147 +0.044662 +0.038866 +0.045928 +0.047201 +0.047398 +0.047424 +0.047427 +0.047422 +0.047349 +0.046591 +0.040981 +0.035168 +0.039998 +0.040754 +0.040865 +0.040878 +0.040880 +0.040878 +0.040839 +0.040418 +0.036917 +0.041652 +0.050333 +0.051875 +0.052122 +0.052154 +0.052158 +0.052152 +0.052055 +0.051155 +0.044024 +0.043063 +0.052739 +0.054730 +0.055081 +0.055132 +0.055138 +0.055127 +0.054978 +0.053716 +0.045621 +0.043363 +0.053275 +0.055397 +0.055799 +0.055862 +0.055870 +0.055855 +0.055672 +0.054299 +0.045971 +0.043423 +0.053385 +0.055539 +0.055956 +0.056024 +0.056032 +0.056015 +0.055821 +0.054422 +0.046042 +0.043434 +0.053406 +0.055567 +0.055987 +0.056057 +0.056066 +0.056047 +0.055851 +0.054445 +0.046056 +0.043436 +0.053410 +0.055572 +0.055993 +0.056063 +0.056072 +0.056053 +0.055856 +0.054450 +0.046058 +0.043411 +0.053365 +0.055518 +0.055935 +0.056005 +0.056014 +0.055995 +0.055801 +0.054402 +0.046029 +0.043048 +0.052746 +0.054784 +0.055176 +0.055241 +0.055249 +0.055232 +0.055050 +0.053743 +0.045618 +0.039388 +0.046862 +0.048367 +0.048654 +0.048703 +0.048709 +0.048696 +0.048563 +0.047610 +0.041590 +0.035275 +0.040194 +0.041005 +0.041141 +0.041161 +0.041164 +0.041159 +0.041102 +0.040635 +0.037044 +0.041862 +0.050717 +0.052367 +0.052664 +0.052713 +0.052719 +0.052706 +0.052574 +0.051580 +0.044273 +0.043346 +0.053258 +0.055398 +0.055819 +0.055894 +0.055903 +0.055881 +0.055683 +0.054292 +0.045959 +0.043687 +0.053869 +0.056163 +0.056646 +0.056737 +0.056749 +0.056720 +0.056480 +0.054960 +0.046357 +0.043763 +0.054010 +0.056346 +0.056849 +0.056947 +0.056961 +0.056928 +0.056674 +0.055117 +0.046449 +0.043780 +0.054041 +0.056387 +0.056896 +0.056996 +0.057010 +0.056976 +0.056718 +0.055152 +0.046469 +0.043780 +0.054043 +0.056389 +0.056899 +0.057000 +0.057014 +0.056980 +0.056720 +0.055154 +0.046470 +0.043740 +0.053971 +0.056300 +0.056803 +0.056902 +0.056916 +0.056883 +0.056628 +0.055076 +0.046423 +0.043328 +0.053263 +0.055452 +0.055917 +0.056009 +0.056021 +0.055991 +0.055756 +0.054319 +0.045954 +0.039563 +0.047185 +0.048785 +0.049119 +0.049185 +0.049194 +0.049172 +0.049005 +0.047970 +0.041800 +0.035310 +0.040259 +0.041090 +0.041236 +0.041261 +0.041265 +0.041257 +0.041193 +0.040708 +0.037086 +0.041932 +0.050847 +0.052538 +0.052857 +0.052915 +0.052923 +0.052905 +0.052757 +0.051726 +0.044358 +0.043443 +0.053440 +0.055638 +0.056090 +0.056178 +0.056190 +0.056161 +0.055939 +0.054498 +0.046077 +0.043801 +0.054083 +0.056447 +0.056967 +0.057074 +0.057089 +0.057052 +0.056784 +0.055203 +0.046497 +0.043886 +0.054241 +0.056652 +0.057196 +0.057312 +0.057329 +0.057287 +0.057002 +0.055379 +0.046599 +0.043906 +0.054278 +0.056701 +0.057253 +0.057372 +0.057389 +0.057346 +0.057055 +0.055421 +0.046624 +0.043905 +0.054278 +0.056701 +0.057254 +0.057373 +0.057391 +0.057347 +0.057056 +0.055422 +0.046624 +0.043858 +0.054193 +0.056595 +0.057138 +0.057255 +0.057272 +0.057230 +0.056945 +0.055329 +0.046568 +0.043427 +0.053448 +0.055699 +0.056198 +0.056305 +0.056321 +0.056282 +0.056022 +0.054531 +0.046076 +0.039624 +0.047299 +0.048937 +0.049292 +0.049368 +0.049379 +0.049352 +0.049169 +0.048100 +0.041875 +0.035321 +0.040281 +0.041120 +0.041270 +0.041297 +0.041301 +0.041292 +0.041225 +0.040733 +0.037100 +0.041955 +0.050891 +0.052598 +0.052927 +0.052989 +0.052998 +0.052977 +0.052822 +0.051778 +0.044387 +0.043477 +0.053503 +0.055724 +0.056190 +0.056284 +0.056298 +0.056265 +0.056033 +0.054571 +0.046119 +0.043841 +0.054161 +0.056551 +0.057089 +0.057203 +0.057220 +0.057179 +0.056898 +0.055292 +0.046548 +0.043931 +0.054326 +0.056767 +0.057330 +0.057455 +0.057473 +0.057427 +0.057128 +0.055478 +0.046655 +0.043952 +0.054366 +0.056821 +0.057392 +0.057520 +0.057539 +0.057491 +0.057186 +0.055524 +0.046682 +0.043951 +0.054366 +0.056821 +0.057392 +0.057521 +0.057540 +0.057492 +0.057186 +0.055524 +0.046681 +0.043901 +0.054275 +0.056706 +0.057268 +0.057393 +0.057412 +0.057365 +0.057067 +0.055424 +0.046622 +0.043462 +0.053516 +0.055791 +0.056306 +0.056420 +0.056437 +0.056394 +0.056123 +0.054610 +0.046121 +0.039645 +0.047340 +0.048993 +0.049358 +0.049438 +0.049450 +0.049420 +0.049231 +0.048148 +0.041902 +0.035325 +0.040288 +0.041130 +0.041282 +0.041310 +0.041314 +0.041305 +0.041236 +0.040742 +0.037105 +0.041963 +0.050907 +0.052620 +0.052952 +0.053016 +0.053025 +0.053003 +0.052845 +0.051796 +0.044397 +0.043488 +0.053526 +0.055755 +0.056227 +0.056324 +0.056338 +0.056304 +0.056068 +0.054598 +0.046134 +0.043856 +0.054189 +0.056590 +0.057134 +0.057252 +0.057270 +0.057227 +0.056941 +0.055326 +0.046566 +0.043947 +0.054358 +0.056811 +0.057381 +0.057510 +0.057530 +0.057481 +0.057176 +0.055515 +0.046676 +0.043969 +0.054399 +0.056867 +0.057446 +0.057578 +0.057598 +0.057548 +0.057237 +0.055563 +0.046704 +0.043968 +0.054399 +0.056866 +0.057446 +0.057579 +0.057599 +0.057549 +0.057237 +0.055563 +0.046703 +0.043917 +0.054305 +0.056748 +0.057318 +0.057447 +0.057467 +0.057418 +0.057114 +0.055461 +0.046643 +0.043475 +0.053541 +0.055826 +0.056347 +0.056464 +0.056482 +0.056438 +0.056162 +0.054640 +0.046137 +0.039653 +0.047356 +0.049014 +0.049383 +0.049465 +0.049477 +0.049447 +0.049254 +0.048166 +0.041912 +0.035326 +0.040291 +0.041133 +0.041286 +0.041315 +0.041319 +0.041310 +0.041240 +0.040745 +0.037107 +0.041966 +0.050912 +0.052627 +0.052961 +0.053026 +0.053035 +0.053013 +0.052854 +0.051803 +0.044401 +0.043493 +0.053534 +0.055767 +0.056240 +0.056338 +0.056353 +0.056318 +0.056081 +0.054608 +0.046140 +0.043861 +0.054199 +0.056604 +0.057151 +0.057271 +0.057289 +0.057245 +0.056957 +0.055338 +0.046573 +0.043953 +0.054369 +0.056827 +0.057401 +0.057531 +0.057551 +0.057502 +0.057195 +0.055530 +0.046684 +0.043975 +0.054412 +0.056884 +0.057466 +0.057601 +0.057621 +0.057570 +0.057256 +0.055578 +0.046712 +0.043975 +0.054411 +0.056883 +0.057466 +0.057601 +0.057622 +0.057571 +0.057256 +0.055578 +0.046712 +0.043923 +0.054317 +0.056764 +0.057337 +0.057468 +0.057489 +0.057439 +0.057132 +0.055474 +0.046650 +0.043480 +0.053551 +0.055839 +0.056362 +0.056481 +0.056499 +0.056454 +0.056177 +0.054651 +0.046144 +0.039656 +0.047361 +0.049022 +0.049392 +0.049475 +0.049488 +0.049457 +0.049263 +0.048173 +0.041916 +0.035327 +0.040292 +0.041135 +0.041288 +0.041316 +0.041321 +0.041311 +0.041241 +0.040746 +0.037108 +0.041967 +0.050914 +0.052630 +0.052964 +0.053029 +0.053039 +0.053017 +0.052857 +0.051805 +0.044402 +0.043494 +0.053537 +0.055771 +0.056245 +0.056344 +0.056358 +0.056324 +0.056085 +0.054612 +0.046142 +0.043863 +0.054203 +0.056610 +0.057158 +0.057278 +0.057296 +0.057252 +0.056963 +0.055343 +0.046576 +0.043955 +0.054374 +0.056833 +0.057408 +0.057539 +0.057560 +0.057510 +0.057202 +0.055535 +0.046687 +0.043978 +0.054417 +0.056890 +0.057474 +0.057609 +0.057630 +0.057579 +0.057264 +0.055584 +0.046715 +0.043977 +0.054416 +0.056890 +0.057474 +0.057610 +0.057631 +0.057579 +0.057264 +0.055584 +0.046715 +0.043925 +0.054321 +0.056770 +0.057344 +0.057476 +0.057497 +0.057447 +0.057139 +0.055480 +0.046653 +0.043482 +0.053554 +0.055844 +0.056368 +0.056488 +0.056506 +0.056461 +0.056183 +0.054655 +0.046146 +0.039657 +0.047363 +0.049025 +0.049396 +0.049479 +0.049492 +0.049461 +0.049267 +0.048176 +0.041918 diff --git a/test_data/laplace_sor_ones_2.txt b/test_data/laplace_sor_ones_2.txt new file mode 100644 index 00000000..92f88f79 --- /dev/null +++ b/test_data/laplace_sor_ones_2.txt @@ -0,0 +1,1000 @@ +0.043263 +0.048314 +0.048911 +0.048967 +0.048971 +0.048972 +0.048972 +0.048965 +0.048703 +0.044440 +0.049395 +0.057953 +0.059145 +0.059279 +0.059292 +0.059293 +0.059292 +0.059263 +0.058613 +0.050991 +0.050469 +0.059761 +0.061266 +0.061459 +0.061480 +0.061482 +0.061480 +0.061422 +0.060515 +0.052180 +0.050649 +0.060081 +0.061660 +0.061880 +0.061906 +0.061908 +0.061904 +0.061829 +0.060859 +0.052386 +0.050678 +0.060134 +0.061728 +0.061954 +0.061982 +0.061985 +0.061980 +0.061900 +0.060917 +0.052420 +0.050682 +0.060142 +0.061738 +0.061966 +0.061995 +0.061998 +0.061993 +0.061912 +0.060926 +0.052425 +0.050683 +0.060143 +0.061740 +0.061968 +0.061997 +0.062000 +0.061995 +0.061914 +0.060927 +0.052426 +0.050683 +0.060143 +0.061740 +0.061968 +0.061997 +0.062000 +0.061995 +0.061914 +0.060928 +0.052426 +0.050498 +0.059833 +0.061380 +0.061601 +0.061629 +0.061632 +0.061627 +0.061548 +0.060601 +0.052219 +0.046096 +0.052883 +0.054006 +0.054172 +0.054194 +0.054197 +0.054192 +0.054128 +0.053407 +0.047416 +0.051960 +0.062063 +0.063693 +0.063914 +0.063939 +0.063941 +0.063939 +0.063865 +0.062828 +0.053665 +0.063575 +0.080510 +0.083621 +0.084099 +0.084160 +0.084166 +0.084156 +0.083964 +0.081826 +0.066064 +0.066086 +0.084771 +0.088668 +0.089329 +0.089422 +0.089432 +0.089413 +0.089113 +0.086312 +0.068835 +0.066601 +0.085688 +0.089806 +0.090551 +0.090664 +0.090678 +0.090650 +0.090291 +0.087298 +0.069423 +0.066701 +0.085870 +0.090040 +0.090810 +0.090932 +0.090946 +0.090914 +0.090537 +0.087499 +0.069540 +0.066719 +0.085904 +0.090085 +0.090861 +0.090985 +0.091000 +0.090966 +0.090585 +0.087537 +0.069561 +0.066722 +0.085910 +0.090093 +0.090870 +0.090995 +0.091010 +0.090976 +0.090593 +0.087544 +0.069565 +0.066684 +0.085844 +0.090012 +0.090784 +0.090908 +0.090923 +0.090889 +0.090510 +0.087472 +0.069522 +0.065769 +0.084295 +0.088190 +0.088910 +0.089026 +0.089040 +0.089007 +0.088651 +0.085830 +0.068491 +0.056266 +0.069171 +0.071861 +0.072366 +0.072450 +0.072460 +0.072435 +0.072175 +0.070190 +0.058228 +0.054543 +0.066452 +0.068904 +0.069330 +0.069393 +0.069401 +0.069385 +0.069180 +0.067428 +0.056483 +0.068140 +0.088299 +0.092917 +0.093801 +0.093945 +0.093962 +0.093921 +0.093458 +0.090003 +0.071053 +0.071671 +0.094341 +0.100140 +0.101345 +0.101558 +0.101585 +0.101516 +0.100845 +0.096376 +0.074954 +0.072519 +0.095856 +0.102036 +0.103395 +0.103649 +0.103682 +0.103594 +0.102811 +0.098010 +0.075920 +0.072710 +0.096207 +0.102490 +0.103900 +0.104172 +0.104207 +0.104109 +0.103289 +0.098396 +0.076144 +0.072750 +0.096283 +0.102590 +0.104013 +0.104291 +0.104328 +0.104226 +0.103396 +0.098481 +0.076193 +0.072752 +0.096287 +0.102596 +0.104022 +0.104301 +0.104338 +0.104236 +0.103404 +0.098487 +0.076196 +0.072605 +0.096025 +0.102272 +0.103675 +0.103950 +0.103987 +0.103885 +0.103068 +0.098202 +0.076025 +0.070974 +0.093242 +0.098962 +0.100235 +0.100485 +0.100518 +0.100425 +0.099680 +0.095251 +0.074198 +0.059546 +0.074811 +0.078655 +0.079515 +0.079687 +0.079710 +0.079644 +0.079131 +0.076123 +0.061817 +0.055383 +0.067949 +0.070774 +0.071351 +0.071455 +0.071469 +0.071433 +0.071114 +0.069028 +0.057424 +0.069706 +0.091100 +0.096428 +0.097607 +0.097835 +0.097865 +0.097780 +0.097093 +0.093002 +0.072811 +0.073701 +0.097978 +0.104715 +0.106320 +0.106651 +0.106696 +0.106563 +0.105588 +0.100277 +0.077237 +0.074769 +0.099897 +0.107131 +0.108948 +0.109342 +0.109396 +0.109232 +0.108099 +0.102351 +0.078456 +0.075039 +0.100395 +0.107778 +0.109671 +0.110094 +0.110153 +0.109972 +0.108782 +0.102900 +0.078773 +0.075103 +0.100514 +0.107937 +0.109852 +0.110285 +0.110346 +0.110159 +0.108952 +0.103035 +0.078850 +0.075095 +0.100501 +0.107922 +0.109838 +0.110272 +0.110333 +0.110146 +0.108938 +0.103021 +0.078841 +0.074844 +0.100052 +0.107361 +0.109233 +0.109656 +0.109716 +0.109533 +0.108355 +0.102534 +0.078551 +0.072871 +0.096652 +0.103272 +0.104944 +0.105321 +0.105374 +0.105210 +0.104158 +0.098916 +0.076334 +0.060702 +0.076890 +0.081287 +0.082394 +0.082646 +0.082682 +0.082570 +0.081864 +0.078356 +0.063116 +0.055672 +0.068479 +0.071461 +0.072116 +0.072250 +0.072267 +0.072214 +0.071834 +0.069607 +0.057757 +0.070265 +0.092125 +0.097760 +0.099094 +0.099381 +0.099421 +0.099300 +0.098491 +0.094122 +0.073454 +0.074454 +0.099365 +0.106520 +0.108340 +0.108755 +0.108813 +0.108631 +0.107486 +0.101795 +0.078106 +0.075635 +0.101493 +0.109212 +0.111281 +0.111775 +0.111846 +0.111622 +0.110290 +0.104099 +0.079456 +0.075956 +0.102087 +0.109988 +0.112152 +0.112684 +0.112761 +0.112515 +0.111111 +0.104756 +0.079834 +0.076037 +0.102239 +0.110191 +0.112384 +0.112929 +0.113009 +0.112756 +0.111328 +0.104928 +0.079931 +0.076020 +0.102209 +0.110154 +0.112346 +0.112892 +0.112972 +0.112718 +0.111291 +0.104896 +0.079912 +0.075711 +0.101654 +0.109455 +0.111587 +0.112116 +0.112193 +0.111947 +0.110563 +0.104291 +0.079554 +0.073587 +0.097976 +0.105004 +0.106892 +0.107357 +0.107425 +0.107208 +0.105984 +0.100369 +0.077162 +0.061131 +0.077684 +0.082327 +0.083565 +0.083871 +0.083915 +0.083771 +0.082961 +0.079227 +0.063612 +0.055775 +0.068672 +0.071717 +0.072408 +0.072557 +0.072578 +0.072515 +0.072107 +0.069821 +0.057878 +0.070468 +0.092507 +0.098268 +0.099675 +0.099994 +0.100040 +0.099900 +0.099032 +0.094547 +0.073694 +0.074738 +0.099897 +0.107229 +0.109152 +0.109614 +0.109680 +0.109470 +0.108242 +0.102387 +0.078441 +0.075970 +0.102122 +0.110052 +0.112245 +0.112796 +0.112877 +0.112619 +0.111188 +0.104802 +0.079852 +0.076319 +0.102769 +0.110900 +0.113199 +0.113793 +0.113881 +0.113598 +0.112085 +0.105518 +0.080263 +0.076410 +0.102940 +0.111129 +0.113463 +0.114073 +0.114164 +0.113872 +0.112332 +0.105712 +0.080373 +0.076387 +0.102901 +0.111080 +0.113411 +0.114022 +0.114113 +0.113821 +0.112282 +0.105670 +0.080347 +0.076052 +0.102295 +0.110314 +0.112574 +0.113163 +0.113251 +0.112970 +0.111482 +0.105008 +0.079958 +0.073864 +0.098498 +0.105703 +0.107697 +0.108211 +0.108288 +0.108041 +0.106732 +0.100952 +0.077490 +0.061296 +0.077994 +0.082742 +0.084043 +0.084379 +0.084429 +0.084266 +0.083405 +0.079573 +0.063807 +0.055813 +0.068743 +0.071813 +0.072520 +0.072677 +0.072699 +0.072632 +0.072211 +0.069902 +0.057923 +0.070544 +0.092650 +0.098462 +0.099901 +0.100237 +0.100285 +0.100136 +0.099243 +0.094710 +0.073785 +0.074845 +0.100101 +0.107507 +0.109476 +0.109961 +0.110032 +0.109808 +0.108543 +0.102620 +0.078570 +0.076100 +0.102370 +0.110390 +0.112639 +0.113218 +0.113305 +0.113030 +0.111553 +0.105084 +0.080010 +0.076462 +0.103042 +0.111272 +0.113634 +0.114260 +0.114354 +0.114053 +0.112489 +0.105830 +0.080437 +0.076559 +0.103224 +0.111516 +0.113915 +0.114559 +0.114657 +0.114345 +0.112752 +0.106036 +0.080553 +0.076534 +0.103181 +0.111462 +0.113858 +0.114502 +0.114600 +0.114288 +0.112697 +0.105989 +0.080525 +0.076187 +0.102552 +0.110665 +0.112986 +0.113605 +0.113699 +0.113399 +0.111863 +0.105302 +0.080121 +0.073973 +0.098705 +0.105986 +0.108028 +0.108567 +0.108649 +0.108388 +0.107039 +0.101188 +0.077621 +0.061360 +0.078116 +0.082909 +0.084239 +0.084590 +0.084642 +0.084471 +0.083586 +0.079712 +0.063884 +0.055827 +0.068770 +0.071850 +0.072563 +0.072724 +0.072747 +0.072677 +0.072251 +0.069932 +0.057940 +0.070572 +0.092705 +0.098537 +0.099990 +0.100333 +0.100382 +0.100229 +0.099325 +0.094773 +0.073819 +0.074886 +0.100180 +0.107616 +0.109605 +0.110100 +0.110174 +0.109944 +0.108663 +0.102711 +0.078621 +0.076151 +0.102468 +0.110524 +0.112799 +0.113391 +0.113480 +0.113198 +0.111701 +0.105197 +0.080072 +0.076519 +0.103152 +0.111423 +0.113813 +0.114454 +0.114552 +0.114241 +0.112655 +0.105957 +0.080507 +0.076618 +0.103339 +0.111675 +0.114103 +0.114762 +0.114864 +0.114543 +0.112926 +0.106169 +0.080627 +0.076593 +0.103294 +0.111619 +0.114044 +0.114703 +0.114805 +0.114484 +0.112869 +0.106120 +0.080598 +0.076240 +0.102655 +0.110808 +0.113156 +0.113789 +0.113886 +0.113578 +0.112020 +0.105422 +0.080188 +0.074016 +0.098788 +0.106101 +0.108165 +0.108715 +0.108799 +0.108532 +0.107165 +0.101285 +0.077675 +0.061385 +0.078165 +0.082976 +0.084319 +0.084677 +0.084731 +0.084556 +0.083661 +0.079769 +0.063915 +0.055832 +0.068780 +0.071863 +0.072580 +0.072742 +0.072765 +0.072695 +0.072266 +0.069944 +0.057946 +0.070583 +0.092726 +0.098566 +0.100025 +0.100370 +0.100421 +0.100266 +0.099357 +0.094797 +0.073833 +0.074902 +0.100211 +0.107658 +0.109656 +0.110156 +0.110230 +0.109998 +0.108710 +0.102747 +0.078641 +0.076170 +0.102506 +0.110578 +0.112863 +0.113461 +0.113552 +0.113266 +0.111761 +0.105242 +0.080097 +0.076542 +0.103195 +0.111484 +0.113886 +0.114534 +0.114633 +0.114319 +0.112723 +0.106008 +0.080535 +0.076642 +0.103385 +0.111739 +0.114181 +0.114847 +0.114950 +0.114625 +0.112998 +0.106223 +0.080657 +0.076616 +0.103339 +0.111683 +0.114121 +0.114787 +0.114890 +0.114565 +0.112940 +0.106174 +0.080628 +0.076262 +0.102697 +0.110866 +0.113226 +0.113866 +0.113964 +0.113653 +0.112085 +0.105471 +0.080215 +0.074033 +0.098822 +0.106148 +0.108220 +0.108777 +0.108862 +0.108591 +0.107217 +0.101324 +0.077696 +0.061395 +0.078184 +0.083004 +0.084352 +0.084713 +0.084768 +0.084591 +0.083691 +0.079792 +0.063928 +0.050973 +0.061031 +0.063516 +0.064120 +0.064261 +0.064281 +0.064218 +0.063841 +0.061889 +0.052618 +0.062442 +0.079641 +0.084298 +0.085514 +0.085812 +0.085856 +0.085716 +0.084926 +0.081152 +0.064870 +0.065784 +0.085438 +0.091359 +0.093014 +0.093442 +0.093506 +0.093299 +0.092187 +0.087292 +0.068562 +0.066794 +0.087267 +0.093690 +0.095580 +0.096091 +0.096169 +0.095915 +0.094621 +0.089274 +0.069714 +0.067099 +0.087834 +0.094436 +0.096423 +0.096976 +0.097061 +0.096783 +0.095413 +0.089902 +0.070072 +0.067183 +0.087993 +0.094650 +0.096671 +0.097239 +0.097327 +0.097040 +0.095643 +0.090082 +0.070173 +0.067158 +0.087948 +0.094593 +0.096610 +0.097178 +0.097267 +0.096979 +0.095585 +0.090033 +0.070144 +0.066842 +0.087375 +0.093865 +0.095810 +0.096355 +0.096439 +0.096164 +0.094822 +0.089406 +0.069777 +0.064944 +0.084071 +0.089837 +0.091532 +0.092001 +0.092074 +0.091835 +0.090666 +0.085874 +0.067637 +0.055172 +0.068072 +0.071800 +0.072884 +0.073185 +0.073230 +0.073076 +0.072319 +0.069195 +0.057036 diff --git a/test_data/laplacian_P_direct.pm b/test_data/laplacian_P_direct.pm index 9d47683921ed96df62749927f5a3b461ba143a86..7fab5d454769b37e0a5234004ec0fa02829b625c 100644 GIT binary patch literal 36944 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 J-BjP!`9I6?iAw+g literal 36944 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 z z;8y=ncKgr6{kW`yb%nRRK3ng{dxUh&@M7r$&gS9GgZLSm2WRu}=0SbH_3zg=U5^)S z{<+T1R?L&0A0R zwfaz;50B;5@$WG4XFoqaR9>BR9(};4_x$f!*74Z)VjbWtk2(+Q`Tzf&$E|g{>3UB8 zcklP*-zQuBdt~;Fb%L{XIhI#vy+5Dcv-53z;JP1uio;{q&GS$mb!PXd_)OnT`K8YP E0u}}Dg#Z8m diff --git a/test_data/laplacian_P_extend.pm b/test_data/laplacian_P_extend.pm index 97a4533daf97ea0fdeae4ca5f345ec628b51eace..c1687dd876414d47db4961cf208e30f542e7baf1 100644 GIT binary patch literal 109112 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�p*L0gpU_L)hY+H|sNg+TpskQ+V*wY;Z1{ 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 b`28mA4k}vDLl63^@3Z}!Ui7g2JYwAss%%o* diff --git a/test_data/laplacian_P_mod_class.pm b/test_data/laplacian_P_mod_class.pm index d45787b221d9af936880029292cfb6f8d5e43ead..e98924d29eeac16fa32c060647d6da1d522d3e2e 100644 GIT binary patch literal 36944 zcmeI4$&*}15r-QL0t~`nv#)LTO{^B1fF5?U$zqXN#4_xN&Fq`u#6K{)`2XO>$+RQn z6A|{{@Qn!62RVX+4->v|Bft0RdtLqL>NoRddYBo%4rTnZvZ^wFRWCEAr`6Kv=DRP9 zMmPL>G#dSBG`jJxflml|Vh6Hjx9jlrq~x=NUGbbZX339s*LUGb@^?er@u`p;pWM24 z?jxUf{Zqou-90rS`m%K=*&laf{*@UA3@1>2d z@jgoE-I?Da`R^R4wEeISoBPo7vG$YfFTbbu{WxZg&tw%k=RWZy=kv1r+s}Eu!&T@U zaaM`k_&Gq27tMQYJR^L#Hb>@}W4&=$Z(WG^ZLiDymIa&$WM`+M1OGzx=2oLBN1z2ChB6oFo$s60NL*%Xw$8iWeurWplsb%@0!%Kt% zHJbCW&T~H0YtF~|&-qZhIUoCioL&?2@S&EmIfjdUL!QjNHiS899L~$ea(`XSw|QfG zeTdxE;U#ZuZwQgQI(#?_Jg_lFm#6&T1}_l~^pc#9{V3-{U&;B{r*b~@n4FLOOHOZ$ zdHB$CusMc{{Y{?Cy(xq_dJ&wLjpcqO=G(lny*Whg>hO{`wzq`HT^&B01s>QKqsvo% zaD$f!2l`~r$G(~Kp?~Il?58;&`fAR{J}alU#youJx!4@T#Xc-g=H3><9DNzi%f@nV zbCz$LryS)5Ut$qoB%blni7V2Z?a%aNe-6<1?fvvD`xbo)VGsS&z4lW3x_<0K_!@`k z6MdOq{OF6l?sq*%&9hg8kA1*CD&mX2q)&SkeyM5wTi@fbQO6)Y(Lw#wR}lQ@i@ol5 zy}f{a)Rg;}yanSLtf9e3ikG|OJe%G7V>?4=mZ(dtZ;wpdoVz2wD350xp zdqQ#;{T(6bA~}qHTL`*HPNJU;K^MtI^mm4!=V%=f=UpM~dNMw9?+&rPi0>E<=CQn( zdrt^+;}Cc`hMP8cVc#uZ>Ig2@le~yeOnDf895(%PaOTDQ?JIHgibtdj)`Sm%Y(U%5ay_DIBkTq$MB-o;q}1~d0PMS zW$r^E@TCX9*D*Zp3!a0y4~H;EZ{SRh;i?Uu*s-B|4*A1OC$308wkOkT?YHz-dp|wPzD1ux?Cyv)7%rAcQ#a{Qj9;D{kE5gS_CnMNR9|`o=G{tAFd*K4={37~lG*uORr* z7kl0BdXQRTpU6Jz%l;(di(1jAb%S4OLjTr>{lz%c2fp>c5juh&eX-a5t_R6c_K6!w zCr8n9#1}QAPwNN2)QtYEAM4gQEt51ct_Gf>xeiP(wKPWtM<=^4LkXYjriK& zVIFJ$T-dOa$JpSd4Sv|QeLnP@vt#)({z8ajcso{yFZ|_=4nKH_#6*V&Iw%+Fgt4(1 zs}tAy%ehcH@=zx}HAMW2A@Z@Vv}3&UrA-dDtg%9viVn9_qxW)`|a>5cydD z@?!2%2)yV4@Nx_{`+|I#`)UYt^ai*(hMP9{VgFi)XHee=oBXkTJp>zPXzTEWqrBw{ zFSy80Uc@J^TP4i|5k`+P=}-Zv3)y4-fbPeaFn-v;k6keKXl>|ACwDyH|N1P=V4#Y zdC;Hbq28B=KLg}o{B~U9i1c2CzN*km6?(lwe?;u#B7Ftjel5~h(Cy74eFGi8=py|O z-99YR=j?UFvX9~4K8qjw5q=Q+rhBb#_EWq1v5xJ7`n2cZm)g|7bxI8CQ^db9@Tp(? z=!?DXXD`AYYQ??Q4g0AH{a7FN7kygG_$BA{Z~oguMEn~ApZdj*zS!%2>Kym&aYf=#>%{qGh;gld<1_cG5aQDV zi0_!#_62z{_v;Ym=ne343@7`Ae3|=A2y^rd_&SEGeZ+Gx_uCNW=p~$K*_d;{-Sc=3 z_`*@%@`V>%rU6H^|>CpK|K;?SFj^Scn^+T)DR-0wq(zZpV&$Hc})50n>ke+Xd? zJG>mj2^)Pzn=5u70dzd{LwNv|jN`E$ZL8w6BTyHwHfSiywWl*ZtHn z!X9eHz19u;sR{j9ANV5o^=Td8mmJr>`EI`u@ox-#>K8xyVz2wD4}?9`fP1Y6_EQ7; zu^#Y64d~N)z%MnRf9t_I6!C8ieCiiJ`eLv9sU@WEK5M~T9_nGJ2XpsvR}YhaoV(>O z@n`b)3eGk7&(_%azINm6MCHb7^6;bQuRePI{ss@)Ug8-+tGFd>^D3>=e%R}M4&p)I zTl+lvAMW#D^LDt;;Xdhq_7SmNf7ZEZJvtT-+HSwrzbMZVw)vOVX+P}soJa#SqG&sF{YU}c;E0aasO5?2wi_bhZn{20bHEuQg^|!cRf4ldy zU6svfGJWXu_@UFcHvS#Y(!A*U61q-oKacueE;jd5-`CmJJ$Q~e*5{oie%{Mgx}W)d zEx(U__(|t){I5KX)VJR=Q5BXU?k6C&SLw?rxVLnaMz4S%>l+ZjZ;gFy8^O&XQFyv=_ALi3E-AiB8 zPYFwTsonRXqV^KDpI>R6_QPK9ImDfGzil3SwO?<2UZg+m{ywc;EIk+Pv&2u-UP9N2 zzTaPb|GzcaY58@%c6mE?UhJ}$;<{hl9#yYN30)_8ZzU}G(XJm+dkI}9md>>^s$R|e zK-X&@?sNJ54EI^zi}`2Xh}ui&I`O36XQ_``U+un7vRjw!_1cZ&&k6DB3HyA$>pas@ z^_uj>Qr>Fs>(_nyDWRXU_<2t~_VcVO^UtT!=VG%_^=kTf$*=bI`gT6G$L=d(+h1v& z_V#+ux7+jTr-ai{^;+BW@5;Zf`E~PKyZ@ATyM11>>T!&Q{7m<-?&s5$e_iwI=C^kL zLw;_>6*Qm6*L8ZW8JGH|_H{p>uKeqoUpK$C`ycZ2Sm&qjtHrK-ZNHy7YU@3RxHGC= z&G(4pzgPS9;qxUfviaPq^n32Cy6)rq{-|^=^QC=0?dFH$(z=qp6t}&8dsMxK&+F1X zwC~6JAMUfx6Yt}=WRSKEAK5-v`fsFRktK zzsFtvK6(D{>3TlqmFUlv63(i!oWBn(tph3qb^d8OPha$$ zCG6|heI>uzUDp@&Q^LM}-BuzyPl8FQFLDkXQS#hgT9^UbI&}_GQuY&(eL02W`JT ze7?jDH$Uh0d(Xpta-G9{ZdcbZYQFzAOJmVG7Z19wjU(#c{Ip*iUv%EF*w=0x{~spD z{@f4`%5EI}iuLyh&NlxqQv2^I9s7NQqqg32h~AgaN9_BY+%M|KIK~yP9<$E_J(uV? wM9=BG=sh?V``V3TTyeP1#s5chxA#2UXTN*%ens=y`z-ZQ=gnKOuRX>2FYghhivR!s literal 36944 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