use crate::{DecContext, DecNumber};
use libc::{c_char, c_int, c_uchar, c_uint};
extern "C" {
pub fn decNumberAdd(
dn: *mut DecNumber,
dn1: *const DecNumber,
dn2: *const DecNumber,
dc: *mut DecContext,
) -> *mut DecNumber;
pub fn decNumberCompare(
dn: *mut DecNumber,
dn1: *const DecNumber,
dn2: *const DecNumber,
dc: *mut DecContext,
) -> *mut DecNumber;
pub fn decNumberDivide(
dn: *mut DecNumber,
dn1: *const DecNumber,
dn2: *const DecNumber,
dc: *mut DecContext,
) -> *mut DecNumber;
pub fn decNumberExp(dn: *mut DecNumber, dn1: *const DecNumber, dc: *mut DecContext) -> *mut DecNumber;
pub fn decNumberFromInt32(dn: *mut DecNumber, n: c_int) -> *mut DecNumber;
pub fn decNumberFromString(dn: *mut DecNumber, s: *const c_char, dc: *mut DecContext) -> *mut DecNumber;
pub fn decNumberFromUInt32(dn: *mut DecNumber, n: c_uint) -> *mut DecNumber;
pub fn decNumberLn(dn: *mut DecNumber, dn1: *const DecNumber, dc: *mut DecContext) -> *mut DecNumber;
pub fn decNumberMinus(dn: *mut DecNumber, dn1: *const DecNumber, dc: *mut DecContext) -> *mut DecNumber;
pub fn decNumberMultiply(
dn: *mut DecNumber,
dn1: *const DecNumber,
dn2: *const DecNumber,
dc: *mut DecContext,
) -> *mut DecNumber;
pub fn decNumberPlus(dn: *mut DecNumber, dn1: *const DecNumber, dc: *mut DecContext) -> *mut DecNumber;
pub fn decNumberPower(
dn: *mut DecNumber,
dn1: *const DecNumber,
dn2: *const DecNumber,
dc: *mut DecContext,
) -> *mut DecNumber;
pub fn decNumberQuantize(
dn: *mut DecNumber,
dn1: *const DecNumber,
dn2: *const DecNumber,
dc: *mut DecContext,
) -> *mut DecNumber;
pub fn decNumberReduce(dn: *mut DecNumber, dn1: *const DecNumber, dc: *mut DecContext) -> *mut DecNumber;
pub fn decNumberRescale(
dn: *mut DecNumber,
dn1: *const DecNumber,
dn2: *const DecNumber,
dc: *mut DecContext,
) -> *mut DecNumber;
pub fn decNumberScaleB(
dn: *mut DecNumber,
dn1: *const DecNumber,
dn2: *const DecNumber,
dc: *mut DecContext,
) -> *mut DecNumber;
pub fn decNumberSetBCD(dn: *mut DecNumber, bcd: *const c_uchar, n: c_uint) -> *mut DecNumber;
pub fn decNumberSquareRoot(dn: *mut DecNumber, dn1: *const DecNumber, dc: *mut DecContext) -> *mut DecNumber;
pub fn decNumberSubtract(
dn: *mut DecNumber,
dn1: *const DecNumber,
dn2: *const DecNumber,
dc: *mut DecContext,
) -> *mut DecNumber;
pub fn decNumberToString(dn1: *const DecNumber, s: *mut c_char) -> *mut c_char;
pub fn decNumberZero(dn: *mut DecNumber);
}