Giriş
ublas eski bir kütüphane. Açıklaması şöyle
Açıklaması şöyle
matrix Sınıfı
Şu satırı dahil ederiz.
Şöyle yaparız. İlk parametre satır, ikinci parametre sütun sayısıdır.
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Şu satırı dahil ederiz.
Şöyle yaparız. matrix kurulurken birinci parametre olan satır sayısını verir.
Şöyle yaparız. matrix kurulurken ikinci parametre olan sütun sayısını verir.
Giriş
Matrix Proxies başlığı altına girer. Gereksiz kopyalama yapmadan matris'in satırına erişme imkanı tanır.
Örnek ver
matrix_row Sınıfı
Matrix Proxies başlığı altına girer. Gereksiz kopyalama yapmadan matris'in satırına erişme imkanı tanır.
vector Sınıfı
vector Sınıfı yazısına taşıdım.
vector_expression Sınıfı
ublas eski bir kütüphane. Açıklaması şöyle
BOOST_UBLAS_TYPE_CHECK MacrosuuBLAS is more than 10 years old and missed all new stuff from C++11.
Açıklaması şöyle
BOOST_UBLAS_TYPE_CHECK
When BOOST_UBLAS_TYPE_CHECK is enabled then all possibly expensive structure checks are enabled. If this is not desireable then use #define BOOST_UBLAS_TYPE_CHECK 0 before including any uBLAS header. The define BOOST_UBLAS_TYPE_CHECK_EPSILON can be used to control the acceptable tolerance, see detail/matrix_assign.hpp for implementation details of this check.
Şu satırı dahil ederiz.
#include <boost/numeric/ublas/matrix.hpp>Şöyle tanımlanır.
typedef boost::numeric::ublas::matrix<double> matrix_type;
Constructor - int + intŞöyle yaparız. İlk parametre satır, ikinci parametre sütun sayısıdır.
int size = 10;
boost::numeric::ublas::matrix<double> m (size, size);
Şöyle yaparız.ublas::matrix<double> m (4, 4);
operator ()Şöyle yaparız.
unsigned i = ...;
unsigned j = ...;
double s = m(i, j);
operator (i,j)Şöyle yaparız.
int i = 0;
int j = 0;
double v = 10;
m (i,j) = v;
Şöyle yaparız.ublas::matrix<double> m(4, 4);
size_t s = 1;
for (size_t i = 0; i < 4; ++i) {
for (size_t j = 0; j < 4; ++j) {
m(i, j) = s++;
}
}
operator = metoduŞöyle yaparız.
const bnu::matrix<double> b = a;
operator << metoduŞu satırı dahil ederiz.
#include <boost/numeric/ublas/io.hpp>
Şöyle yaparız.
std::cout << m << ::std::endl; // show a [13X4] matrix
size1 metoduŞöyle yaparız. matrix kurulurken birinci parametre olan satır sayısını verir.
unsigned int n = m.size1();
size2 metoduŞöyle yaparız. matrix kurulurken ikinci parametre olan sütun sayısını verir.
unsigned int n = m.size2();
Tüm elemanları dolaşmak için şöyle yaparız.boost::numeric::ublas::matrix<double> m (10, 10);
for (int i = 0; i < m.size1 (); ++i)
for (int j = 0; j < m.size2 (); ++j)
m (i,j) = ...;
matrix_column SınıfıGiriş
Matrix Proxies başlığı altına girer. Gereksiz kopyalama yapmadan matris'in satırına erişme imkanı tanır.
Constructor
Şöyle yaparız.// matrix container of 13 rows and 4 columns
::boost::numeric::ublas::matrix<double> m (13, 4);
for (size_t j = 0; j < m.size2(); ++j){
boost::numeric::ublas::matrix_column<
::boost::numeric::ublas::matrix<double>
> mc (m, j); // in this case j = 4
for (size_t i = 0; i < MC.size(); ++i){
mc(i) = 3 * i + j;
}
}
matrix_expression SınıfıÖrnek ver
matrix_row Sınıfı
Matrix Proxies başlığı altına girer. Gereksiz kopyalama yapmadan matris'in satırına erişme imkanı tanır.
vector Sınıfı
vector Sınıfı yazısına taşıdım.
vector_expression Sınıfı
Şu satırı dahil ederiz.
#include <boost/numeric/ublas/vector_expression.hpp>
Örnek ver
Free Style Metodlar
inner metodu
Örnek ver
norm2 metodu
Örnek ver
operator <<= metodu
Şu satırı dahil ederiz.
AxB'lik yeni bir matris döndürür. Şöyle yaparız.
İmzası şöyledir. subrange yeni bir matris döner. Yarı açık (Half-open) indeksler kullanır.
Free Style Metodlar
inner metodu
Örnek ver
Örnek ver
operator <<= metodu
Şu satırı dahil ederiz.
#include <boost/numeric/ublas/assignment.hpp>Şöyle yaparız.
bnu::matrix<double> a(3,3); a <<= 0, 1, 2,
3, 4, 5,
6, 7, 8;
prod metodu
Şöyle yaparız.boost::numeric::ublas::matrix<double> m1 (10, 10);
boost::numeric::ublas::matrix<double> m2 (20, 20);
boost::numeric::ublas::matrix<double> m3 (10, 10);
...
noalias (m3) = prod (m1,m2);
project metoduAxB'lik yeni bir matris döndürür. Şöyle yaparız.
boost::numeric::ublas::matrix m;
//...
r1 = boost::numeric::ublas::range(i1, i2);
r2 = boost::numeric::ublas::range(i3, i4);
boost::numeric::ublas::project(m, r1, r2) = A;
subrange metoduİmzası şöyledir. subrange yeni bir matris döner. Yarı açık (Half-open) indeksler kullanır.
M, rowBegin, rowEnd, columnBegin, columnEndŞöyle yaparız.
m2 = subrange(m, 0,1,0,5);
Hiç yorum yok:
Yorum Gönder