Skip to content

Main content

Sparse Column Pointer Triplet Expander

Expand validated CSC compressed pointer arrays to occurrence-preserving COO records with explicit dimensions; duplicate entries and zeros remain.

Loading tool…

Description

Expand validated CSC compressed pointer arrays to occurrence-preserving COO records with explicit dimensions; duplicate entries and zeros remain.

A sparse matrix can be stored as coordinate triplets or as pointer/index/value arrays. Stored entries are not necessarily distinct numerical nonzeros: duplicates and explicit zeros can matter to representation checks. Row and column coordinates here are zero-based, and omitted entries are handled only as stated for the particular operation.

Expand validated CSC compressed pointer arrays to occurrence-preserving COO records with explicit dimensions; duplicate entries and zeros remain.

When to use this tool

Use this tool to expand validated CSC compressed pointer arrays to occurrence-preserving COO records with explicit dimensions; duplicate entries and zeros remain.

How to use the tool and how it works

  1. Enter pointers, indexes, values, major, minor using the field definitions below.
  2. Run the operation. Correct input errors before interpreting an output.
  3. Read result.triplets. Use the ordering, boundary rules and absence conditions described below.

Validate column pointers, row indexes and aligned values. Expand each pointer span into triplets using the major position as column.1

Input fieldMeaning and unitsAccepted input
pointersZero-based cumulative row or column pointers, starting at 0 and ending at entry count.Dense list of at most 128 finite numbers; integer/shape constraints above also apply.
indexesMinor-axis integer indexes aligned with values, not source-record positions.Dense list of at most 128 finite numbers; integer/shape constraints above also apply.
valuesFinite stored entry values aligned with indexes.Dense list of at most 128 finite numbers; integer/shape constraints above also apply.
majorRow count for row pointers; column count for column pointers. Integer 0–127.A finite safe integer within the operation’s stated bounds.
minorOpposite-axis size, an integer 0–128.A finite safe integer within the operation’s stated bounds.
Output fieldInterpretation
resultObject containing the named fields below.
result.tripletsStored {row, column, value} records under the operation’s stated ordering and duplicate policy.
json
{
  "input": {
    "pointers": [
      0,
      2,
      3
    ],
    "indexes": [
      1,
      1,
      0
    ],
    "values": [
      2,
      3,
      0
    ],
    "major": 2,
    "minor": 2
  },
  "output": {
    "result": {
      "triplets": [
        {
          "row": 1,
          "column": 0,
          "value": 2
        },
        {
          "row": 1,
          "column": 0,
          "value": 3
        },
        {
          "row": 0,
          "column": 1,
          "value": 0
        }
      ]
    }
  }
}

Limitations and assumptions

  • Stored order, duplicates and explicit zeros are preserved; the major dimension is the column count.
  • Triplets are JSON records with row, column and value. Coordinate shapes are ordinarily bounded to 128 per axis; compressed major dimensions are limited to 127 for pointer-list capacity. The dense-budget operation has separate larger shape limits and returns exact counts as decimal text.
  • Every declared top-level input field is required and unexpected fields are rejected. Ordinary strings are limited to 8,192 UTF-16 code units and lists to 128 entries, with tighter operation-specific bounds where stated. JSON text has bounded nesting and node counts.
  • Numeric outputs must be finite and no larger in absolute magnitude than the safe-integer limit; operations returning exact large integers use decimal text. Positions are zero-based and spans end exclusively unless the operation explicitly states a different convention.

Alternative or Complementary methods

Distinguish stored-record counts, coordinate-pattern checks and arithmetic matrix properties. Combine duplicates or prune zeros explicitly when required, and use a matrix library for numerical linear algebra.

References

  1. Tool behavior and example: Sparse Column Pointer Triplet Expander — tool.io

Similar or alternative tools