本文整理汇总了C++中detail::workspace1类的典型用法代码示例。如果您正苦于以下问题:C++ workspace1类的具体用法?C++ workspace1怎么用?C++ workspace1使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了workspace1类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: invoke
static std::ptrdiff_t invoke( MatrixA& a, VectorIPIV& ipiv, MatrixB& b,
detail::workspace1< WORK > work ) {
namespace bindings = ::boost::numeric::bindings;
typedef typename result_of::uplo_tag< MatrixA >::type uplo;
BOOST_STATIC_ASSERT( (bindings::is_column_major< MatrixA >::value) );
BOOST_STATIC_ASSERT( (bindings::is_column_major< MatrixB >::value) );
BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
typename bindings::value_type< MatrixA >::type >::type,
typename remove_const< typename bindings::value_type<
MatrixB >::type >::type >::value) );
BOOST_STATIC_ASSERT( (bindings::is_mutable< MatrixA >::value) );
BOOST_STATIC_ASSERT( (bindings::is_mutable< VectorIPIV >::value) );
BOOST_STATIC_ASSERT( (bindings::is_mutable< MatrixB >::value) );
BOOST_ASSERT( bindings::size(work.select(value_type())) >=
min_size_work());
BOOST_ASSERT( bindings::size_column(a) >= 0 );
BOOST_ASSERT( bindings::size_column(b) >= 0 );
BOOST_ASSERT( bindings::size_minor(a) == 1 ||
bindings::stride_minor(a) == 1 );
BOOST_ASSERT( bindings::size_minor(b) == 1 ||
bindings::stride_minor(b) == 1 );
BOOST_ASSERT( bindings::stride_major(a) >= std::max< std::ptrdiff_t >(1,
bindings::size_column(a)) );
BOOST_ASSERT( bindings::stride_major(b) >= std::max< std::ptrdiff_t >(1,
bindings::size_column(a)) );
return detail::hesv( uplo(), bindings::size_column(a),
bindings::size_column(b), bindings::begin_value(a),
bindings::stride_major(a), bindings::begin_value(ipiv),
bindings::begin_value(b), bindings::stride_major(b),
bindings::begin_value(work.select(value_type())),
bindings::size(work.select(value_type())) );
}
开发者ID:AntonDV235,项目名称:OMCompiler,代码行数:32,代码来源:hesv.hpp
示例2: invoke
static std::ptrdiff_t invoke( const fortran_int_t itype,
const char jobz, MatrixAP& ap, MatrixBP& bp, VectorW& w,
MatrixZ& z, detail::workspace1< WORK > work ) {
namespace bindings = ::boost::numeric::bindings;
typedef typename result_of::uplo_tag< MatrixAP >::type uplo;
BOOST_STATIC_ASSERT( (bindings::is_column_major< MatrixZ >::value) );
BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
typename bindings::value_type< MatrixAP >::type >::type,
typename remove_const< typename bindings::value_type<
MatrixBP >::type >::type >::value) );
BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
typename bindings::value_type< MatrixAP >::type >::type,
typename remove_const< typename bindings::value_type<
VectorW >::type >::type >::value) );
BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
typename bindings::value_type< MatrixAP >::type >::type,
typename remove_const< typename bindings::value_type<
MatrixZ >::type >::type >::value) );
BOOST_STATIC_ASSERT( (bindings::is_mutable< MatrixAP >::value) );
BOOST_STATIC_ASSERT( (bindings::is_mutable< MatrixBP >::value) );
BOOST_STATIC_ASSERT( (bindings::is_mutable< VectorW >::value) );
BOOST_STATIC_ASSERT( (bindings::is_mutable< MatrixZ >::value) );
BOOST_ASSERT( bindings::size(work.select(real_type())) >=
min_size_work( bindings::size_column(ap) ));
BOOST_ASSERT( bindings::size_column(ap) >= 0 );
BOOST_ASSERT( bindings::size_minor(z) == 1 ||
bindings::stride_minor(z) == 1 );
BOOST_ASSERT( jobz == 'N' || jobz == 'V' );
return detail::spgv( itype, jobz, uplo(), bindings::size_column(ap),
bindings::begin_value(ap), bindings::begin_value(bp),
bindings::begin_value(w), bindings::begin_value(z),
bindings::stride_major(z),
bindings::begin_value(work.select(real_type())) );
}
开发者ID:AntonDV235,项目名称:OMCompiler,代码行数:34,代码来源:spgv.hpp
示例3: invoke
static std::ptrdiff_t invoke( const Side side, const char uplo,
const VectorAP& ap, const VectorTAU& tau, MatrixC& c,
detail::workspace1< WORK > work ) {
namespace bindings = ::boost::numeric::bindings;
typedef tag::column_major order;
typedef typename result_of::trans_tag< VectorAP, order >::type trans;
BOOST_STATIC_ASSERT( (bindings::is_column_major< MatrixC >::value) );
BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
typename bindings::value_type< VectorAP >::type >::type,
typename remove_const< typename bindings::value_type<
VectorTAU >::type >::type >::value) );
BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
typename bindings::value_type< VectorAP >::type >::type,
typename remove_const< typename bindings::value_type<
MatrixC >::type >::type >::value) );
BOOST_STATIC_ASSERT( (bindings::is_mutable< MatrixC >::value) );
BOOST_ASSERT( bindings::size(work.select(real_type())) >=
min_size_work( side, bindings::size_row(c),
bindings::size_column(c) ));
BOOST_ASSERT( bindings::size_column(c) >= 0 );
BOOST_ASSERT( bindings::size_minor(c) == 1 ||
bindings::stride_minor(c) == 1 );
BOOST_ASSERT( bindings::size_row(c) >= 0 );
BOOST_ASSERT( bindings::stride_major(c) >= std::max< std::ptrdiff_t >(1,
bindings::size_row(c)) );
return detail::opmtr( side, uplo, trans(), bindings::size_row(c),
bindings::size_column(c), bindings::begin_value(ap),
bindings::begin_value(tau), bindings::begin_value(c),
bindings::stride_major(c),
bindings::begin_value(work.select(real_type())) );
}
开发者ID:AntonDV235,项目名称:OMCompiler,代码行数:31,代码来源:opmtr.hpp
示例4: invoke
static std::ptrdiff_t invoke( MatrixA& a, VectorTAU& tau,
detail::workspace1< WORK > work ) {
namespace bindings = ::boost::numeric::bindings;
BOOST_STATIC_ASSERT( (bindings::is_column_major< MatrixA >::value) );
BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
typename bindings::value_type< MatrixA >::type >::type,
typename remove_const< typename bindings::value_type<
VectorTAU >::type >::type >::value) );
BOOST_STATIC_ASSERT( (bindings::is_mutable< MatrixA >::value) );
BOOST_STATIC_ASSERT( (bindings::is_mutable< VectorTAU >::value) );
BOOST_ASSERT( bindings::size(tau) >= std::min<
std::ptrdiff_t >(bindings::size_row(a),
bindings::size_column(a)) );
BOOST_ASSERT( bindings::size(work.select(value_type())) >=
min_size_work( bindings::size_column(a) ));
BOOST_ASSERT( bindings::size_column(a) >= 0 );
BOOST_ASSERT( bindings::size_minor(a) == 1 ||
bindings::stride_minor(a) == 1 );
BOOST_ASSERT( bindings::size_row(a) >= 0 );
BOOST_ASSERT( bindings::stride_major(a) >= std::max< std::ptrdiff_t >(1,
bindings::size_row(a)) );
return detail::geqrf( bindings::size_row(a), bindings::size_column(a),
bindings::begin_value(a), bindings::stride_major(a),
bindings::begin_value(tau),
bindings::begin_value(work.select(value_type())),
bindings::size(work.select(value_type())) );
}
开发者ID:CQMP,项目名称:scripts,代码行数:27,代码来源:geqrf.hpp
示例5: invoke
static void invoke( char const vect, char const side, char const trans,
integer_t const k, MatrixA& a, VectorTAU& tau, MatrixC& c,
integer_t& info, detail::workspace1< WORK > work ) {
BOOST_STATIC_ASSERT( (boost::is_same< typename traits::matrix_traits<
MatrixA >::value_type, typename traits::vector_traits<
VectorTAU >::value_type >::value) );
BOOST_STATIC_ASSERT( (boost::is_same< typename traits::matrix_traits<
MatrixA >::value_type, typename traits::matrix_traits<
MatrixC >::value_type >::value) );
BOOST_ASSERT( vect == 'Q' || vect == 'P' );
BOOST_ASSERT( side == 'L' || side == 'R' );
BOOST_ASSERT( trans == 'N' || trans == 'T' );
BOOST_ASSERT( traits::matrix_num_rows(c) >= 0 );
BOOST_ASSERT( traits::matrix_num_columns(c) >= 0 );
BOOST_ASSERT( k >= 0 );
BOOST_ASSERT( traits::vector_size(tau) >= std::min(?NQ,k) );
BOOST_ASSERT( traits::leading_dimension(c) >= std::max(1,
traits::matrix_num_rows(c)) );
BOOST_ASSERT( traits::vector_size(work.select(real_type())) >=
min_size_work( side, traits::matrix_num_rows(c),
traits::matrix_num_columns(c) ));
detail::ormbr( vect, side, trans, traits::matrix_num_rows(c),
traits::matrix_num_columns(c), k, traits::matrix_storage(a),
traits::leading_dimension(a), traits::vector_storage(tau),
traits::matrix_storage(c), traits::leading_dimension(c),
traits::vector_storage(work.select(real_type())),
traits::vector_size(work.select(real_type())), info );
}
开发者ID:fluxdark,项目名称:jflib,代码行数:28,代码来源:ormbr.hpp
示例6: invoke
static void invoke( MatrixA& a, VectorD& d, VectorE& e, VectorTAU& tau,
integer_t& info, detail::workspace1< WORK > work ) {
BOOST_STATIC_ASSERT( (boost::is_same< typename traits::vector_traits<
VectorD >::value_type, typename traits::vector_traits<
VectorE >::value_type >::value) );
BOOST_STATIC_ASSERT( (boost::is_same< typename traits::matrix_traits<
MatrixA >::value_type, typename traits::vector_traits<
VectorTAU >::value_type >::value) );
BOOST_ASSERT( traits::matrix_uplo_tag(a) == 'U' ||
traits::matrix_uplo_tag(a) == 'L' );
BOOST_ASSERT( traits::matrix_num_columns(a) >= 0 );
BOOST_ASSERT( traits::leading_dimension(a) >= std::max(1,
traits::matrix_num_columns(a)) );
BOOST_ASSERT( traits::vector_size(d) >=
traits::matrix_num_columns(a) );
BOOST_ASSERT( traits::vector_size(tau) >=
traits::matrix_num_columns(a)-1 );
BOOST_ASSERT( traits::vector_size(work.select(value_type())) >=
min_size_work( ));
detail::hetrd( traits::matrix_uplo_tag(a),
traits::matrix_num_columns(a), traits::matrix_storage(a),
traits::leading_dimension(a), traits::vector_storage(d),
traits::vector_storage(e), traits::vector_storage(tau),
traits::vector_storage(work.select(value_type())),
traits::vector_size(work.select(value_type())), info );
}
开发者ID:fluxdark,项目名称:jflib,代码行数:26,代码来源:hetrd.hpp
示例7: invoke
static std::ptrdiff_t invoke( const char compz, VectorD& d, VectorE& e,
MatrixZ& z, detail::workspace1< WORK > work ) {
namespace bindings = ::boost::numeric::bindings;
BOOST_STATIC_ASSERT( (bindings::is_column_major< MatrixZ >::value) );
BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
typename bindings::value_type< VectorD >::type >::type,
typename remove_const< typename bindings::value_type<
VectorE >::type >::type >::value) );
BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
typename bindings::value_type< VectorD >::type >::type,
typename remove_const< typename bindings::value_type<
MatrixZ >::type >::type >::value) );
BOOST_STATIC_ASSERT( (bindings::is_mutable< VectorD >::value) );
BOOST_STATIC_ASSERT( (bindings::is_mutable< VectorE >::value) );
BOOST_STATIC_ASSERT( (bindings::is_mutable< MatrixZ >::value) );
BOOST_ASSERT( bindings::size(d) >= bindings::size(d) );
BOOST_ASSERT( bindings::size(d) >= 0 );
BOOST_ASSERT( bindings::size(e) >= bindings::size(d)-1 );
BOOST_ASSERT( bindings::size(work.select(real_type())) >=
min_size_work( bindings::size(d) ));
BOOST_ASSERT( bindings::size_minor(z) == 1 ||
bindings::stride_minor(z) == 1 );
BOOST_ASSERT( compz == 'N' || compz == 'V' || compz == 'I' );
return detail::pteqr( compz, bindings::size(d),
bindings::begin_value(d), bindings::begin_value(e),
bindings::begin_value(z), bindings::stride_major(z),
bindings::begin_value(work.select(real_type())) );
}
开发者ID:AntonDV235,项目名称:OMCompiler,代码行数:28,代码来源:pteqr.hpp
示例8: invoke
static void invoke( char const job, integer_t const n, MatrixA& a,
MatrixB& b, integer_t& ilo, integer_t& ihi, VectorLSCALE& lscale,
VectorRSCALE& rscale, integer_t& info, detail::workspace1<
WORK > work ) {
BOOST_STATIC_ASSERT( (boost::is_same< typename traits::matrix_traits<
MatrixA >::value_type, typename traits::matrix_traits<
MatrixB >::value_type >::value) );
BOOST_STATIC_ASSERT( (boost::is_same< typename traits::matrix_traits<
MatrixA >::value_type, typename traits::vector_traits<
VectorLSCALE >::value_type >::value) );
BOOST_STATIC_ASSERT( (boost::is_same< typename traits::matrix_traits<
MatrixA >::value_type, typename traits::vector_traits<
VectorRSCALE >::value_type >::value) );
BOOST_ASSERT( job == 'N' || job == 'P' || job == 'S' || job == 'B' );
BOOST_ASSERT( n >= 0 );
BOOST_ASSERT( traits::leading_dimension(a) >= std::max(1,n) );
BOOST_ASSERT( traits::leading_dimension(b) >= std::max(1,n) );
BOOST_ASSERT( traits::vector_size(work.select(real_type())) >=
min_size_work( $CALL_MIN_SIZE ));
detail::ggbal( job, n, traits::matrix_storage(a),
traits::leading_dimension(a), traits::matrix_storage(b),
traits::leading_dimension(b), ilo, ihi,
traits::vector_storage(lscale),
traits::vector_storage(rscale),
traits::vector_storage(work.select(real_type())), info );
}
开发者ID:fluxdark,项目名称:jflib,代码行数:26,代码来源:ggbal.hpp
示例9: invoke
static std::ptrdiff_t invoke( const char norm, const MatrixAP& ap,
detail::workspace1< WORK > work ) {
namespace bindings = ::boost::numeric::bindings;
typedef typename result_of::uplo_tag< MatrixAP >::type uplo;
BOOST_ASSERT( bindings::size(work.select(real_type())) >=
min_size_work( norm, bindings::size_column(ap) ));
BOOST_ASSERT( bindings::size_column(ap) >= 0 );
return detail::lanhp( norm, uplo(), bindings::size_column(ap),
bindings::begin_value(ap),
bindings::begin_value(work.select(real_type())) );
}
开发者ID:AntonDV235,项目名称:OMCompiler,代码行数:11,代码来源:lanhp.hpp
示例10: invoke
static std::ptrdiff_t invoke( const fortran_int_t n, VectorX& x,
real_type& est, fortran_int_t& kase, detail::workspace1<
V > work ) {
namespace bindings = ::boost::numeric::bindings;
BOOST_STATIC_ASSERT( (bindings::is_mutable< VectorX >::value) );
BOOST_ASSERT( bindings::size(work.select(value_type())) >=
min_size_v( n ));
BOOST_ASSERT( n >= 1 );
return detail::lacon( n,
bindings::begin_value(work.select(value_type())),
bindings::begin_value(x), est, kase );
}
开发者ID:AntonDV235,项目名称:OMCompiler,代码行数:12,代码来源:lacon.hpp
示例11: invoke
static std::ptrdiff_t invoke( const MatrixAP& ap, const VectorIPIV& ipiv,
const real_type anorm, real_type& rcond, detail::workspace1<
WORK > work ) {
namespace bindings = ::boost::numeric::bindings;
typedef typename result_of::uplo_tag< MatrixAP >::type uplo;
BOOST_ASSERT( bindings::size(ipiv) >= bindings::size_column(ap) );
BOOST_ASSERT( bindings::size(work.select(value_type())) >=
min_size_work( bindings::size_column(ap) ));
BOOST_ASSERT( bindings::size_column(ap) >= 0 );
return detail::hpcon( uplo(), bindings::size_column(ap),
bindings::begin_value(ap), bindings::begin_value(ipiv), anorm,
rcond, bindings::begin_value(work.select(value_type())) );
}
开发者ID:AntonDV235,项目名称:OMCompiler,代码行数:13,代码来源:hpcon.hpp
示例12: invoke
static std::ptrdiff_t invoke( const VectorD& d, const VectorE& e,
const real_type anorm, real_type& rcond, detail::workspace1<
RWORK > work ) {
namespace bindings = ::boost::numeric::bindings;
BOOST_ASSERT( bindings::size(d) >= bindings::size(d) );
BOOST_ASSERT( bindings::size(d) >= 0 );
BOOST_ASSERT( bindings::size(e) >= bindings::size(d)-1 );
BOOST_ASSERT( bindings::size(work.select(real_type())) >=
min_size_rwork( bindings::size(d) ));
return detail::ptcon( bindings::size(d), bindings::begin_value(d),
bindings::begin_value(e), anorm, rcond,
bindings::begin_value(work.select(real_type())) );
}
开发者ID:CQMP,项目名称:scripts,代码行数:13,代码来源:ptcon.hpp
示例13: invoke
static void invoke( MatrixA& a, VectorIPIV& ipiv, integer_t& info,
detail::workspace1< WORK > work ) {
BOOST_ASSERT( traits::matrix_uplo_tag(a) == 'U' ||
traits::matrix_uplo_tag(a) == 'L' );
BOOST_ASSERT( traits::matrix_num_columns(a) >= 0 );
BOOST_ASSERT( traits::leading_dimension(a) >= std::max(1,
traits::matrix_num_columns(a)) );
BOOST_ASSERT( traits::vector_size(work.select(real_type())) >=
min_size_work( $CALL_MIN_SIZE ));
detail::sytrf( traits::matrix_uplo_tag(a),
traits::matrix_num_columns(a), traits::matrix_storage(a),
traits::leading_dimension(a), traits::vector_storage(ipiv),
traits::vector_storage(work.select(real_type())),
traits::vector_size(work.select(real_type())), info );
}
开发者ID:fluxdark,项目名称:jflib,代码行数:15,代码来源:sytrf.hpp
示例14: invoke
static std::ptrdiff_t invoke( const char norm, const MatrixA& a,
detail::workspace1< WORK > work ) {
namespace bindings = ::boost::numeric::bindings;
typedef typename result_of::uplo_tag< MatrixA >::type uplo;
BOOST_STATIC_ASSERT( (bindings::is_column_major< MatrixA >::value) );
BOOST_ASSERT( bindings::size(work.select(real_type())) >=
min_size_work( norm, bindings::size_column(a) ));
BOOST_ASSERT( bindings::size_column(a) >= 0 );
BOOST_ASSERT( bindings::size_minor(a) == 1 ||
bindings::stride_minor(a) == 1 );
BOOST_ASSERT( bindings::stride_major(a) >= std::max<
std::ptrdiff_t >(bindings::size_column(a),1) );
return detail::lansy( norm, uplo(), bindings::size_column(a),
bindings::begin_value(a), bindings::stride_major(a),
bindings::begin_value(work.select(real_type())) );
}
开发者ID:AntonDV235,项目名称:OMCompiler,代码行数:16,代码来源:lansy.hpp
示例15: invoke
static void invoke( char const vect, integer_t const m, integer_t const n,
integer_t const k, MatrixA& a, VectorTAU& tau, integer_t& info,
detail::workspace1< WORK > work ) {
BOOST_STATIC_ASSERT( (boost::is_same< typename traits::matrix_traits<
MatrixA >::value_type, typename traits::vector_traits<
VectorTAU >::value_type >::value) );
BOOST_ASSERT( vect == 'Q' || vect == 'P' );
BOOST_ASSERT( m >= 0 );
BOOST_ASSERT( k >= 0 );
BOOST_ASSERT( traits::leading_dimension(a) >= m );
BOOST_ASSERT( traits::vector_size(work.select(value_type())) >=
min_size_work( m, n ));
detail::ungbr( vect, m, n, k, traits::matrix_storage(a),
traits::leading_dimension(a), traits::vector_storage(tau),
traits::vector_storage(work.select(value_type())),
traits::vector_size(work.select(value_type())), info );
}
开发者ID:fluxdark,项目名称:jflib,代码行数:17,代码来源:ungbr.hpp
示例16: invoke
static std::ptrdiff_t invoke( const char norm, const MatrixAB& ab,
detail::workspace1< WORK > work ) {
namespace bindings = ::boost::numeric::bindings;
BOOST_STATIC_ASSERT( (bindings::is_column_major< MatrixAB >::value) );
BOOST_ASSERT( bindings::bandwidth_lower(ab) >= 0 );
BOOST_ASSERT( bindings::bandwidth_upper(ab) >= 0 );
BOOST_ASSERT( bindings::size(work.select(real_type())) >=
min_size_work( norm, bindings::size_column(ab) ));
BOOST_ASSERT( bindings::size_column(ab) >= 0 );
BOOST_ASSERT( bindings::size_minor(ab) == 1 ||
bindings::stride_minor(ab) == 1 );
BOOST_ASSERT( bindings::stride_major(ab) >=
bindings::bandwidth_lower(ab)+bindings::bandwidth_upper(ab)+
1 );
return detail::langb( norm, bindings::size_column(ab),
bindings::bandwidth_lower(ab), bindings::bandwidth_upper(ab),
bindings::begin_value(ab), bindings::stride_major(ab),
bindings::begin_value(work.select(real_type())) );
}
开发者ID:AntonDV235,项目名称:OMCompiler,代码行数:19,代码来源:langb.hpp
示例17: invoke
static void invoke( MatrixA& a, VectorTAU& tau, integer_t& info,
detail::workspace1< WORK > work ) {
BOOST_STATIC_ASSERT( (boost::is_same< typename traits::matrix_traits<
MatrixA >::value_type, typename traits::vector_traits<
VectorTAU >::value_type >::value) );
BOOST_ASSERT( traits::matrix_num_rows(a) >= 0 );
BOOST_ASSERT( traits::matrix_num_columns(a) >= 0 );
BOOST_ASSERT( traits::leading_dimension(a) >= std::max(1,
traits::matrix_num_rows(a)) );
BOOST_ASSERT( traits::vector_size(tau) >=
std::min(traits::matrix_num_rows(a),
traits::matrix_num_columns(a)) );
BOOST_ASSERT( traits::vector_size(work.select(real_type())) >=
min_size_work( $CALL_MIN_SIZE ));
detail::geqrf( traits::matrix_num_rows(a),
traits::matrix_num_columns(a), traits::matrix_storage(a),
traits::leading_dimension(a), traits::vector_storage(tau),
traits::vector_storage(work.select(real_type())),
traits::vector_size(work.select(real_type())), info );
}
开发者ID:fluxdark,项目名称:jflib,代码行数:20,代码来源:geqrf.hpp
示例18: invoke
static void invoke( MatrixA& a, VectorD& d, VectorE& e, VectorTAUQ& tauq,
VectorTAUP& taup, integer_t& info, detail::workspace1<
WORK > work ) {
BOOST_STATIC_ASSERT( (boost::is_same< typename traits::matrix_traits<
MatrixA >::value_type, typename traits::vector_traits<
VectorD >::value_type >::value) );
BOOST_STATIC_ASSERT( (boost::is_same< typename traits::matrix_traits<
MatrixA >::value_type, typename traits::vector_traits<
VectorE >::value_type >::value) );
BOOST_STATIC_ASSERT( (boost::is_same< typename traits::matrix_traits<
MatrixA >::value_type, typename traits::vector_traits<
VectorTAUQ >::value_type >::value) );
BOOST_STATIC_ASSERT( (boost::is_same< typename traits::matrix_traits<
MatrixA >::value_type, typename traits::vector_traits<
VectorTAUP >::value_type >::value) );
BOOST_ASSERT( traits::matrix_num_rows(a) >= 0 );
BOOST_ASSERT( traits::matrix_num_columns(a) >= 0 );
BOOST_ASSERT( traits::leading_dimension(a) >= std::max(1,
traits::matrix_num_rows(a)) );
BOOST_ASSERT( traits::vector_size(d) >=
std::min(traits::matrix_num_rows(a),
traits::matrix_num_columns(a)) );
BOOST_ASSERT( traits::vector_size(tauq) >=
std::min(traits::matrix_num_rows(a),
traits::matrix_num_columns(a)) );
BOOST_ASSERT( traits::vector_size(taup) >=
std::min(traits::matrix_num_rows(a),
traits::matrix_num_columns(a)) );
BOOST_ASSERT( traits::vector_size(work.select(real_type())) >=
min_size_work( traits::matrix_num_rows(a),
traits::matrix_num_columns(a) ));
detail::gebrd( traits::matrix_num_rows(a),
traits::matrix_num_columns(a), traits::matrix_storage(a),
traits::leading_dimension(a), traits::vector_storage(d),
traits::vector_storage(e), traits::vector_storage(tauq),
traits::vector_storage(taup),
traits::vector_storage(work.select(real_type())),
traits::vector_size(work.select(real_type())), info );
}
开发者ID:fluxdark,项目名称:jflib,代码行数:39,代码来源:gebrd.hpp
示例19: invoke
static void invoke( char const jobz, integer_t const n,
integer_t const kd, MatrixAB& ab, VectorW& w, MatrixZ& z,
integer_t& info, detail::workspace1< WORK > work ) {
BOOST_STATIC_ASSERT( (boost::is_same< typename traits::matrix_traits<
MatrixAB >::value_type, typename traits::vector_traits<
VectorW >::value_type >::value) );
BOOST_STATIC_ASSERT( (boost::is_same< typename traits::matrix_traits<
MatrixAB >::value_type, typename traits::matrix_traits<
MatrixZ >::value_type >::value) );
BOOST_ASSERT( jobz == 'N' || jobz == 'V' );
BOOST_ASSERT( traits::matrix_uplo_tag(ab) == 'U' ||
traits::matrix_uplo_tag(ab) == 'L' );
BOOST_ASSERT( n >= 0 );
BOOST_ASSERT( kd >= 0 );
BOOST_ASSERT( traits::leading_dimension(ab) >= kd );
BOOST_ASSERT( traits::vector_size(work.select(real_type())) >=
min_size_work( n ));
detail::sbev( jobz, traits::matrix_uplo_tag(ab), n, kd,
traits::matrix_storage(ab), traits::leading_dimension(ab),
traits::vector_storage(w), traits::matrix_storage(z),
traits::leading_dimension(z),
traits::vector_storage(work.select(real_type())), info );
}
开发者ID:fluxdark,项目名称:jflib,代码行数:23,代码来源:sbev.hpp
示例20: invoke
static void invoke( char const vect, integer_t const n,
integer_t const kd, MatrixAB& ab, VectorD& d, VectorE& e,
MatrixQ& q, integer_t& info, detail::workspace1< WORK > work ) {
BOOST_STATIC_ASSERT( (boost::is_same< typename traits::vector_traits<
VectorD >::value_type, typename traits::vector_traits<
VectorE >::value_type >::value) );
BOOST_STATIC_ASSERT( (boost::is_same< typename traits::matrix_traits<
MatrixAB >::value_type, typename traits::matrix_traits<
MatrixQ >::value_type >::value) );
BOOST_ASSERT( vect == 'N' || vect == 'V' || vect == 'U' );
BOOST_ASSERT( traits::matrix_uplo_tag(a) == 'U' ||
traits::matrix_uplo_tag(a) == 'L' );
BOOST_ASSERT( n >= 0 );
BOOST_ASSERT( kd >= 0 );
BOOST_ASSERT( traits::leading_dimension(ab) >= kd+1 );
BOOST_ASSERT( traits::vector_size(d) >= n );
BOOST_ASSERT( traits::vector_size(work.select(value_type())) >=
min_size_work( n ));
detail::hbtrd( vect, traits::matrix_uplo_tag(a), n, kd,
traits::matrix_storage(ab), traits::leading_dimension(ab),
traits::vector_storage(d), traits::vector_storage(e),
traits::matrix_storage(q), traits::leading_dimension(q),
traits::vector_storage(work.select(value_type())), info );
}
开发者ID:fluxdark,项目名称:jflib,代码行数:24,代码来源:hbtrd.hpp
注:本文中的detail::workspace1类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论