Fwd: Incomplete Factorization Error

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Fwd: Incomplete Factorization Error

gedeone
Hi Kai,

I was trying to install your work as a demo stand-alone package.
After instaling all the libraries correctly with the makefile provided, I get the following error
when it starts to compile the source code:


mkoctfile -c -g -Lbuild/lib -Ibuild/lib -DHAVE_ITSOL -DHAVE_ZITSOL -litsol -lzitsol src/iluk.cc -o build/iluk.o
In file included from src/iluk.cc:35:0:
src/itsol_util.h: In instantiation of ‘z_itsol_sparse_matrix_t* itsol_convert_to_cs(const octave_sparse_matrix_t&) [with z_itsol_sparse_matrix_t = itsol::SpaFmt; c_data_t = double; octave_sparse_matrix_t = SparseMatrix]’:
src/iluk.cc:82:33:   required from ‘octave_value_list generic_iluk(octave_sparse_matrix_t, int, int) [with octave_sparse_matrix_t = SparseMatrix; octave_column_vector_t = ColumnVector; c_data_t = double; cpp_data_t = double; z_itsol_sparse_matrix_t = itsol::SpaFmt; z_itsol_decomposition_t = itsol::ILUfac; int (* z_itsol_clean_sparse_matrix)(z_itsol_sparse_matrix_t*) = itsol::cleanCS; int (* z_itsol_clean_decomposition)(z_itsol_decomposition_t*) = itsol::cleanILU; int (* z_itsol_count_nnz_elements)(z_itsol_sparse_matrix_t*) = itsol::nnz_cs; int (* z_itsol_iluk)(int, z_itsol_sparse_matrix_t*, z_itsol_decomposition_t*, FILE*) = itsol::ilukC]’
src/iluk.cc:222:70:   required from here
src/itsol_util.h:123:25: error: cannot convert ‘octave_idx_type* {aka long int*}’ to ‘int*’ in initialization
src/itsol_util.h:124:25: error: cannot convert ‘octave_idx_type* {aka long int*}’ to ‘int*’ in initialization
src/itsol_util.h: In instantiation of ‘octave_sparse_matrix_t itsol_convert_lower_cs_to_octave(z_itsol_sparse_matrix_t*, c_data_t*, bool, bool) [with z_itsol_sparse_matrix_t = itsol::SpaFmt; c_data_t = double; cpp_data_t = double; octave_sparse_matrix_t = SparseMatrix; int (* z_itsol_count_nnz_elements)(z_itsol_sparse_matrix_t*) = itsol::nnz_cs]’:
src/iluk.cc:134:47:   required from ‘octave_value_list generic_iluk(octave_sparse_matrix_t, int, int) [with octave_sparse_matrix_t = SparseMatrix; octave_column_vector_t = ColumnVector; c_data_t = double; cpp_data_t = double; z_itsol_sparse_matrix_t = itsol::SpaFmt; z_itsol_decomposition_t = itsol::ILUfac; int (* z_itsol_clean_sparse_matrix)(z_itsol_sparse_matrix_t*) = itsol::cleanCS; int (* z_itsol_clean_decomposition)(z_itsol_decomposition_t*) = itsol::cleanILU; int (* z_itsol_count_nnz_elements)(z_itsol_sparse_matrix_t*) = itsol::nnz_cs; int (* z_itsol_iluk)(int, z_itsol_sparse_matrix_t*, z_itsol_decomposition_t*, FILE*) = itsol::ilukC]’
src/iluk.cc:222:70:   required from here
src/itsol_util.h:288:16: error: call of overloaded ‘SparseMatrix(int&, int&, int&)’ is ambiguous
src/itsol_util.h:288:16: note: candidates are:
In file included from /usr/local/include/octave-3.7.7+/octave/../octave/mx-base.h:66:0,
                 from /usr/local/include/octave-3.7.7+/octave/../octave/Matrix.h:30,
                 from /usr/local/include/octave-3.7.7+/octave/../octave/oct.h:33,
                 from src/iluk.cc:30:
