autoray.experimental.complexity_tracing

Functionality for tracing through an autoray.lazy computation and estimating the cost and scaling.

In the following there are cost_* functions that estimate the total cost of a given operation, including sub-leading factors. There are also cost_scaling_* functions that only consider the leading factor of the cost, so that we can prime number decompose it and extract the scaling.

Module Contents

Functions

cost_tensordot(x)

cost_qr(x)

cost_svd(x)

cost_eigh(x)

cost_scaling_linalg(x)

Here we only care about the leading factor of the cost, which we need to

cost_matmul(x)

cost_einsum(x)

cost_linear(x)

cost_nothing(x)

cost_node(x[, allow_missed])

compute_cost(z[, print_missed])

prime_factors(→ list[int])

is_prime(→ bool)

closest_prime(→ int)

frequencies(it)

compute_cost_scalings(z, factor_map[, print_missed])

Attributes

autoray.experimental.complexity_tracing.cost_tensordot(x)
autoray.experimental.complexity_tracing.cost_scaling_tensordot
autoray.experimental.complexity_tracing.cost_qr(x)
autoray.experimental.complexity_tracing.cost_svd(x)
autoray.experimental.complexity_tracing.cost_eigh(x)
autoray.experimental.complexity_tracing.cost_scaling_linalg(x)

Here we only care about the leading factor of the cost, which we need to preserve so that we can prime number decompose it.

autoray.experimental.complexity_tracing.cost_matmul(x)
autoray.experimental.complexity_tracing.cost_scaling_matmul
autoray.experimental.complexity_tracing.cost_einsum(x)
autoray.experimental.complexity_tracing.cost_scaling_einsum
autoray.experimental.complexity_tracing.cost_linear(x)
autoray.experimental.complexity_tracing.cost_nothing(x)
autoray.experimental.complexity_tracing.COSTS
autoray.experimental.complexity_tracing.cost_node(x, allow_missed=True)
autoray.experimental.complexity_tracing.compute_cost(z, print_missed=True)
autoray.experimental.complexity_tracing.COST_SCALINGS
autoray.experimental.complexity_tracing.prime_factors(n) list[int]
autoray.experimental.complexity_tracing.is_prime(n: int) bool
autoray.experimental.complexity_tracing.closest_prime(nt: int) int
autoray.experimental.complexity_tracing.frequencies(it)
autoray.experimental.complexity_tracing.compute_cost_scalings(z, factor_map, print_missed=True)