1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package eu.simuline.octave.io.impl;
17
18 import java.io.IOException;
19 import java.io.Writer;
20
21 import eu.simuline.octave.io.spi.OctaveDataWriter;
22 import eu.simuline.octave.type.OctaveSparseBoolean;
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 public final class SparseBooleanWriter
38 extends OctaveDataWriter<OctaveSparseBoolean> {
39
40 @Override
41 public Class<OctaveSparseBoolean> javaType() {
42 return OctaveSparseBoolean.class;
43 }
44
45 @Override
46 public void write(final Writer writer,
47 final OctaveSparseBoolean octaveSparseBoolean)
48 throws IOException {
49 final int nnz = octaveSparseBoolean.getNnz();
50 writer.write("# type: sparse bool matrix\n");
51 writer.write("# nnz: " + nnz + "\n");
52 writer.write("# rows: " + octaveSparseBoolean.getRows() + "\n");
53 writer.write("# columns: " + octaveSparseBoolean.getColumns() + "\n");
54 final int[] rowIndexes = octaveSparseBoolean.getRowIndexes();
55 final int[] columnIndexes = octaveSparseBoolean.getColumnIndexes();
56 final boolean[] data = octaveSparseBoolean.getData();
57 for (int n = 0; n < nnz; ++n) {
58 writer.write(rowIndexes[n] + " " +
59 columnIndexes[n] + " " +
60 (data[n] ? "1" : "0") + "\n");
61 }
62 }
63
64 }