/usr/local/include/octave-3.7.7+/octave/../octave/dSparse.h:87:3: note: SparseMatrix::SparseMatrix(octave_idx_type, octave_idx_type, octave_idx_type)
/usr/local/include/octave-3.7.7+/octave/../octave/dSparse.h:59:12: note: SparseMatrix::SparseMatrix(octave_idx_type, octave_idx_type, double)
In file included from src/iluk.cc:35:0:
src/itsol_util.h: In instantiation of ‘octave_sparse_matrix_t itsol_convert_upper_cs_to_octave(z_itsol_sparse_matrix_t*, c_data_t*, bool, bool) [with z_itsol_sparse_matrix_t = itsol::SpaFmt; c_data_t = double; cpp_data_t = double; octave_sparse_matrix_t = SparseMatrix; int (* z_itsol_count_nnz_elements)(z_itsol_sparse_matrix_t*) = itsol::nnz_cs]’:
src/iluk.cc:140:47:   required from ‘octave_value_list generic_iluk(octave_sparse_matrix_t, int, int) [with octave_sparse_matrix_t = SparseMatrix; octave_column_vector_t = ColumnVector; c_data_t = double; cpp_data_t = double; z_itsol_sparse_matrix_t = itsol::SpaFmt; z_itsol_decomposition_t = itsol::ILUfac; int (* z_itsol_clean_sparse_matrix)(z_itsol_sparse_matrix_t*) = itsol::cleanCS; int (* z_itsol_clean_decomposition)(z_itsol_decomposition_t*) = itsol::cleanILU; int (* z_itsol_count_nnz_elements)(z_itsol_sparse_matrix_t*) = itsol::nnz_cs; int (* z_itsol_iluk)(int, z_itsol_sparse_matrix_t*, z_itsol_decomposition_t*, FILE*) = itsol::ilukC]’
src/iluk.cc:222:70:   required from here
src/itsol_util.h:203:16: error: call of overloaded ‘SparseMatrix(int&, int&, int&)’ is ambiguous
src/itsol_util.h:203:16: note: candidates are:
In file included from /usr/local/include/octave-3.7.7+/octave/../octave/mx-base.h:66:0,
                 from /usr/local/include/octave-3.7.7+/octave/../octave/Matrix.h:30,
                 from /usr/local/include/octave-3.7.7+/octave/../octave/oct.h:33,
                 from src/iluk.cc:30:
