<!--
{
  "documentType" : "article",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/blockwise-matrix-operations",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Blockwise Matrix Operations"
}
-->

# Blockwise Matrix Operations

Create, insert values into, and extract values from a blockwise sparse matrix.

## Topics

### Matrix creation and population

[`func sparse_matrix_block_create_double(sparse_dimension, sparse_dimension, sparse_dimension, sparse_dimension) -> sparse_matrix_double!`](/documentation/Accelerate/sparse_matrix_block_create_double(_:_:_:_:))

Returns a double-precision sparse matrix object that is stored in block-entry format with a fixed block size.

[`func sparse_matrix_block_create_float(sparse_dimension, sparse_dimension, sparse_dimension, sparse_dimension) -> sparse_matrix_float!`](/documentation/Accelerate/sparse_matrix_block_create_float(_:_:_:_:))

Returns a single-precision sparse matrix object that is stored in block-entry format with a fixed block size.

[`func sparse_matrix_variable_block_create_double(sparse_dimension, sparse_dimension, UnsafePointer<sparse_dimension>!, UnsafePointer<sparse_dimension>!) -> sparse_matrix_double!`](/documentation/Accelerate/sparse_matrix_variable_block_create_double(_:_:_:_:))

Returns a double-precision sparse matrix object that is stored in block-entry format with a variable block size.

[`func sparse_matrix_variable_block_create_float(sparse_dimension, sparse_dimension, UnsafePointer<sparse_dimension>!, UnsafePointer<sparse_dimension>!) -> sparse_matrix_float!`](/documentation/Accelerate/sparse_matrix_variable_block_create_float(_:_:_:_:))

Returns a single-precision sparse matrix object that is stored in block-entry format with a variable block size.

[`func sparse_insert_block_double(sparse_matrix_double!, UnsafePointer<Double>!, sparse_dimension, sparse_dimension, sparse_index, sparse_index) -> sparse_status`](/documentation/Accelerate/sparse_insert_block_double(_:_:_:_:_:_:))

Inserts a dense block of entries into a double-precision matrix.

[`func sparse_insert_block_float(sparse_matrix_float!, UnsafePointer<Float>!, sparse_dimension, sparse_dimension, sparse_index, sparse_index) -> sparse_status`](/documentation/Accelerate/sparse_insert_block_float(_:_:_:_:_:_:))

Inserts a dense block of entries into a single-precision matrix.

[`func sparse_matrix_block_create_double_complex(sparse_dimension, sparse_dimension, sparse_dimension, sparse_dimension) -> sparse_matrix_double_complex!`](/documentation/Accelerate/sparse_matrix_block_create_double_complex(_:_:_:_:))

[`func sparse_matrix_block_create_float_complex(sparse_dimension, sparse_dimension, sparse_dimension, sparse_dimension) -> sparse_matrix_float_complex!`](/documentation/Accelerate/sparse_matrix_block_create_float_complex(_:_:_:_:))

### Complex matrix creation and population

[`func sparse_matrix_variable_block_create_double_complex(sparse_dimension, sparse_dimension, UnsafePointer<sparse_dimension>!, UnsafePointer<sparse_dimension>!) -> sparse_matrix_double_complex!`](/documentation/Accelerate/sparse_matrix_variable_block_create_double_complex(_:_:_:_:))

[`func sparse_matrix_variable_block_create_float_complex(sparse_dimension, sparse_dimension, UnsafePointer<sparse_dimension>!, UnsafePointer<sparse_dimension>!) -> sparse_matrix_float_complex!`](/documentation/Accelerate/sparse_matrix_variable_block_create_float_complex(_:_:_:_:))

### Value insertion

[`func sparse_insert_block_double_complex(sparse_matrix_double_complex!, OpaquePointer!, sparse_dimension, sparse_dimension, sparse_index, sparse_index) -> sparse_status`](/documentation/Accelerate/sparse_insert_block_double_complex(_:_:_:_:_:_:))

[`func sparse_insert_block_float_complex(sparse_matrix_float_complex!, OpaquePointer!, sparse_dimension, sparse_dimension, sparse_index, sparse_index) -> sparse_status`](/documentation/Accelerate/sparse_insert_block_float_complex(_:_:_:_:_:_:))

### Value extraction

[`func sparse_extract_block_double(sparse_matrix_double!, sparse_index, sparse_index, sparse_dimension, sparse_dimension, UnsafeMutablePointer<Double>!) -> sparse_status`](/documentation/Accelerate/sparse_extract_block_double(_:_:_:_:_:_:))

Extracts values from a specified block of a double-precision matrix.

[`func sparse_extract_block_float(sparse_matrix_float!, sparse_index, sparse_index, sparse_dimension, sparse_dimension, UnsafeMutablePointer<Float>!) -> sparse_status`](/documentation/Accelerate/sparse_extract_block_float(_:_:_:_:_:_:))

Extracts values from a specified block of a single-precision matrix.

[`func sparse_extract_block_double_complex(sparse_matrix_double_complex!, sparse_index, sparse_index, sparse_dimension, sparse_dimension, OpaquePointer!) -> sparse_status`](/documentation/Accelerate/sparse_extract_block_double_complex(_:_:_:_:_:_:))

[`func sparse_extract_block_float_complex(sparse_matrix_float_complex!, sparse_index, sparse_index, sparse_dimension, sparse_dimension, OpaquePointer!) -> sparse_status`](/documentation/Accelerate/sparse_extract_block_float_complex(_:_:_:_:_:_:))

### Block dimension queries

[`func sparse_get_block_dimension_for_row(UnsafeMutableRawPointer!, sparse_index) -> Int`](/documentation/Accelerate/sparse_get_block_dimension_for_row(_:_:))

Returns the dimension of the block for a specified row of a double-precision matrix.

[`func sparse_get_block_dimension_for_col(UnsafeMutableRawPointer!, sparse_index) -> Int`](/documentation/Accelerate/sparse_get_block_dimension_for_col(_:_:))

Returns the dimension of the block for a specified column of a single-precision matrix.

### Supporting types

[`typealias sparse_dimension`](/documentation/Accelerate/sparse_dimension)

The dimension type.

[`typealias sparse_index`](/documentation/Accelerate/sparse_index)

The index type.

[`typealias sparse_matrix_double`](/documentation/Accelerate/sparse_matrix_double)

Sparse matrix opaque type for double.

[`typealias sparse_matrix_float`](/documentation/Accelerate/sparse_matrix_float)

Sparse matrix opaque type for float.

[`struct sparse_status`](/documentation/Accelerate/sparse_status)

The type reflecting the status of an operations.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)