/*++ Copyright (c) 2017 Microsoft Corporation Module Name: Abstract: Author: Lev Nachmanson (levnach) Revision History: --*/ #include #include #include #include "util/vector.h" #include "util/debug.h" #include "util/lp/lu.hpp" template double lp::dot_product(vector const&, vector const&); template lp::lu::lu(lp::static_matrix const&, vector&, lp::lp_settings&); template void lp::lu::push_matrix_to_tail(lp::tail_matrix*); template void lp::lu::replace_column(double, lp::indexed_vector&, unsigned); template void lp::lu::solve_Bd(unsigned int, lp::indexed_vector&, lp::indexed_vector&); template lp::lu::~lu(); template void lp::lu::push_matrix_to_tail(lp::tail_matrix*); template void lp::lu::solve_Bd(unsigned int, lp::indexed_vector&, lp::indexed_vector&); template lp::lu::~lu(); template void lp::lu >::push_matrix_to_tail(lp::tail_matrix >*); template void lp::lu >::solve_Bd(unsigned int, lp::indexed_vector&, lp::indexed_vector&); template lp::lu >::~lu(); template lp::mpq lp::dot_product(vector const&, vector const&); template void lp::init_factorization(lp::lu*&, lp::static_matrix&, vector&, lp::lp_settings&); template void lp::init_factorization(lp::lu*&, lp::static_matrix&, vector&, lp::lp_settings&); template void lp::init_factorization >(lp::lu >*&, lp::static_matrix >&, vector&, lp::lp_settings&); #ifdef LEAN_DEBUG template void lp::print_matrix(lp::sparse_matrix&, std::ostream & out); template void lp::print_matrix(lp::static_matrix&, std::ostream&); template void lp::print_matrix >(lp::static_matrix >&, std::ostream&); template void lp::print_matrix(lp::static_matrix&, std::ostream & out); template bool lp::lu::is_correct(const vector& basis); template bool lp::lu >::is_correct( vector const &); template lp::dense_matrix lp::get_B(lp::lu&, const vector& basis); template lp::dense_matrix lp::get_B(lp::lu&, vector const&); #endif template bool lp::lu::pivot_the_row(int); // NOLINT template void lp::lu::init_vector_w(unsigned int, lp::indexed_vector&); template void lp::lu::solve_By(vector&); template void lp::lu::solve_By_when_y_is_ready_for_X(vector&); template void lp::lu::solve_yB_with_error_check(vector&, const vector& basis); template void lp::lu::solve_yB_with_error_check_indexed(lp::indexed_vector&, vector const&, const vector & basis, const lp_settings&); template void lp::lu::replace_column(lp::mpq, lp::indexed_vector&, unsigned); template void lp::lu::solve_By(vector&); template void lp::lu::solve_By_when_y_is_ready_for_X(vector&); template void lp::lu::solve_yB_with_error_check(vector&, const vector& basis); template void lp::lu::solve_yB_with_error_check_indexed(lp::indexed_vector&, vector< int > const&, const vector & basis, const lp_settings&); template void lp::lu >::solve_yB_with_error_check_indexed(lp::indexed_vector&, vector< int > const&, const vector & basis, const lp_settings&); template void lp::lu >::init_vector_w(unsigned int, lp::indexed_vector&); template void lp::lu >::replace_column(lp::mpq, lp::indexed_vector&, unsigned); template void lp::lu >::solve_Bd_faster(unsigned int, lp::indexed_vector&); template void lp::lu >::solve_By(vector >&); template void lp::lu >::solve_By_when_y_is_ready_for_X(vector >&); template void lp::lu >::solve_yB_with_error_check(vector&, const vector& basis); template void lp::lu::solve_By(lp::indexed_vector&); template void lp::lu::solve_By(lp::indexed_vector&); template void lp::lu::solve_yB_indexed(lp::indexed_vector&); template void lp::lu::solve_yB_indexed(lp::indexed_vector&); template void lp::lu >::solve_yB_indexed(lp::indexed_vector&); template void lp::lu::solve_By_for_T_indexed_only(lp::indexed_vector&, lp::lp_settings const&); template void lp::lu::solve_By_for_T_indexed_only(lp::indexed_vector&, lp::lp_settings const&);