84 lines
1.3 KiB
C++
Executable File
84 lines
1.3 KiB
C++
Executable File
//
|
|
// Math.hpp
|
|
// amoeba
|
|
//
|
|
// Created by Timothy Prepscius on 12/30/16.
|
|
// Copyright © 2016 Timothy Prepscius. All rights reserved.
|
|
//
|
|
|
|
#pragma once
|
|
|
|
#include <tjp/core/types/Types.h>
|
|
#include <tjp/core/types/Types+IO.h>
|
|
|
|
namespace tjp {
|
|
namespace core {
|
|
namespace math {
|
|
|
|
typedef r64 Real;
|
|
|
|
template<typename Real>
|
|
Real abs(const Real &);
|
|
|
|
template<typename Real>
|
|
Real sqrt(const Real &);
|
|
|
|
template<typename Real>
|
|
Real sin(const Real &);
|
|
|
|
template<typename Real>
|
|
Real cos(const Real &);
|
|
|
|
template<typename Real>
|
|
Real ceil(const Real &);
|
|
|
|
template<typename Real>
|
|
Real floor(const Real &);
|
|
|
|
template<typename Real>
|
|
Real acos(const Real &);
|
|
|
|
template<typename Real>
|
|
Real atan(const Real &);
|
|
|
|
template<typename Real>
|
|
Real atan2(const Real &, const Real &);
|
|
|
|
template<typename Real>
|
|
Real hypot(const Real &, const Real &);
|
|
|
|
template<typename Real>
|
|
Real pow2(const Real &);
|
|
|
|
template<typename Real>
|
|
Real length(const Real &);
|
|
|
|
template<typename Real>
|
|
Real min_value(const Real &lhs, const Real &rhs);
|
|
|
|
template<typename Real>
|
|
Real max_value(const Real &lhs, const Real &rhs);
|
|
|
|
template<typename T>
|
|
math::Real toReal (const T &v)
|
|
{
|
|
return (math::Real)v;
|
|
}
|
|
|
|
template<>
|
|
u128 abs(const u128 &v);
|
|
|
|
template<>
|
|
s128 abs(const s128 &v);
|
|
|
|
template<>
|
|
u128 sqrt(const u128 &v);
|
|
|
|
template<>
|
|
s128 sqrt(const s128 &v);
|
|
|
|
} // namespace
|
|
} // namespace
|
|
} // namespace
|
|
|