/usr/local/include/octave-3.7.7+/octave/../octave/dSparse.h:87:3: note: SparseMatrix::SparseMatrix(octave_idx_type, octave_idx_type, octave_idx_type)
/usr/local/include/octave-3.7.7+/octave/../octave/dSparse.h:59:12: note: SparseMatrix::SparseMatrix(octave_idx_type, octave_idx_type, double)
In file included from src/iluk.cc:35:0:
src/itsol_util.h: In instantiation of ‘z_itsol_sparse_matrix_t* itsol_convert_to_cs(const octave_sparse_matrix_t&) [with z_itsol_sparse_matrix_t = zitsol::zSpaFmt; c_data_t = __complex__ double; octave_sparse_matrix_t = SparseComplexMatrix]’:
src/iluk.cc:82:33:   required from ‘octave_value_list generic_iluk(octave_sparse_matrix_t, int, int) [with octave_sparse_matrix_t = SparseComplexMatrix; octave_column_vector_t = ComplexColumnVector; c_data_t = __complex__ double; cpp_data_t = std::complex<double>; z_itsol_sparse_matrix_t = zitsol::zSpaFmt; z_itsol_decomposition_t = zitsol::zILUfac; int (* z_itsol_clean_sparse_matrix)(z_itsol_sparse_matrix_t*) = zitsol::zcleanCS; int (* z_itsol_clean_decomposition)(z_itsol_decomposition_t*) = zitsol::zcleanILU; int (* z_itsol_count_nnz_elements)(z_itsol_sparse_matrix_t*) = zitsol::znnzCS; int (* z_itsol_iluk)(int, z_itsol_sparse_matrix_t*, z_itsol_decomposition_t*, FILE*) = zitsol::zilukC]’
src/iluk.cc:231:73:   required from here
src/itsol_util.h:123:25: error: cannot convert ‘octave_idx_type* {aka long int*}’ to ‘int*’ in initialization
src/itsol_util.h:124:25: error: cannot convert ‘octave_idx_type* {aka long int*}’ to ‘int*’ in initialization
src/itsol_util.h: In instantiation of ‘octave_sparse_matrix_t itsol_convert_lower_cs_to_octave(z_itsol_sparse_matrix_t*, c_data_t*, bool, bool) [with z_itsol_sparse_matrix_t = zitsol::zSpaFmt; c_data_t = __complex__ double; cpp_data_t = std::complex<double>; octave_sparse_matrix_t = SparseComplexMatrix; int (* z_itsol_count_nnz_elements)(z_itsol_sparse_matrix_t*) = zitsol::znnzCS]’:
src/iluk.cc:134:47:   required from ‘octave_value_list generic_iluk(octave_sparse_matrix_t, int, int) [with octave_sparse_matrix_t = SparseComplexMatrix; octave_column_vector_t = ComplexColumnVector; c_data_t = __complex__ double; cpp_data_t = std::complex<double>; z_itsol_sparse_matrix_t = zitsol::zSpaFmt; z_itsol_decomposition_t = zitsol::zILUfac; int (* z_itsol_clean_sparse_matrix)(z_itsol_sparse_matrix_t*) = zitsol::zcleanCS; int (* z_itsol_clean_decomposition)(z_itsol_decomposition_t*) = zitsol::zcleanILU; int (* z_itsol_count_nnz_elements)(z_itsol_sparse_matrix_t*) = zitsol::znnzCS; int (* z_itsol_iluk)(int, z_itsol_sparse_matrix_t*, z_itsol_decomposition_t*, FILE*) = zitsol::zilukC]’
src/iluk.cc:231:73:   required from here
src/itsol_util.h:288:16: error: call of overloaded ‘SparseComplexMatrix(int&, int&, int&)’ is ambiguous
src/itsol_util.h:288:16: note: candidates are:
In file included from /usr/local/include/octave-3.7.7+/octave/../octave/mx-base.h:67:0,
                 from /usr/local/include/octave-3.7.7+/octave/../octave/Matrix.h:30,
                 from /usr/local/include/octave-3.7.7+/octave/../octave/oct.h:33,
                 from src/iluk.cc:30:
/usr/local/include/octave-3.7.7+/octave/../octave/CSparse.h:95:3: note: SparseComplexMatrix::SparseComplexMatrix(octave_idx_type, octave_idx_type, octave_idx_type)
/usr/local/include/octave-3.7.7+/octave/../octave/CSparse.h:64:3: note: SparseComplexMatrix::SparseComplexMatrix(octave_idx_type, octave_idx_type, double)
/usr/local/include/octave-3.7.7+/octave/../octave/CSparse.h:61:12: note: SparseComplexMatrix::SparseComplexMatrix(octave_idx_type, octave_idx_type, Complex)
In file included from src/iluk.cc:35:0:
src/itsol_util.h: In instantiation of ‘octave_sparse_matrix_t itsol_convert_upper_cs_to_octave(z_itsol_sparse_matrix_t*, c_data_t*, bool, bool) [with z_itsol_sparse_matrix_t = zitsol::zSpaFmt; c_data_t = __complex__ double; cpp_data_t = std::complex<double>; octave_sparse_matrix_t = SparseComplexMatrix; int (* z_itsol_count_nnz_elements)(z_itsol_sparse_matrix_t*) = zitsol::znnzCS]’:
src/iluk.cc:140:47:   required from ‘octave_value_list generic_iluk(octave_sparse_matrix_t, int, int) [with octave_sparse_matrix_t = SparseComplexMatrix; octave_column_vector_t = ComplexColumnVector; c_data_t = __complex__ double; cpp_data_t = std::complex<double>; z_itsol_sparse_matrix_t = zitsol::zSpaFmt; z_itsol_decomposition_t = zitsol::zILUfac; int (* z_itsol_clean_sparse_matrix)(z_itsol_sparse_matrix_t*) = zitsol::zcleanCS; int (* z_itsol_clean_decomposition)(z_itsol_decomposition_t*) = zitsol::zcleanILU; int (* z_itsol_count_nnz_elements)(z_itsol_sparse_matrix_t*) = zitsol::znnzCS; int (* z_itsol_iluk)(int, z_itsol_sparse_matrix_t*, z_itsol_decomposition_t*, FILE*) = zitsol::zilukC]’
src/iluk.cc:231:73:   required from here
src/itsol_util.h:203:16: error: call of overloaded ‘SparseComplexMatrix(int&, int&, int&)’ is ambiguous
src/itsol_util.h:203:16: note: candidates are:
In file included from /usr/local/include/octave-3.7.7+/octave/../octave/mx-base.h:67:0,
                 from /usr/local/include/octave-3.7.7+/octave/../octave/Matrix.h:30,
                 from /usr/local/include/octave-3.7.7+/octave/../octave/oct.h:33,
                 from src/iluk.cc:30:
