# HG changeset patch # User Michael Goffioul # Date 1319111680 -3600 # Node ID 3b52038e6e6c109689d3596f92412ddf4cd20a91 # Parent a2c74b5c02de68b9d8e48d56b117d70274be4dbf Help dumb compilers to resolve template parameters. * boolNDArray.cc (boolNDArray::operator!): Specify second template parameter for do_mx_unary_map_op. * Sparse-op-defs.h (SPARSE_MSM_BIN_OP_2): Specify template parameter for mx_inline_all_infinite. (SPARSE_SMM_BIN_OP_2_CHECK_product): Add argument to macro and use it as template parameter for mx_inline_all_infinite. (SPARSE_SMM_BIN_OP_2_CHECK_quotient): Likewise for mx_inline_all_nan. (SPARSE_SMM_BIN_OP_2): Use new argument for product and quotient macros. * data.cc (Frem): Specify template parameter for xrem. (Fmod): Specify template parameter for xmod. diff -r a2c74b5c02de -r 3b52038e6e6c liboctave/Sparse-op-defs.h --- a/liboctave/Sparse-op-defs.h Thu Oct 20 12:54:32 2011 +0100 +++ b/liboctave/Sparse-op-defs.h Thu Oct 20 12:54:40 2011 +0100 @@ -1119,7 +1119,7 @@ gripe_nonconformant (#F, m1_nr, m1_nc, m2_nr, m2_nc); \ else \ { \ - if (do_mx_check (m1, mx_inline_all_finite)) \ + if (do_mx_check (m1, mx_inline_all_finite)) \ { \ /* Sparsity pattern is preserved. */ \ octave_idx_type m2_nz = m2.nnz (); \ @@ -1335,12 +1335,12 @@ } // sm .* m preserves sparsity if m contains no Infs nor Nans. -#define SPARSE_SMM_BIN_OP_2_CHECK_product \ - do_mx_check (m2, mx_inline_all_finite) +#define SPARSE_SMM_BIN_OP_2_CHECK_product(ET) \ + do_mx_check (m2, mx_inline_all_finite) // sm ./ m preserves sparsity if m contains no NaNs or zeros. -#define SPARSE_SMM_BIN_OP_2_CHECK_quotient \ - ! do_mx_check (m2, mx_inline_any_nan) && m2.nnz () == m2.numel () +#define SPARSE_SMM_BIN_OP_2_CHECK_quotient(ET) \ + ! do_mx_check (m2, mx_inline_any_nan) && m2.nnz () == m2.numel () #define SPARSE_SMM_BIN_OP_2(R, F, OP, M1, M2) \ R \ @@ -1360,7 +1360,7 @@ gripe_nonconformant (#F, m1_nr, m1_nc, m2_nr, m2_nc); \ else \ { \ - if (SPARSE_SMM_BIN_OP_2_CHECK_ ## F) \ + if (SPARSE_SMM_BIN_OP_2_CHECK_ ## F(M2::element_type)) \ { \ /* Sparsity pattern is preserved. */ \ octave_idx_type m1_nz = m1.nnz (); \ diff -r a2c74b5c02de -r 3b52038e6e6c liboctave/boolNDArray.cc --- a/liboctave/boolNDArray.cc Thu Oct 20 12:54:32 2011 +0100 +++ b/liboctave/boolNDArray.cc Thu Oct 20 12:54:40 2011 +0100 @@ -40,7 +40,7 @@ boolNDArray boolNDArray::operator ! (void) const { - return do_mx_unary_op (*this, mx_inline_not); + return do_mx_unary_op (*this, mx_inline_not); } boolNDArray& diff -r a2c74b5c02de -r 3b52038e6e6c src/data.cc --- a/src/data.cc Thu Oct 20 12:54:32 2011 +0100 +++ b/src/data.cc Thu Oct 20 12:54:40 2011 +0100 @@ -589,7 +589,7 @@ { FloatNDArray a0 = args(0).float_array_value (); FloatNDArray a1 = args(1).float_array_value (); - retval = binmap (a0, a1, xrem, "rem"); + retval = binmap (a0, a1, xrem, "rem"); } } else @@ -603,13 +603,13 @@ { SparseMatrix m0 = args(0).sparse_matrix_value (); SparseMatrix m1 = args(1).sparse_matrix_value (); - retval = binmap (m0, m1, xrem, "rem"); + retval = binmap (m0, m1, xrem, "rem"); } else { NDArray a0 = args(0).array_value (); NDArray a1 = args(1).array_value (); - retval = binmap (a0, a1, xrem, "rem"); + retval = binmap (a0, a1, xrem, "rem"); } } } @@ -722,7 +722,7 @@ { FloatNDArray a0 = args(0).float_array_value (); FloatNDArray a1 = args(1).float_array_value (); - retval = binmap (a0, a1, xmod, "mod"); + retval = binmap (a0, a1, xmod, "mod"); } } else @@ -736,13 +736,13 @@ { SparseMatrix m0 = args(0).sparse_matrix_value (); SparseMatrix m1 = args(1).sparse_matrix_value (); - retval = binmap (m0, m1, xmod, "mod"); + retval = binmap (m0, m1, xmod, "mod"); } else { NDArray a0 = args(0).array_value (); NDArray a1 = args(1).array_value (); - retval = binmap (a0, a1, xmod, "mod"); + retval = binmap (a0, a1, xmod, "mod"); } } }