forked from HIT-SCIR/ltp
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
426 changed files
with
128,297 additions
and
0 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
55 changes: 55 additions & 0 deletions
55
thirdparty/armadillo-5.100.1/include/armadillo_bits/BaseCube_bones.hpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
// Copyright (C) 2008-2014 Conrad Sanderson | ||
// Copyright (C) 2008-2014 NICTA (www.nicta.com.au) | ||
// | ||
// This Source Code Form is subject to the terms of the Mozilla Public | ||
// License, v. 2.0. If a copy of the MPL was not distributed with this | ||
// file, You can obtain one at http://mozilla.org/MPL/2.0/. | ||
|
||
|
||
//! \addtogroup BaseCube | ||
//! @{ | ||
|
||
|
||
|
||
template<typename elem_type, typename derived> | ||
struct BaseCube_eval_Cube | ||
{ | ||
arma_inline const derived& eval() const; | ||
}; | ||
|
||
|
||
template<typename elem_type, typename derived> | ||
struct BaseCube_eval_expr | ||
{ | ||
arma_inline Cube<elem_type> eval() const; //!< force the immediate evaluation of a delayed expression | ||
}; | ||
|
||
|
||
template<typename elem_type, typename derived, bool condition> | ||
struct BaseCube_eval {}; | ||
|
||
template<typename elem_type, typename derived> | ||
struct BaseCube_eval<elem_type, derived, true> { typedef BaseCube_eval_Cube<elem_type, derived> result; }; | ||
|
||
template<typename elem_type, typename derived> | ||
struct BaseCube_eval<elem_type, derived, false> { typedef BaseCube_eval_expr<elem_type, derived> result; }; | ||
|
||
|
||
|
||
//! Analog of the Base class, intended for cubes | ||
template<typename elem_type, typename derived> | ||
struct BaseCube | ||
: public BaseCube_eval<elem_type, derived, is_Cube<derived>::value>::result | ||
{ | ||
arma_inline const derived& get_ref() const; | ||
|
||
inline void print(const std::string extra_text = "") const; | ||
inline void print(std::ostream& user_stream, const std::string extra_text = "") const; | ||
|
||
inline void raw_print(const std::string extra_text = "") const; | ||
inline void raw_print(std::ostream& user_stream, const std::string extra_text = "") const; | ||
}; | ||
|
||
|
||
|
||
//! @} |
102 changes: 102 additions & 0 deletions
102
thirdparty/armadillo-5.100.1/include/armadillo_bits/BaseCube_meat.hpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
// Copyright (C) 2008-2014 Conrad Sanderson | ||
// Copyright (C) 2008-2014 NICTA (www.nicta.com.au) | ||
// | ||
// This Source Code Form is subject to the terms of the Mozilla Public | ||
// License, v. 2.0. If a copy of the MPL was not distributed with this | ||
// file, You can obtain one at http://mozilla.org/MPL/2.0/. | ||
|
||
|
||
//! \addtogroup BaseCube | ||
//! @{ | ||
|
||
|
||
|
||
template<typename elem_type, typename derived> | ||
arma_inline | ||
const derived& | ||
BaseCube<elem_type,derived>::get_ref() const | ||
{ | ||
return static_cast<const derived&>(*this); | ||
} | ||
|
||
|
||
|
||
template<typename elem_type, typename derived> | ||
inline | ||
void | ||
BaseCube<elem_type,derived>::print(const std::string extra_text) const | ||
{ | ||
const unwrap_cube<derived> tmp( (*this).get_ref() ); | ||
|
||
tmp.M.impl_print(extra_text); | ||
} | ||
|
||
|
||
|
||
template<typename elem_type, typename derived> | ||
inline | ||
void | ||
BaseCube<elem_type,derived>::print(std::ostream& user_stream, const std::string extra_text) const | ||
{ | ||
const unwrap_cube<derived> tmp( (*this).get_ref() ); | ||
|
||
tmp.M.impl_print(user_stream, extra_text); | ||
} | ||
|
||
|
||
|
||
template<typename elem_type, typename derived> | ||
inline | ||
void | ||
BaseCube<elem_type,derived>::raw_print(const std::string extra_text) const | ||
{ | ||
const unwrap_cube<derived> tmp( (*this).get_ref() ); | ||
|
||
tmp.M.impl_raw_print(extra_text); | ||
} | ||
|
||
|
||
|
||
template<typename elem_type, typename derived> | ||
inline | ||
void | ||
BaseCube<elem_type,derived>::raw_print(std::ostream& user_stream, const std::string extra_text) const | ||
{ | ||
const unwrap_cube<derived> tmp( (*this).get_ref() ); | ||
|
||
tmp.M.impl_raw_print(user_stream, extra_text); | ||
} | ||
|
||
|
||
|
||
// | ||
// extra functions defined in BaseCube_eval_Cube | ||
|
||
template<typename elem_type, typename derived> | ||
arma_inline | ||
const derived& | ||
BaseCube_eval_Cube<elem_type, derived>::eval() const | ||
{ | ||
arma_extra_debug_sigprint(); | ||
|
||
return static_cast<const derived&>(*this); | ||
} | ||
|
||
|
||
|
||
// | ||
// extra functions defined in BaseCube_eval_expr | ||
|
||
template<typename elem_type, typename derived> | ||
arma_inline | ||
Cube<elem_type> | ||
BaseCube_eval_expr<elem_type, derived>::eval() const | ||
{ | ||
arma_extra_debug_sigprint(); | ||
|
||
return Cube<elem_type>( static_cast<const derived&>(*this) ); | ||
} | ||
|
||
|
||
|
||
//! @} |
124 changes: 124 additions & 0 deletions
124
thirdparty/armadillo-5.100.1/include/armadillo_bits/Base_bones.hpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,124 @@ | ||
// Copyright (C) 2008-2014 Conrad Sanderson | ||
// Copyright (C) 2008-2014 NICTA (www.nicta.com.au) | ||
// | ||
// This Source Code Form is subject to the terms of the Mozilla Public | ||
// License, v. 2.0. If a copy of the MPL was not distributed with this | ||
// file, You can obtain one at http://mozilla.org/MPL/2.0/. | ||
|
||
|
||
//! \addtogroup Base | ||
//! @{ | ||
|
||
|
||
|
||
template<typename derived> | ||
struct Base_inv_yes | ||
{ | ||
arma_inline const Op<derived,op_inv> i(const bool slow = false) const; //!< matrix inverse | ||
arma_inline const Op<derived,op_inv> i(const char* method ) const; //!< matrix inverse | ||
}; | ||
|
||
|
||
template<typename derived> | ||
struct Base_inv_no | ||
{ | ||
}; | ||
|
||
|
||
template<typename derived, bool condition> | ||
struct Base_inv {}; | ||
|
||
template<typename derived> | ||
struct Base_inv<derived, true> { typedef Base_inv_yes<derived> result; }; | ||
|
||
template<typename derived> | ||
struct Base_inv<derived, false> { typedef Base_inv_no<derived> result; }; | ||
|
||
|
||
|
||
template<typename elem_type, typename derived> | ||
struct Base_eval_Mat | ||
{ | ||
arma_inline const derived& eval() const; | ||
}; | ||
|
||
|
||
template<typename elem_type, typename derived> | ||
struct Base_eval_expr | ||
{ | ||
arma_inline Mat<elem_type> eval() const; //!< force the immediate evaluation of a delayed expression | ||
}; | ||
|
||
|
||
template<typename elem_type, typename derived, bool condition> | ||
struct Base_eval {}; | ||
|
||
template<typename elem_type, typename derived> | ||
struct Base_eval<elem_type, derived, true> { typedef Base_eval_Mat<elem_type, derived> result; }; | ||
|
||
template<typename elem_type, typename derived> | ||
struct Base_eval<elem_type, derived, false> { typedef Base_eval_expr<elem_type, derived> result; }; | ||
|
||
|
||
|
||
template<typename derived> | ||
struct Base_trans_cx | ||
{ | ||
arma_inline const Op<derived,op_htrans> t() const; | ||
arma_inline const Op<derived,op_htrans> ht() const; | ||
arma_inline const Op<derived,op_strans> st() const; // simple transpose: no complex conjugates | ||
}; | ||
|
||
|
||
template<typename derived> | ||
struct Base_trans_default | ||
{ | ||
arma_inline const Op<derived,op_htrans> t() const; | ||
arma_inline const Op<derived,op_htrans> ht() const; | ||
arma_inline const Op<derived,op_htrans> st() const; // return op_htrans instead of op_strans, as it's handled better by matrix multiplication code | ||
}; | ||
|
||
|
||
template<typename derived, bool condition> | ||
struct Base_trans {}; | ||
|
||
template<typename derived> | ||
struct Base_trans<derived, true> { typedef Base_trans_cx<derived> result; }; | ||
|
||
template<typename derived> | ||
struct Base_trans<derived, false> { typedef Base_trans_default<derived> result; }; | ||
|
||
|
||
|
||
//! Class for static polymorphism, modelled after the "Curiously Recurring Template Pattern" (CRTP). | ||
//! Used for type-safe downcasting in functions that restrict their input(s) to be classes that are | ||
//! derived from Base (e.g. Mat, Op, Glue, diagview, subview). | ||
//! A Base object can be converted to a Mat object by the unwrap class. | ||
|
||
template<typename elem_type, typename derived> | ||
struct Base | ||
: public Base_inv<derived, is_supported_blas_type<elem_type>::value>::result | ||
, public Base_eval<elem_type, derived, is_Mat<derived>::value>::result | ||
, public Base_trans<derived, is_cx<elem_type>::value>::result | ||
{ | ||
arma_inline const derived& get_ref() const; | ||
|
||
inline void print(const std::string extra_text = "") const; | ||
inline void print(std::ostream& user_stream, const std::string extra_text = "") const; | ||
|
||
inline void raw_print(const std::string extra_text = "") const; | ||
inline void raw_print(std::ostream& user_stream, const std::string extra_text = "") const; | ||
|
||
inline arma_warn_unused elem_type min() const; | ||
inline arma_warn_unused elem_type max() const; | ||
|
||
inline elem_type min(uword& index_of_min_val) const; | ||
inline elem_type max(uword& index_of_max_val) const; | ||
|
||
inline elem_type min(uword& row_of_min_val, uword& col_of_min_val) const; | ||
inline elem_type max(uword& row_of_max_val, uword& col_of_max_val) const; | ||
}; | ||
|
||
|
||
|
||
//! @} |
Oops, something went wrong.