gunshi-project-ss/src/main/java/com/gunshi/project/hsz/util/BigdecimalUtil.java

48 lines
1.3 KiB
Java

package com.gunshi.project.hsz.util;
import org.apache.commons.math3.distribution.GammaDistribution;
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
/**
* @author cxw
* @description
* @classname BigdecimalUtil.java
* @create 2024-11-06, 星期三, 10:33:41
*/
public class BigdecimalUtil {
/**
* @description: 小数指数计算
* @param base 底数
* @param exponent 指数
* @return: java.math.BigDecimal
* @auther: cxw
* @date: 2024-11-06, 周三, 10:34:47
*/
public static BigDecimal bigDecimalExponentiation(BigDecimal base, double exponent) {
BigDecimal result = BigDecimal.valueOf(Math.pow(base.doubleValue(), exponent)).round(new MathContext(10, RoundingMode.HALF_UP));
return result;
}
/**
* @description: 计算x的伽马函数
* @param x
* @return: java.math.BigDecimal
* @auther: cxw
* @date: 2024-11-06, 周三, 11:31:24
*/
public static double gammaDist(double x, double alpha, double beta, boolean cumulative) {
GammaDistribution gammaDist = new GammaDistribution(alpha, 1/beta);
if (cumulative) {
return gammaDist.cumulativeProbability(x);
} else {
return gammaDist.density(x);
}
}
}