This changes libsnark to build in-place, instead of copying first to a build directory. Previously, modifications made to the original sources wouldn't get rebuilt without a 'make clean' because users would be pointing to the copies. This closes #2689.
32 lines
910 B
C++
32 lines
910 B
C++
/** @file
|
|
*****************************************************************************
|
|
|
|
Declaration of interfaces for (square-and-multiply) exponentiation.
|
|
|
|
*****************************************************************************
|
|
* @author This file is part of libsnark, developed by SCIPR Lab
|
|
* and contributors (see AUTHORS).
|
|
* @copyright MIT license (see LICENSE file)
|
|
*****************************************************************************/
|
|
|
|
#ifndef EXPONENTIATION_HPP_
|
|
#define EXPONENTIATION_HPP_
|
|
|
|
#include <cstdint>
|
|
|
|
#include "algebra/fields/bigint.hpp"
|
|
|
|
namespace libsnark {
|
|
|
|
template<typename FieldT, mp_size_t m>
|
|
FieldT power(const FieldT &base, const bigint<m> &exponent);
|
|
|
|
template<typename FieldT>
|
|
FieldT power(const FieldT &base, const unsigned long exponent);
|
|
|
|
} // libsnark
|
|
|
|
#include "algebra/exponentiation/exponentiation.tcc"
|
|
|
|
#endif // EXPONENTIATION_HPP_
|