"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "include/armadillo_bits/fn_solve.hpp" between
armadillo-10.8.2.tar.xz and armadillo-11.0.0.tar.xz

About: Armadillo is a C++ linear algebra library (matrix maths) aiming towards a good balance between speed and ease of use.

fn_solve.hpp  (armadillo-10.8.2.tar.xz):fn_solve.hpp  (armadillo-11.0.0.tar.xz)
skipping to change at line 27 skipping to change at line 27
//! \addtogroup fn_solve //! \addtogroup fn_solve
//! @{ //! @{
// //
// solve_gen // solve_gen
template<typename T1, typename T2> template<typename T1, typename T2>
arma_warn_unused arma_warn_unused
inline inline
typename enable_if2< is_supported_blas_type<typename T1::elem_type>::value, cons typename enable_if2< is_supported_blas_type<typename T1::elem_type>::value, cons
t Glue<T1, T2, glue_solve_gen> >::result t Glue<T1, T2, glue_solve_gen_default> >::result
solve
(
const Base<typename T1::elem_type,T1>& A,
const Base<typename T1::elem_type,T2>& B
)
{
arma_extra_debug_sigprint();
return Glue<T1, T2, glue_solve_gen_default>(A.get_ref(), B.get_ref());
}
template<typename T1, typename T2>
inline
typename enable_if2< is_supported_blas_type<typename T1::elem_type>::value, bool
>::result
solve
(
Mat<typename T1::elem_type>& out,
const Base<typename T1::elem_type,T1>& A,
const Base<typename T1::elem_type,T2>& B
)
{
arma_extra_debug_sigprint();
const bool status = glue_solve_gen_default::apply(out, A.get_ref(), B.get_ref(
));
if(status == false)
{
out.soft_reset();
arma_debug_warn_level(3, "solve(): solution not found");
}
return status;
}
template<typename T1, typename T2>
arma_warn_unused
inline
typename enable_if2< is_supported_blas_type<typename T1::elem_type>::value, cons
t Glue<T1, T2, glue_solve_gen_full> >::result
solve solve
( (
const Base<typename T1::elem_type,T1>& A, const Base<typename T1::elem_type,T1>& A,
const Base<typename T1::elem_type,T2>& B, const Base<typename T1::elem_type,T2>& B,
const solve_opts::opts& opts = solve_opts::none const solve_opts::opts& opts
) )
{ {
arma_extra_debug_sigprint(); arma_extra_debug_sigprint();
return Glue<T1, T2, glue_solve_gen>(A.get_ref(), B.get_ref(), opts.flags); return Glue<T1, T2, glue_solve_gen_full>(A.get_ref(), B.get_ref(), opts.flags) ;
} }
template<typename T1, typename T2> template<typename T1, typename T2>
inline inline
typename enable_if2< is_supported_blas_type<typename T1::elem_type>::value, bool >::result typename enable_if2< is_supported_blas_type<typename T1::elem_type>::value, bool >::result
solve solve
( (
Mat<typename T1::elem_type>& out, Mat<typename T1::elem_type>& out,
const Base<typename T1::elem_type,T1>& A, const Base<typename T1::elem_type,T1>& A,
const Base<typename T1::elem_type,T2>& B, const Base<typename T1::elem_type,T2>& B,
const solve_opts::opts& opts = solve_opts::none const solve_opts::opts& opts
) )
{ {
arma_extra_debug_sigprint(); arma_extra_debug_sigprint();
const bool status = glue_solve_gen::apply(out, A.get_ref(), B.get_ref(), opts. flags); const bool status = glue_solve_gen_full::apply(out, A.get_ref(), B.get_ref(), opts.flags);
if(status == false) if(status == false)
{ {
out.soft_reset(); out.soft_reset();
arma_debug_warn_level(3, "solve(): solution not found"); arma_debug_warn_level(3, "solve(): solution not found");
} }
return status; return status;
} }
skipping to change at line 90 skipping to change at line 128
if(A.aux_uword_a == 0) { flags |= solve_opts::flag_triu; } if(A.aux_uword_a == 0) { flags |= solve_opts::flag_triu; }
if(A.aux_uword_a == 1) { flags |= solve_opts::flag_tril; } if(A.aux_uword_a == 1) { flags |= solve_opts::flag_tril; }
return Glue<T1, T2, glue_solve_tri_default>(A.m, B.get_ref(), flags); return Glue<T1, T2, glue_solve_tri_default>(A.m, B.get_ref(), flags);
} }
template<typename T1, typename T2> template<typename T1, typename T2>
arma_warn_unused arma_warn_unused
inline inline
typename enable_if2< is_supported_blas_type<typename T1::elem_type>::value, cons t Glue<T1, T2, glue_solve_tri> >::result typename enable_if2< is_supported_blas_type<typename T1::elem_type>::value, cons t Glue<T1, T2, glue_solve_tri_full> >::result
solve solve
( (
const Op<T1, op_trimat>& A, const Op<T1, op_trimat>& A,
const Base<typename T1::elem_type,T2>& B, const Base<typename T1::elem_type,T2>& B,
const solve_opts::opts& opts const solve_opts::opts& opts
) )
{ {
arma_extra_debug_sigprint(); arma_extra_debug_sigprint();
uword flags = opts.flags; uword flags = opts.flags;
if(A.aux_uword_a == 0) { flags |= solve_opts::flag_triu; } if(A.aux_uword_a == 0) { flags |= solve_opts::flag_triu; }
if(A.aux_uword_a == 1) { flags |= solve_opts::flag_tril; } if(A.aux_uword_a == 1) { flags |= solve_opts::flag_tril; }
return Glue<T1, T2, glue_solve_tri>(A.m, B.get_ref(), flags); return Glue<T1, T2, glue_solve_tri_full>(A.m, B.get_ref(), flags);
} }
template<typename T1, typename T2> template<typename T1, typename T2>
inline inline
typename enable_if2< is_supported_blas_type<typename T1::elem_type>::value, bool >::result typename enable_if2< is_supported_blas_type<typename T1::elem_type>::value, bool >::result
solve solve
( (
Mat<typename T1::elem_type>& out, Mat<typename T1::elem_type>& out,
const Op<T1, op_trimat>& A, const Op<T1, op_trimat>& A,
const Base<typename T1::elem_type,T2>& B const Base<typename T1::elem_type,T2>& B
skipping to change at line 154 skipping to change at line 192
const solve_opts::opts& opts const solve_opts::opts& opts
) )
{ {
arma_extra_debug_sigprint(); arma_extra_debug_sigprint();
uword flags = opts.flags; uword flags = opts.flags;
if(A.aux_uword_a == 0) { flags |= solve_opts::flag_triu; } if(A.aux_uword_a == 0) { flags |= solve_opts::flag_triu; }
if(A.aux_uword_a == 1) { flags |= solve_opts::flag_tril; } if(A.aux_uword_a == 1) { flags |= solve_opts::flag_tril; }
const bool status = glue_solve_tri::apply(out, A.m, B.get_ref(), flags); const bool status = glue_solve_tri_full::apply(out, A.m, B.get_ref(), flags);
if(status == false) if(status == false)
{ {
out.soft_reset(); out.soft_reset();
arma_debug_warn_level(3, "solve(): solution not found"); arma_debug_warn_level(3, "solve(): solution not found");
} }
return status; return status;
} }
 End of changes. 8 change blocks. 
9 lines changed or deleted 50 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)