|
VapourSynth-llvmexpr
|
#include <format>#include <functional>#include <map>#include <numbers>#include <string>#include <tuple>#include <utility>#include "llvm/IR/BasicBlock.h"#include "llvm/IR/Function.h"#include "llvm/IR/IRBuilder.h"#include "llvm/IR/Intrinsics.h"#include "llvm/IR/LLVMContext.h"#include "llvm/IR/Module.h"#include "llvm/IR/Type.h"#include "llvm/IR/Value.h"#include "llvm/IR/Verifier.h"

Go to the source code of this file.
Typedefs | |
| using | SupportedVectorWidths = std::integer_sequence<int> |
| using | SupportedMathOpsTuple |
Enumerations | |
| enum class | MathOp : std::uint8_t { Exp , Log , Sin , Cos , Tan , Atan , Atan2 , Acos , Asin } |
Functions | |
| constexpr MathopInfo | get_math_op_info (MathOp op) |
| using SupportedMathOpsTuple |
| using SupportedVectorWidths = std::integer_sequence<int> |
|
strong |
Copyright (C) 2025 yuygfgg
This file is part of Vapoursynth-llvmexpr.
Vapoursynth-llvmexpr is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Vapoursynth-llvmexpr is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with Vapoursynth-llvmexpr. If not, see https://www.gnu.org/licenses/.
The implementation of fast math functions is partially borrowed from vapoursynth which is licensed under the GNU Lesser General Public License v2.1.
Copyright (c) 2013-2020 Fredrik Mellbin
This file is part of VapourSynth.
VapourSynth is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
VapourSynth is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with VapourSynth; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
The atan implementation is from a Stack Overflow answer by user njuffa (https://stackoverflow.com/a/23097989), licensed under CC BY-SA 4.0.
The acos implementation is from https://forwardscattering.org/post/66. NOTE: No license was specified on the source website.
| Enumerator | |
|---|---|
| Exp | |
| Log | |
| Sin | |
| Cos | |
| Tan | |
| Atan | |
| Atan2 | |
| Acos | |
| Asin | |
|
constexpr |
Definition at line 86 of file Math.hpp.
References Acos, Asin, Atan, Atan2, Cos, Exp, Log, Sin, and Tan.
Referenced by MathFunctionImpl< VectorWidth, MathOp::Acos >::generate(), MathFunctionImpl< VectorWidth, MathOp::Asin >::generate(), MathFunctionImpl< VectorWidth, MathOp::Atan >::generate(), MathFunctionImpl< VectorWidth, MathOp::Atan2 >::generate(), MathFunctionImpl< VectorWidth, MathOp::Cos >::generate(), MathFunctionImpl< VectorWidth, MathOp::Exp >::generate(), MathFunctionImpl< VectorWidth, MathOp::Log >::generate(), MathFunctionImpl< VectorWidth, MathOp::Sin >::generate(), and MathFunctionImpl< VectorWidth, MathOp::Tan >::generate().