code: public void addItem(int row , int col , double value ) {
          if( nz_length == nz_value.data.length ) {
              int amount = nz_length + 10;
              nz_value.growInternal(amount);
              nz_rowcol.growInternal(amount*2);
          }
          nz_value.data[nz_length] = value;
          nz_rowcol.data[nz_length*2] = row;
          nz_rowcol.data[nz_length*2+1] = col;
          nz_length += 1;
      }
docs: <p>Adds a triplet of (row,vol,value) to the end of the list. This is the preferred way to add elements
  into this array type as it has a runtime complexity of O(1).</p>
  
  One potential problem with using this function instead of {@link #set(int, int, double)} is that it does
  not check to see if a (row,col) has already been assigned a value. If a (row,col) is defined multiple times
  how this is handled is not defined.
  
  @param row Row the element belongs in
  @param col Column the element belongs in
  @param value The value of the element