Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Examples index

All matten examples live in examples/. They are grouped by purpose.

Core examples (numeric Tensor)

These examples demonstrate the default matten API. No extra features required.

FileWhat it shows
00_quickstart.rsFirst look: create, add, reshape
01_create_tensor.rsAll construction APIs
02_shape_and_size.rsShape inspection
03_reshape_flatten.rsReshape and flatten
04_elementwise_ops.rsElement-wise arithmetic
05_scalar_ops.rsScalar multiplication and division
06_broadcasting.rsNumPy-style broadcasting
07_transpose_swap_axes.rsAxis permutation
08_slicing_builder.rsSlice builder API (canonical)
09_slice_str.rsString slice API (convenience)
10_json_roundtrip.rsJSON serialization round-trip
11_csv_numeric_loading.rsNumeric CSV loading
12_boundary_error_handling.rsHandling errors at data boundaries
13_resource_limits.rsMattenLimits, try_zeros/try_ones/try_full
14_concatenate_stack.rsShape composition: concatenate and stack (RFC-039)
15_norm_trace_outer.rsLinalg core-lite: norm, trace, outer (RFC-041)
16_variance_std.rsStatistics core-lite: var/std, var_axis/std_axis (RFC-040)

Math examples

FileWhat it shows
20_dot_product.rsVector dot product
21_matrix_vector_product.rsMatrix × vector
22_matrix_multiplication.rsMatrix × matrix
23_sum_mean.rsWhole-tensor and axis reductions
24_min_max.rsMin and max with NaN policy
25_normalize_vector.rsL2 normalisation
26_cosine_similarity.rsCosine similarity
27_axis_reductions.rsAxis reductions and NaN propagation
28_column_statistics.rsPer-column statistics workflow

Applied problems (famous small math)

Recognizable small math / numerical-computing problems, used to show what a Tensor can represent. These live in a fresh 30+ band so the core suite above stays stable. Write-ups: Beginner applied math, Matrix iteration, Numerical methods, and ML-like.

FileWhat it shows
30_magic_square_checker.rsRow/column/diagonal sums via get
31_fibonacci_matrix_power.rsFibonacci via repeated matmul
32_graph_path_counting.rsWalk counting via adjacency-matrix powers
33_markov_chain_weather.rsDistribution over time via vector × matrix matmul
34_tiny_pagerank.rsPageRank power iteration via matrix × vector matmul
35_linear_regression_gradient_descent.rsBatch gradient descent via matmul + transpose
36_heat_equation_1d.rsExplicit finite-difference stencil as matmul iteration
37_kmeans_small.rsLloyd’s k-means on a [points, features] data matrix
38_nearest_neighbor_classification.rs1-NN classification over a labeled data matrix
39_finite_difference_derivative.rsCentral-difference derivative on a linspace grid
40_trapezoidal_integration.rsTrapezoidal rule via linspace + elementwise + sum

Vector distance and cosine similarity are already covered above — see 54_pairwise_distance.rs, 25_normalize_vector.rs, and 26_cosine_similarity.rs rather than a duplicate in this band.

Practical numeric recipes (50_56_)

Common data-processing patterns that combine multiple primitives. See Practical numeric recipes for the full write-up.

FileWhat it shows
50_rowwise_scoring.rsRow-wise weighted scoring
51_standardize_columns.rsColumn standardisation (z-score)
52_minmax_scaling.rsMin-max feature scaling
53_gram_matrix.rsGram matrix (X × Xᵀ)
54_pairwise_distance.rsPairwise Euclidean distances
55_moving_average.rsSimple moving average
56_rolling_windows_basic.rsRolling window sum and max

Dynamic examples (--features dynamic)

These require the dynamic feature for heterogeneous data ingestion. JSON and CSV are equal on-ramps here: from_json_dynamic and from_csv_dynamic differ only in the input format — both land messy data in a dynamic tensor that the same inspect → clean → convert workflow turns into a numeric Tensor.

FileFeaturesWhat it shows
dynamic_00_quickstart.rsdynamic,json,csvDynamic lifecycle overview
dynamic_01_mixed_elements.rsdynamicMixed Element types
dynamic_02_missing_values.rsdynamic,csvMissing value detection
dynamic_03_fill_none.rsdynamicFilling missing values
dynamic_04_numeric_coercion.rsdynamicElement-level coercion
dynamic_05_dirty_csv_cleanup.rsdynamic,csvReal-world CSV cleanup
dynamic_06_numeric_policy.rsdynamicNumericPolicy API
dynamic_07_on_ramp_summary.rsdynamicComplete on-ramp workflow
dynamic_08_json_ingestion.rsdynamic,jsonJSON ingestion (mixed/missing → clean f64)

Companion crate examples

These live in each companion crate’s own examples/ directory, not in core matten. See Companion crate examples for the write-up.

CrateExampleWhat it shows
matten-ndarrayfrom_arrayd, to_arraydArrayDTensor interop (copies, shape-preserving)
matten-mlprepmlprep_standardize_columns, mlprep_minmax_scale, mlprep_add_bias_column, mlprep_train_test_splitSmall deterministic preprocessing
matten-datacsv_to_tensorCSV → clean → numeric Tensor (production-ready candidate)

Running examples

# Numeric core (no features needed):
cargo run --example 00_quickstart
cargo run --example 27_axis_reductions

# Dynamic:
cargo run --example dynamic_06_numeric_policy --features dynamic
cargo run --example dynamic_07_on_ramp_summary --features dynamic,csv
cargo run --example dynamic_08_json_ingestion --features dynamic,json

Scope rule

Every example demonstrates accepted APIs only. Examples are not a back door for adding new mathematical operations, dataframe behavior, or ML scope.