#include "Vector.hpp" #include template void show(const VectorBase

&v) { for (typename VectorBase

::const_item_iterator it=v.begin(); it != v.end(); ++it) std::cout << "( " << it->index << ", " << (*it).value << "), "; std::cout << std::endl; for (typename VectorBase

::const_value_iterator it=v.begin(); it != v.end(); ++it) std::cout << *it << ", "; std::cout << std::endl; } template void showx(VectorBase

v) { for (typename VectorBase

::item_iterator it=v.begin(); it != v.end(); ++it) std::cout << "( " << it->index << ", " << (*it).value << "), "; std::cout << std::endl; for (typename VectorBase

::value_iterator it=v.begin(); it != v.end(); ++it) std::cout << *it << ", "; std::cout << std::endl; } int main() { // TODO: Full mit Länge !, oder: adaptiv ! Vector v1(11); //VectorBase > v1; SparseVector v2, v3; v1[0] = 1.0; for (int i=0; i<11; i += 2) { std::cout << "i=" << i << std::endl; v2[i] = static_cast(i+1); std::cout << "v2= " << v2 << std::endl; v3[i+1] = static_cast(i+1); std::cout << "v3= " << v3 << std::endl; } v1 = v1+v1; std::cout << v1.pNorm(2.0) << std::endl; show(v2); show(v2+v3); //showx(v1); //showx(v2); // show(v2); v1[0]=1.0; v1[2]=2.0; //show(v1); //show(v2); //v2[1]=1.0; //v2[2]=2.0; //show(v1); //show(v2); //std::cout << v2.len() << std::endl; std::cout << dot(v2,v2) << std::endl; std::cout << dot(v1,v1) << std::endl; std::cout << v2*v2 << std::endl; std::cout << v1*v1 << std::endl; std::cout << euk_distance(v1,v1) << std::endl; VectorBase::zip_iter it1(v1,v1); for (; it1.isValid(); ++it1) { std::cout << it1->index << " " << it1->value1 << " " << it1->value2 << std::endl; } v2 = 3.0 * v2; std::cout << std::endl; SparseVector::zip_iter it2(v2,v3); for (; it2.isValid(); ++it2) { std::cout << it2->index << " " << it2->value1 << " " << it2->value2 << std::endl; } return 1; }