/usr/local/include/octave-3.7.7+/octave/../octave/CSparse.h:95:3: note: SparseComplexMatrix::SparseComplexMatrix(octave_idx_type, octave_idx_type, octave_idx_type)
/usr/local/include/octave-3.7.7+/octave/../octave/CSparse.h:64:3: note: SparseComplexMatrix::SparseComplexMatrix(octave_idx_type, octave_idx_type, double)
/usr/local/include/octave-3.7.7+/octave/../octave/CSparse.h:61:12: note: SparseComplexMatrix::SparseComplexMatrix(octave_idx_type, octave_idx_type, Complex)
make: *** [build/iluk.o] Error 1

Any idea ?

Thanks

Marco

Reply | Threaded
Open this post in threaded view
|

Re: Incomplete Factorization Error

siko1056
On Mon, Dec 30, 2013 at 11:40 AM, Marco Vassallo <[hidden email]> wrote:
Hi Kai,

I was trying to install your work as a demo stand-alone package.
After instaling all the libraries correctly with the makefile provided, I get the following error
when it starts to compile the source code:


mkoctfile -c -g -Lbuild/lib -Ibuild/lib -DHAVE_ITSOL -DHAVE_ZITSOL -litsol -lzitsol src/iluk.cc -o build/iluk.o
In file included from src/iluk.cc:35:0:
src/itsol_util.h: In instantiation of ‘z_itsol_sparse_matrix_t* itsol_convert_to_cs(const octave_sparse_matrix_t&) [with z_itsol_sparse_matrix_t = itsol::SpaFmt; c_data_t = double; octave_sparse_matrix_t = SparseMatrix]’:
src/iluk.cc:82:33:   required from ‘octave_value_list generic_iluk(octave_sparse_matrix_t, int, int) [with octave_sparse_matrix_t = SparseMatrix; octave_column_vector_t = ColumnVector; c_data_t = double; cpp_data_t = double; z_itsol_sparse_matrix_t = itsol::SpaFmt; z_itsol_decomposition_t = itsol::ILUfac; int (* z_itsol_clean_sparse_matrix)(z_itsol_sparse_matrix_t*) = itsol::cleanCS; int (* z_itsol_clean_decomposition)(z_itsol_decomposition_t*) = itsol::cleanILU; int (* z_itsol_count_nnz_elements)(z_itsol_sparse_matrix_t*) = itsol::nnz_cs; int (* z_itsol_iluk)(int, z_itsol_sparse_matrix_t*, z_itsol_decomposition_t*, FILE*) = itsol::ilukC]’
src/iluk.cc:222:70:   required from here
src/itsol_util.h:123:25: error: cannot convert ‘octave_idx_type* {aka long int*}’ to ‘int*’ in initialization
src/itsol_util.h:124:25: error: cannot convert ‘octave_idx_type* {aka long int*}’ to ‘int*’ in initialization
src/itsol_util.h: In instantiation of ‘octave_sparse_matrix_t itsol_convert_lower_cs_to_octave(z_itsol_sparse_matrix_t*, c_data_t*, bool, bool) [with z_itsol_sparse_matrix_t = itsol::SpaFmt; c_data_t = double; cpp_data_t = double; octave_sparse_matrix_t = SparseMatrix; int (* z_itsol_count_nnz_elements)(z_itsol_sparse_matrix_t*) = itsol::nnz_cs]’:
src/iluk.cc:134:47:   required from ‘octave_value_list generic_iluk(octave_sparse_matrix_t, int, int) [with octave_sparse_matrix_t = SparseMatrix; octave_column_vector_t = ColumnVector; c_data_t = double; cpp_data_t = double; z_itsol_sparse_matrix_t = itsol::SpaFmt; z_itsol_decomposition_t = itsol::ILUfac; int (* z_itsol_clean_sparse_matrix)(z_itsol_sparse_matrix_t*) = itsol::cleanCS; int (* z_itsol_clean_decomposition)(z_itsol_decomposition_t*) = itsol::cleanILU; int (* z_itsol_count_nnz_elements)(z_itsol_sparse_matrix_t*) = itsol::nnz_cs; int (* z_itsol_iluk)(int, z_itsol_sparse_matrix_t*, z_itsol_decomposition_t*, FILE*) = itsol::ilukC]’
src/iluk.cc:222:70:   required from here
src/itsol_util.h:288:16: error: call of overloaded ‘SparseMatrix(int&, int&, int&)’ is ambiguous
src/itsol_util.h:288:16: note: candidates are:
In file included from /usr/local/include/octave-3.7.7+/octave/../octave/mx-base.h:66:0,
                 from /usr/local/include/octave-3.7.7+/octave/../octave/Matrix.h:30,
                 from /usr/local/include/octave-3.7.7+/octave/../octave/oct.h:33,
                 from src/iluk.cc:30:
