home *** CD-ROM | disk | FTP | other *** search
- /*
- test/demo of Vecs, AVecs
- */
-
- #include <stream.h>
- #include "iVec.h"
- #include "iAVec.h"
-
- int int_compare(int a, int b)
- {
- return a - b;
- }
-
- int plus(int a, int b)
- {
- return a + b;
- }
-
- int inc(int a)
- {
- return a + 1;
- }
-
- void printint(int a)
- {
- cout << a << " ";
- }
-
- void print(intVec& a)
- {
- a.apply(printint);
- cout << "\n";
- }
-
- #include <MLCG.h>
-
- MLCG randgen;
-
- int main()
- {
- intVec a(20);
- for (int i = 0; i < a.capacity(); ++i) a[i] = randgen.asLong() % 100;
- cout << "a: "; print(a);
- a.sort(int_compare);
- cout << "a.sort():"; print(a);
- intVec b = map(inc, a);
- cout << "b = map(inc, a): "; print(b);
- intVec c = merge(a, b, int_compare);
- cout << "c = merge(a, b): "; print(c);
- intVec d = concat(a, b);
- cout << "d = concat(a, b): "; print(d);
- d.resize(10);
- cout << "d.resize(10): "; print(d);
- d.reverse();
- cout << "d.reverse(): "; print(d);
- d.fill(0, 4, 4);
- cout << "d.fill(0, 4, 4): "; print(d);
- cout << "d.reduce(plus, 0) = " << d.reduce(plus, 0) << "\n";
- intVec e = d.at(2, 5);
- cout << "e = d.at(2, 5): "; print(e);
-
- intAVec x(20);
- for (i = 0; i < x.capacity(); ++i) x[i] = i;
- cout << "x: "; print(x);
- intAVec y(20);
- for (i = 0; i < y.capacity(); ++i) y[i] = randgen.asLong() % 100 + 1;
- cout << "y: "; print(y);
-
- cout << "x + y: "; print(x + y);
- cout << "x - y: "; print(x - y);
- cout << "product(x, y): "; print(product(x,y));
- cout << "quotient(x, y): "; print(quotient(x,y));
- cout << "x * y: " << (x * y) << "\n";
-
- cout << "x + 2: "; print(x + 2);
- cout << "x - 2: "; print(x - 2);
- cout << "x * 2: "; print(x * 2);
- cout << "x / 2: "; print(x / 2);
-
- intAVec z(20, 1);
- cout << "z(20, 1): "; print(z);
- cout << "z = -z: "; print(z = -z);
- cout << "z += x: "; print(z += x);
- cout << "z -= x: "; print(z -= x);
-
- cout << "x.sum(): " << x.sum() << "\n";
- cout << "x.sumsq(): " << x.sumsq() << "\n";
- cout << "x.min(): " << x.min() << "\n";
- cout << "x.max(): " << x.max() << "\n";
- cout << "x.min_index(): " << x.min_index() << "\n";
- cout << "x.max_index(): " << x.max_index() << "\n";
-
- cout << "\nEnd of test\n";
- return 0;
- }
-