#include <slate.h> int main() { // // Vectors and Matrices with the same dimensions and type can be added // together. // Matrix<double> a(1,2,1,2,19.0); Matrix<double> b(3,4,1,2,10.0); Matrix<double> c(2,2); c = a + b; cout << c << endl; Vector<int> d(3,9,4); Vector<int> e(1,7,2); Vector<int> f; f = d + e; cout << f << endl; // // Scalar elements can be added to Vectors and Matrices. // c = c + 14.0; cout << c << endl; c = a + 12.0 + b + 1.0 + c; cout << c << endl; f = d + 7; cout << f << endl; f = 9 + d + 24; cout << f << endl; }
#include <slate.h> int main() { // // Vectors and Matrices with the same dimensions and type can be // substracted from one another. // Matrix<double> a(1,2,1,2,19.0); Matrix<double> b(3,4,1,2,10.0); Matrix<double> c(2,2); c = a - b; cout << c << endl; Vector<int> d(3,9,4); Vector<int> e(1,7,2); Vector<int> f; f = d - e; cout << f << endl; // // Scalar elements can be subtracted from Vectors and Matrices. // c = c - 14.0; cout << c << endl; c = 2.0 - a - 12.0 - b - 1.0 - c; cout << c << endl; f = d - 7; cout << f << endl; f = 9 - d - 24; cout << f << endl; // // The unary operator ('-') can also be used to negate a Vector or Matrix. // cout << -f << endl; cout << -c << endl; }
#include <slate.h> int main() { // // Vectors and Matrices with the same dimensions and type can be // multiplied element-by-element. // Matrix<double> a(1,2,1,2,19.0); Matrix<double> b(3,4,1,2,10.0); Matrix<double> c(2,2); c = elem_mul(a,b); cout << c << endl; Vector<int> d(3,9,4); Vector<int> e(1,7,2); Vector<int> f; f = elem_mul(d,e); cout << f << endl; // // Scalar elements can be multiplied Vectors and Matrices. // c = c * 0.1; cout << c << endl; c = 2.0 * a * 2.0; cout << c << endl; f = d * 7; cout << f << endl; f = 9 * d * 3; cout << f << endl; // // Matrix multiplication between conformant Matrices. The result // is another Matrix. // Matrix<int> p(1,3,1,3,2); Matrix<int> q(1,3,1,3,3); p(1,1) = 4; q(3,3) = 5; cout << p * q << endl; cout << q * p << endl; cout << q * p * p * p << endl; // // Matrix multiplication between conformant Matrices and Vectors. The // result is another Vector. // Vector<int> r(1,3,10); r(3) = 5; p(1,3) = 3; p(3,1) = 1; cout << p << endl; cout << r << endl; cout << p * r << endl; cout << r * p << endl; // // Dot product between two Vectors. // cout << dot(r,r) << endl; }
#include <slate.h> int main() { // // Vectors and Matrices with the same dimensions and type can be // divided by one another element-by-element. // Matrix<double> a(1,2,1,2,19.0); Matrix<double> b(3,4,1,2,10.0); Matrix<double> c(2,2); c = a / b; cout << c << endl; Vector<double> d(3,9,4.0); Vector<double> e(1,7,2.0); Vector<double> f; f = d / e; cout << f << endl; // // Scalar elements can be divided by Vectors and Matrices, and // vice versa. This is an element-by-element division. // c = c / 14.0; cout << c << endl; c = 2.0 / a / 12.0 / b / 1.0 / c; cout << c << endl; f = d / 7.0; cout << f << endl; f = 9.0 / d / 24.0; cout << f << endl; }
#include <slate.h> int main() { // // Vectors and Matrices with the same dimensions and type can compared // element-by-element. // Matrix<double> a(1,2,1,2,19.0); Matrix<double> b(3,4,1,2,10.0); a(1,1) = 10.0; cout << (a < b) << endl; // TRUE only if *all* elements of a < b cout << (a <= b) << endl; cout << (a == b) << endl; cout << (a >= b) << endl; cout << (a > b) << endl; // // Comparisons can be made with scalars. // cout << (a < 10.0) << endl; cout << (a <= 10.0) << endl; cout << (a == 10.0) << endl; cout << (a >= 10.0) << endl; cout << (a < 10.0) << endl; cout << (10.0 < a) << endl; cout << (10.0 <= a) << endl; cout << (10.0 == a) << endl; cout << (10.0 >= a) << endl; cout << (10.0 > a) << endl; }
#include <slate.h> int main() { // // Complex values can be used, drawing from C's <complex> classes. // Matrix< complex<double> > a(1,2,1,2,complex<double>(19.0,0)); Matrix< complex<double> > b(3,4,1,2,complex<double>(10.0,0)); a(1,1) = complex<double> (0.0,3.0); cout << a << endl; // // All arithmetic operations defined over complex numbers can be // performed the same as any other type. // cout << a + a << endl; cout << complex<double>(3.0,4.0) * a << endl; }
#include <slate.h> int main() { // // New Vectors and Matrices with different types can be formed. // Suppose we have a double Matrix which we want to float. We create // a new float Matrix as follows: // Matrix<double> a(1,2,1,2,19.0); Matrix<float> b; b = a.convert(b); cout << b << endl; Vector<double> c(1,5,12.5); Vector<int> d; d = c.convert(d); cout << d << endl; }