/usr/local/include/octave-3.7.7+/octave/../octave/dSparse.h:87:3: note: SparseMatrix::SparseMatrix(octave_idx_type, octave_idx_type, octave_idx_type)
/usr/local/include/octave-3.7.7+/octave/../octave/dSparse.h:59:12: note: SparseMatrix::SparseMatrix(octave_idx_type, octave_idx_type, double)
In file included from src/iluk.cc:35:0:
src/itsol_util.h: In instantiation of ‘octave_sparse_matrix_t itsol_convert_upper_cs_to_octave(z_itsol_sparse_matrix_t*, c_data_t*, bool, bool) [with z_itsol_sparse_matrix_t = itsol::SpaFmt; c_data_t = double; cpp_data_t = double; octave_sparse_matrix_t = SparseMatrix; int (* z_itsol_count_nnz_elements)(z_itsol_sparse_matrix_t*) = itsol::nnz_cs]’:
src/iluk.cc:140:47:   required from ‘octave_value_list generic_iluk(octave_sparse_matrix_t, int, int) [with octave_sparse_matrix_t = SparseMatrix; octave_column_vector_t = ColumnVector; c_data_t = double; cpp_data_t = double; z_itsol_sparse_matrix_t = itsol::SpaFmt; z_itsol_decomposition_t = itsol::ILUfac; int (* z_itsol_clean_sparse_matrix)(z_itsol_sparse_matrix_t*) = itsol::cleanCS; int (* z_itsol_clean_decomposition)(z_itsol_decomposition_t*) = itsol::cleanILU; int (* z_itsol_count_nnz_elements)(z_itsol_sparse_matrix_t*) = itsol::nnz_cs; int (* z_itsol_iluk)(int, z_itsol_sparse_matrix_t*, z_itsol_decomposition_t*, FILE*) = itsol::ilukC]’
src/iluk.cc:222:70:   required from here
src/itsol_util.h:203:16: error: call of overloaded ‘SparseMatrix(int&, int&, int&)’ is ambiguous
src/itsol_util.h:203:16: note: candidates are:
In file included from /usr/local/include/octave-3.7.7+/octave/../octave/mx-base.h:66:0,
                 from /usr/local/include/octave-3.7.7+/octave/../octave/Matrix.h:30,
                 from /usr/local/include/octave-3.7.7+/octave/../octave/oct.h:33,
                 from src/iluk.cc:30:
