numerical-collection-cpp
0.10.0
A collection of algorithms in numerical analysis implemented in C++
Loading...
Searching...
No Matches
add_noise.h
Go to the documentation of this file.
1
/*
2
* Copyright 2025 MusicScience37 (Kenta Kabashima)
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
20
#pragma once
21
22
#include <random>
23
24
#include <Eigen/Core>
25
26
#include "
num_collect/base/index_type.h
"
27
28
namespace
num_prob_collect::regularization
{
29
36
inline
void
add_noise
(Eigen::MatrixXd& data,
double
rate) {
37
std::mt19937 engine;
// NOLINT: fix seed for reproducibility
38
const
double
sigma =
39
std::sqrt(data.squaredNorm() /
static_cast<
double
>
(data.size()) * rate);
40
std::normal_distribution<double> dist{0.0, sigma};
41
42
const
num_collect::index_type
rows = data.rows();
43
const
num_collect::index_type
cols = data.cols();
44
for
(
num_collect::index_type
j = 0; j < cols; ++j) {
45
for
(
num_collect::index_type
i = 0; i < rows; ++i) {
46
data(i, j) += dist(engine);
47
}
48
}
49
}
50
51
}
// namespace num_prob_collect::regularization
index_type.h
Definition of index_type type.
num_collect::base::index_type
std::ptrdiff_t index_type
Type of indices in this library.
Definition
index_type.h:33
num_prob_collect::regularization
Namespace of regularization.
Definition
namespaces.h:34
num_prob_collect::regularization::add_noise
void add_noise(Eigen::MatrixXd &data, double rate)
Add noise to data.
Definition
add_noise.h:36
problems
include
num_prob_collect
regularization
add_noise.h
Generated on
for numerical-collection-cpp by
1.14.0