mbsim
4.0.0
MBSim Kernel
absolute_value_function.h
1
/* Copyright (C) 2004-2014 MBSim Development Team
2
*
3
* This library is free software; you can redistribute it and/or
4
* modify it under the terms of the GNU Lesser General Public
5
* License as published by the Free Software Foundation; either
6
* version 2.1 of the License, or (at your option) any later version.
7
*
8
* This library is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
* Lesser General Public License for more details.
12
*
13
* You should have received a copy of the GNU Lesser General Public
14
* License along with this library; if not, write to the Free Software
15
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
*
17
* Contact: martin.o.foerg@gmail.com
18
*/
19
20
#ifndef _ABSOLUTE_VALUE_FUNCTION_H_
21
#define _ABSOLUTE_VALUE_FUNCTION_H_
22
23
#include "mbsim/functions/function.h"
24
#include "mbsim/utils/utils.h"
25
26
namespace
MBSim
{
27
28
template
<
typename
Sig>
class
AbsoluteValueFunction
;
29
30
template
<
typename
Ret,
typename
Arg>
31
class
AbsoluteValueFunction
<Ret(Arg)> :
public
Function
<Ret(Arg)> {
32
public
:
33
int
getArgSize()
const override
{
return
1; }
34
std::pair<int, int> getRetSize()
const override
{
return
std::make_pair(1,1); }
35
Ret operator()(
const
Arg &x_)
override
{
36
double
x =
ToDouble<Arg>::cast
(x_);
37
return
FromDouble<Ret>::cast
(fabs(x));
38
}
39
};
40
41
}
42
43
#endif
MBSim::AbsoluteValueFunction
Definition:
absolute_value_function.h:28
MBSim::FromDouble
Definition:
utils.h:89
MBSim::Function
Definition:
function.h:53
MBSim::ToDouble
Definition:
utils.h:61
MBSim
namespace MBSim
Definition:
bilateral_constraint.cc:30
mbsim
kernel
mbsim
functions
absolute_value_function.h
Generated with
Doxygen
using
Doxygen Awesome
on Thu May 1 2025