/usr/local/include/octave-3.7.7+/octave/../octave/dSparse.h:87:3: note: SparseMatrix::SparseMatrix(octave_idx_type, octave_idx_type, octave_idx_type)
/usr/local/include/octave-3.7.7+/octave/../octave/dSparse.h:59:12: note: SparseMatrix::SparseMatrix(octave_idx_type, octave_idx_type, double)
In file included from src/iluk.cc:35:0:
src/itsol_util.h: In instantiation of ‘z_itsol_sparse_matrix_t* itsol_convert_to_cs(const octave_sparse_matrix_t&) [with z_itsol_sparse_matrix_t = zitsol::zSpaFmt; c_data_t = __complex__ double; octave_sparse_matrix_t = SparseComplexMatrix]’:
src/iluk.cc:82:33:   required from ‘octave_value_list generic_iluk(octave_sparse_matrix_t, int, int) [with octave_sparse_matrix_t = SparseComplexMatrix; octave_column_vector_t = ComplexColumnVector; c_data_t = __complex__ double; cpp_data_t = std::complex<double>; z_itsol_sparse_matrix_t = zitsol::zSpaFmt; z_itsol_decomposition_t = zitsol::zILUfac; int (* z_itsol_clean_sparse_matrix)(z_itsol_sparse_matrix_t*) = zitsol::zcleanCS; int (* z_itsol_clean_decomposition)(z_itsol_decomposition_t*) = zitsol::zcleanILU; int (* z_itsol_count_nnz_elements)(z_itsol_sparse_matrix_t*) = zitsol::znnzCS; int (* z_itsol_iluk)(int, z_itsol_sparse_matrix_t*, z_itsol_decomposition_t*, FILE*) = zitsol::zilukC]’
src/iluk.cc:231:73:   required from here
src/itsol_util.h:123:25: error: cannot convert ‘octave_idx_type* {aka long int*}’ to ‘int*’ in initialization
src/itsol_util.h:124:25: error: cannot convert ‘octave_idx_type* {aka long int*}’ to ‘int*’ in initialization
src/itsol_util.h: In instantiation of ‘octave_sparse_matrix_t itsol_convert_lower_cs_to_octave(z_itsol_sparse_matrix_t*, c_data_t*, bool, bool) [with z_itsol_sparse_matrix_t = zitsol::zSpaFmt; c_data_t = __complex__ double; cpp_data_t = std::complex<double>; octave_sparse_matrix_t = SparseComplexMatrix; int (* z_itsol_count_nnz_elements)(z_itsol_sparse_matrix_t*) = zitsol::znnzCS]’:
src/iluk.cc:134:47:   required from ‘octave_value_list generic_iluk(octave_sparse_matrix_t, int, int) [with octave_sparse_matrix_t = SparseComplexMatrix; octave_column_vector_t = ComplexColumnVector; c_data_t = __complex__ double; cpp_data_t = std::complex<double>; z_itsol_sparse_matrix_t = zitsol::zSpaFmt; z_itsol_decomposition_t = zitsol::zILUfac; int (* z_itsol_clean_sparse_matrix)(z_itsol_sparse_matrix_t*) = zitsol::zcleanCS; int (* z_itsol_clean_decomposition)(z_itsol_decomposition_t*) = zitsol::zcleanILU; int (* z_itsol_count_nnz_elements)(z_itsol_sparse_matrix_t*) = zitsol::znnzCS; int (* z_itsol_iluk)(int, z_itsol_sparse_matrix_t*, z_itsol_decomposition_t*, FILE*) = zitsol::zilukC]’
src/iluk.cc:231:73:   required from here
src/itsol_util.h:288:16: error: call of overloaded ‘SparseComplexMatrix(int&, int&, int&)’ is ambiguous
src/itsol_util.h:288:16: note: candidates are:
In file included from /usr/local/include/octave-3.7.7+/octave/../octave/mx-base.h:67:0,
                 from /usr/local/include/octave-3.7.7+/octave/../octave/Matrix.h:30,
                 from /usr/local/include/octave-3.7.7+/octave/../octave/oct.h:33,
                 from src/iluk.cc:30:
