typename std::enable_if<is_blas_lapack_type<typename VTX::value_type>::value && have_same_value_type<VTX, VTY, MT>::value>::type ger(typename VTX::value_type alpha, VTX const &X, VTY const &Y, MT &A) { static_assert(is_amv_value_or_view_class<MT>::value, "ger : A must be a matrix or a matrix_view"); if ((first_dim(A) != Y.size()) || (second_dim(A) != X.size())) TRIQS_RUNTIME_ERROR << "Dimension mismatch in ger : A : " << get_shape(A()) << " while X : " << get_shape(X()) << " and Y : " << get_shape(Y()); const_qcache<VTX> Cx(X); // mettre la condition a la main const_qcache<VTY> Cy(Y); // mettre la condition a la main reflexive_qcache<MT> Ca(A); if (Ca().memory_layout_is_c()) // tA += alpha y tx f77::ger(get_n_rows(Ca()), get_n_cols(Ca()), alpha, Cy().data_start(), Cy().stride(), Cx().data_start(), Cx().stride(), Ca().data_start(), get_ld(Ca())); else f77::ger(get_n_rows(Ca()), get_n_cols(Ca()), alpha, Cx().data_start(), Cx().stride(), Cy().data_start(), Cy().stride(), Ca().data_start(), get_ld(Ca())); /* std::cerr << " Meme labout C"<< Ca().memory_layout_is_c() << " "<<A.memory_layout_is_c()<<std::endl ; std::cerr<< " has_contiguous_data(A) : "<< has_contiguous_data(A) << std::endl; std::cerr<< Ca()<< std::endl; std::cerr<< Ca()(0,0) << " "<< Ca()(1,0) << " "<< Ca()(0,1) << " "<< Ca()(1,1) << " "<< std::endl; std::cerr<< Ca().data_start()[0]<< " "<< Ca().data_start()[1]<< " "<< Ca().data_start()[2]<< " " << Ca().data_start()[3]<< " "<<std::endl; std::cerr<< A<< std::endl; std::cerr<< A(0,0) << " "<< A(1,0) << " "<< A(0,1) << " "<< A(1,1) << " "<< std::endl; std::cerr<< A.data_start()[0]<< " "<< A.data_start()[1]<< " "<< A.data_start()[2]<< " " << A.data_start()[3]<< " "<<std::endl; */ }
void GeoConnection::connectLikeInVC(bool skip_diag) { if ( dst->evolve_locally() ) { // if there are no local units there is no need for synapses stringstream oss; oss << "GeoConnection: ("<< get_name() <<"): Randomfill with weight "<< cWeight << " and long range weight " << oWeight << ". FieldSize is " << sourceWidth << "|" << destWidth << " and PinwheelSize is " << oBoxSize << ".\n"; logger->msg(oss.str(),DEBUG); w->clear(); connectLikeInVC_Block(0,get_m_rows(),0,get_n_cols(),skip_diag); } finalize(); }