#include <tensor.h>
#include <complex.h>

int main()
{
cout << "Enter tensors a, b, g..."; Tensor<Complex> a, b, g; cin >> a >> b >> g;
cout << "outer product: " << outer_product(a,b) << endl;
Tensor<Complex> c = default_inner_product(a,b,g);
cout << "default inner product: " << c << endl;
cout << "Enter 2 indices (base 0) for inner product..."; int ia, ib; cin >> ia >> ib;
cout << "inner product: " << inner_product(a,ia,b,ib,g) << endl;
cout << "Enter 2 indices for contraction..."; int i, j; cin >> i >> j;
cout << "contraction: " << a.contract(i,j,g) << endl;
cout << "Enter 2 indices for transpose..."; cin >> i >> j;
cout << "transpose: " << a.transpose(i,j) << endl;

return 0;
}
