sfFDN
Loading...
Searching...
No Matches
matrix_gallery.h
1// Copyright (C) 2025 Alexandre St-Onge
2// SPDX-License-Identifier: MIT
3#pragma once
4
5#include "types.h"
6
7#include <cstdint>
8#include <optional>
9#include <span>
10#include <vector>
11
12namespace sfFDN
13{
31std::vector<float> GenerateMatrix(uint32_t mat_size, ScalarMatrixType type, uint32_t seed = 0,
32 std::optional<float> arg = std::nullopt);
33
44std::vector<float> NestedAllpassMatrix(uint32_t mat_size, uint32_t seed = 0,
45 std::span<float> input_gains = std::span<float>(),
46 std::span<float> output_gains = std::span<float>());
47
49} // namespace sfFDN
ScalarMatrixType
Represents the type of a scalar matrix.
Definition types.h:50
std::vector< float > GenerateMatrix(uint32_t mat_size, ScalarMatrixType type, uint32_t seed=0, std::optional< float > arg=std::nullopt)
Generates a square matrix of size mat_size x mat_size based on the specified type.
std::vector< float > NestedAllpassMatrix(uint32_t mat_size, uint32_t seed=0, std::span< float > input_gains=std::span< float >(), std::span< float > output_gains=std::span< float >())
Generates a nested allpass matrix of size mat_size x mat_size as described in [1].