File: ArrayIteration.cxx

package info (click to toggle)
vtk 5.8.0-17.5
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 130,804 kB
  • ctags: 169,145
  • sloc: cpp: 1,129,307; ansic: 708,203; tcl: 48,526; python: 20,878; xml: 6,779; yacc: 4,208; perl: 3,121; java: 2,773; lex: 931; sh: 660; asm: 471; makefile: 301
file content (43 lines) | stat: -rw-r--r-- 1,137 bytes parent folder | download | duplicates (12)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <vtkArrayPrint.h>
#include <vtkDenseArray.h>
#include <vtkSparseArray.h>

int main(int vtkNotUsed(argc), char *vtkNotUsed(argv)[])
{
  // Create a dense matrix:
  vtkDenseArray<double>* matrix = vtkDenseArray<double>::New();
  matrix->Resize(10, 10);
  matrix->Fill(0.0);

  // Increment every value in a sparse-or-dense array
  // with any number of dimensions:
  for(vtkArray::SizeT n = 0; n != matrix->GetNonNullSize(); ++n)
    {
    matrix->SetValueN(n, matrix->GetValueN(n) + 1);
    }

  // Compute the sum of every column in a sparse-or-dense matrix:
  vtkDenseArray<double>* sum = vtkDenseArray<double>::New();
  sum->Resize(matrix->GetExtents()[1]);
  sum->Fill(0.0);

  vtkArrayCoordinates coordinates;
  for(vtkArray::SizeT n = 0; n != matrix->GetNonNullSize(); ++n)
    {
    matrix->GetCoordinatesN(n, coordinates);
    sum->SetValue(coordinates[1], sum->GetValue(coordinates[1]) + matrix->GetValueN(n));
    }

  cout << "matrix:\n";
  vtkPrintMatrixFormat(cout, matrix);
  cout << "\n";

  cout << "sum:\n";
  vtkPrintVectorFormat(cout, sum);
  cout << "\n";

  sum->Delete();
  matrix->Delete();

  return 0;
}