LINUX.ORG.RU

[C++, boost::ublas] компилятор не может подобрать подходящую перегрузку функции inplace_solve.


0

0

Дорогой ЛОР!

Я так несчастна...((((( Ваня из 9-ого «А» класса совсем не обращает на меня внимания. А сегодня он даже пригласил эту крашеную дуру Чижикову в кино!!! Так дальше не может продолжаться!(((( Я решила завоевать сердце моего зайки, сделав за него домашку по информатике. Но вот беда: Элла Ивановна задала нам решить систему алгебраических уравнений с треугольной матрицей, а я в этом совсем-совсем ничего не понимаю! %)

Вот какую программку я написала:

#include <iostream>

#include <boost/numeric/ublas/io.hpp>
#include <boost/numeric/ublas/matrix_proxy.hpp>
#include <boost/numeric/ublas/triangular.hpp>
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/vector_proxy.hpp>

int main () {
using namespace boost::numeric::ublas;

triangular_matrix<double, upper> A(3,3);
for (int i=0; i!=3; ++i)
for (int j=i; j!=3; ++j)
A(i,j)=1.;

std::cout << A << std::endl;

vector<double> x(3), y(3);
for (int i=0; i!=3; ++i)
x(i)=3.-i;

upper tag;
y=solve(A, x, tag);
std::cout << y << std::endl;
return EXIT_SUCCESS;
}

На вид все хорошо. Однако, мой g++ 3.4.5 (это наиболее свежая стабильная версия компилятора C++ из MinGW) утверждает, что подобрать подходящую перегрузку функции inplace_solve (которая вызывается из функции solve) невозможно. Я решила попытать счастья с компилятором, входящим в поставку MSVS 2005 Express Edition, но результат был тот же.

ЛОР-чик, выручай (и не смотри, что у меня оффтопик, ладно?)! Чмоки всем!)))))

Ах да! Библиотека ublas из boost 1.36.0. Воть. :3

anonymous

Извиняюсь за оффтопик, но где такую траву забористую берете? Отсыпьте плиз. С++ да и еще с бустом в 9 классе - бедные дети. Нет чтоб чтонить вечное типа хаскеля или лиспа...

anonymous
()

Киса, что, прочитать ошибки и посмотреть в хидера никак, да? Тогда нечего делать с С++. А вообще, замени upper на upper_tag ж)

-upper tag; +upper_tag tag;

anonymous
()

разрешаю использовать питон

>>> import Numeric, LinearAlgebra

>>> a = Numeric.array([[1.0, 2.0], [0.0, 1.0]])

>>> b = Numeric.array([1.2, 1.5])

>>> x = LinearAlgebra.solve_linear_equations(a, b)

>>> print "x =", x

dimon555 ★★★★★
()
Ответ на: комментарий от anonymous

Спасибо, добрый онанимус, просмотрела! Мне бы заняться варкой супов.:3

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.