/usr/local/include/octave-3.7.7+/octave/../octave/CSparse.h:95:3: note: SparseComplexMatrix::SparseComplexMatrix(octave_idx_type, octave_idx_type, octave_idx_type)
/usr/local/include/octave-3.7.7+/octave/../octave/CSparse.h:64:3: note: SparseComplexMatrix::SparseComplexMatrix(octave_idx_type, octave_idx_type, double)
/usr/local/include/octave-3.7.7+/octave/../octave/CSparse.h:61:12: note: SparseComplexMatrix::SparseComplexMatrix(octave_idx_type, octave_idx_type, Complex)
In file included from src/iluk.cc:35:0:
src/itsol_util.h: In instantiation of ‘octave_sparse_matrix_t itsol_convert_upper_cs_to_octave(z_itsol_sparse_matrix_t*, c_data_t*, bool, bool) [with z_itsol_sparse_matrix_t = zitsol::zSpaFmt; c_data_t = __complex__ double; cpp_data_t = std::complex<double>; octave_sparse_matrix_t = SparseComplexMatrix; int (* z_itsol_count_nnz_elements)(z_itsol_sparse_matrix_t*) = zitsol::znnzCS]’:
src/iluk.cc:140:47:   required from ‘octave_value_list generic_iluk(octave_sparse_matrix_t, int, int) [with octave_sparse_matrix_t = SparseComplexMatrix; octave_column_vector_t = ComplexColumnVector; c_data_t = __complex__ double; cpp_data_t = std::complex<double>; z_itsol_sparse_matrix_t = zitsol::zSpaFmt; z_itsol_decomposition_t = zitsol::zILUfac; int (* z_itsol_clean_sparse_matrix)(z_itsol_sparse_matrix_t*) = zitsol::zcleanCS; int (* z_itsol_clean_decomposition)(z_itsol_decomposition_t*) = zitsol::zcleanILU; int (* z_itsol_count_nnz_elements)(z_itsol_sparse_matrix_t*) = zitsol::znnzCS; int (* z_itsol_iluk)(int, z_itsol_sparse_matrix_t*, z_itsol_decomposition_t*, FILE*) = zitsol::zilukC]’
src/iluk.cc:231:73:   required from here
src/itsol_util.h:203:16: error: call of overloaded ‘SparseComplexMatrix(int&, int&, int&)’ is ambiguous
src/itsol_util.h:203:16: note: candidates are:
In file included from /usr/local/include/octave-3.7.7+/octave/../octave/mx-base.h:67:0,
                 from /usr/local/include/octave-3.7.7+/octave/../octave/Matrix.h:30,
                 from /usr/local/include/octave-3.7.7+/octave/../octave/oct.h:33,
                 from src/iluk.cc:30:
/usr/local/include/octave-3.7.7+/octave/../octave/CSparse.h:95:3: note: SparseComplexMatrix::SparseComplexMatrix(octave_idx_type, octave_idx_type, octave_idx_type)
/usr/local/include/octave-3.7.7+/octave/../octave/CSparse.h:64:3: note: SparseComplexMatrix::SparseComplexMatrix(octave_idx_type, octave_idx_type, double)
/usr/local/include/octave-3.7.7+/octave/../octave/CSparse.h:61:12: note: SparseComplexMatrix::SparseComplexMatrix(octave_idx_type, octave_idx_type, Complex)
make: *** [build/iluk.o] Error 1

Any idea ?

Thanks

Marco


Hi Marco,

one line occurs several times

src/itsol_util.h:123:25: error: cannot convert ‘octave_idx_type* {aka long int*}’ to ‘int*’ in initialization

Do you use 64-bit indexing or alike for your octave build?

Best,
Kai
Reply | Threaded
Open this post in threaded view
|

Re: Incomplete Factorization Error

gedeone


Do you use 64-bit indexing or alike for your octave build?

Yes, I enabled the 64-bit indexing.

Best,
Kai

Reply | Threaded
Open this post in threaded view
|

Re: Incomplete Factorization Error

siko1056
On Mon, Dec 30, 2013 at 12:47 PM, Marco Vassallo <[hidden email]> wrote:

Yes, I enabled the 64-bit indexing.


I also started to work on 64-bit indexing with Octave, but I didn't considered my GSoC project by now.

For this problem I see two possible solutions:
1. ITSOL and ZITSOL need to be patched to change their internal indexing data type from int to long int, what is very tedious.
2. If there was a way to tell octave to safely convert octave_idx_type to shorter data types, I can fix this for you. But this will limit the size of the input matrices and makes the 64-bit indexing pointless.

Best,
Kai