# SPDX-License-Identifier: MPL-2.0
# Copyright (C) 2020- The University of Tokyo
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
import numpy as np
[docs]
class const:
"""constant"""
def __init__(self, params=None, max_params=1e12, min_params=-1e12):
"""
Parameters
----------
params: numpy.ndarray
Parameters
max_params: float
Threshold value for specifying the maximum value of the parameter
min_params: float
Threshold value for specifying the minimum value of the parameter
"""
self.max_params = max_params
self.min_params = min_params
self.init_params(params)
self.num_params = 1
[docs]
def supp_params(self, params):
"""
Setting maximum and minimum value of parameters.
Parameters
----------
params: numpy.ndarray
parameters
Returns
-------
numpy.ndarray
"""
if params > self.max_params:
params = self.max_params
if params < self.min_params:
params = self.min_params
return params
[docs]
def get_params_bound(self):
"""
Getting the boundary list for parameters
Returns
-------
bound: list
num_params array with the tupple (min_param, max_params)
"""
bound = [(self.min_params, self.max_params) for i in range(0, self.num_params)]
return bound
[docs]
def get_mean(self, num_data, params=None):
"""
Parameters
----------
num_data: int
total number of data
params: numpy.ndarray
parameters
Returns
-------
numpy.ndarray
"""
if params is None:
params = np.copy(self.params)
return params * np.ones(num_data)
[docs]
def get_grad(self, num_data, params=None):
"""
Returning a new array of (num_data), filled with ones.
Parameters
----------
num_data: int
total number of data
params: object
not used
Returns
-------
numpy.ndarray
"""
return np.ones(num_data)
[docs]
def set_params(self, params):
"""
Setting parameters defined in const class.
Parameters
----------
params: numpy.ndarray
parameters
Returns
-------
numpy.ndarray
"""
self.params = params
[docs]
def init_params(self, params):
"""
Initializing parameters
Parameters
----------
params: numpy.ndarray
parameters
Returns
-------
params: numpy.ndarray
initialized parameters
"""
if params is None:
self.params = 0
else:
self.params = self.supp_params(params)
[docs]
def get_cand_params(self, t):
"""
Getting the median array of candidates.
Parameters
----------
t: array_like
Input array or object that can be converted to an array
Returns
-------
median: numpy.ndarray
A new array holding the result.
"""
return np.median(t)