本文整理汇总了Java中beast.core.Function类的典型用法代码示例。如果您正苦于以下问题:Java Function类的具体用法?Java Function怎么用?Java Function使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Function类属于beast.core包,在下文中一共展示了Function类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: calcLogP
import beast.core.Function; //导入依赖的package包/类
@Override
public double calcLogP(Function pX) {
double fLogP = 0;
int K = 0;
int N = 0;
for (int i = 0; i < pX.getDimension(); i++) {
int n_i = nInput.get().getNativeValue(i);
if (n_i > 0) {
fLogP += Math.log(n_i);
K += 1;
}
N += n_i;
}
fLogP += org.apache.commons.math.special.Gamma.logGamma(K);
fLogP -= K * Math.log(N);
return fLogP;
}
示例2: log
import beast.core.Function; //导入依赖的package包/类
@Override
public void log(int nSample, PrintStream out) {
// make sure we get the current version of the inputs
SpeciesTreeInterface speciesTree = speciesTreeInput.get();
SpeciesTreeInterface tree = (SpeciesTreeInterface) speciesTree.getCurrent();
List<Function> metadata = parameterInput.get();
for (int i = 0; i < metadata.size(); i++) {
if (metadata.get(i) instanceof StateNode) {
metadata.set(i, ((StateNode) metadata.get(i)).getCurrent());
}
}
BranchRateModel branchRateModel = clockModelInput.get();
PopulationModel populationModel = populationModelInput.get();
// write out the log tree with meta data
out.print("tree STATE_" + nSample + " = ");
tree.getRoot().sort();
out.print(toNewick(tree.getRoot(), metadata, branchRateModel, populationModel));
//out.print(tree.getRoot().toShortNewick(false));
out.print(";");
}
示例3: evalFunction
import beast.core.Function; //导入依赖的package包/类
public static double evalFunction(Interpreter interpreter, List<Function> functions, String name, Object... args) {
NamedFunction.evalFunctionInputs(interpreter, functions);
try {
double result = - 1;
This _this = interpreter.getNameSpace().getThis(interpreter);
Object o = _this.invokeMethod(name, args);
if (o instanceof Primitive) {
o = ((Primitive)o).getValue();
}
if (o instanceof Number) {
result = ((Number) o).doubleValue();
} else {
throw new RuntimeException(name + " failed: expected a number as result");
}
return result;
} catch (EvalError e) {
throw new RuntimeException(name + " failed: " + e.getMessage());
}
}
示例4: calcLogP
import beast.core.Function; //导入依赖的package包/类
@Override
public double calcLogP(Function pX) {
Double[] alpha = alphaInput.get().getValues();
if (alphaInput.get().getDimension() != pX.getDimension()) {
throw new IllegalArgumentException("Dimensions of alpha and x should be the same, but dim(alpha)=" + alphaInput.get().getDimension()
+ " and dim(x)=" + pX.getDimension());
}
double logP = 0;
double sumAlpha = 0;
for (int i = 0; i < pX.getDimension(); i++) {
double x = pX.getArrayValue(i);
logP += (alpha[i] - 1) * Math.log(x);
logP -= org.apache.commons.math.special.Gamma.logGamma(alpha[i]);
sumAlpha += alpha[i];
}
logP += org.apache.commons.math.special.Gamma.logGamma(sumAlpha);
return logP;
}
示例5: log
import beast.core.Function; //导入依赖的package包/类
@Override
public void log(int sample, PrintStream out) {
// make sure we get the current version of the inputs
Tree tree = (Tree) treeInput.get().getCurrent();
List<Function> metadata = parameterInput.get();
for (int i = 0; i < metadata.size(); i++) {
if (metadata.get(i) instanceof StateNode) {
metadata.set(i, ((StateNode) metadata.get(i)).getCurrent());
}
}
BranchRateModel.Base branchRateModel = clockModelInput.get();
// write out the log tree with meta data
out.print("tree STATE_" + sample + " = ");
tree.getRoot().sort();
out.print(toNewick(tree.getRoot(), metadata, branchRateModel));
//out.print(tree.getRoot().toShortNewick(false));
out.print(";");
}
示例6: assertParameterCountInPriorIs
import beast.core.Function; //导入依赖的package包/类
void assertParameterCountInPriorIs(int i) {
// count nr of parameters in Prior objects in prior
// including those for prior distributions (Normal, etc)
// useful to make sure they do (or do not) get linked
Set<Function> parameters = new LinkedHashSet<>();
CompoundDistribution prior = (CompoundDistribution) doc.pluginmap.get("prior");
for (Distribution p : prior.pDistributions.get()) {
if (p instanceof Prior) {
Prior p2 = (Prior) p;
parameters.add(p2.m_x.get());
for (BEASTInterface o : p2.distInput.get().listActiveBEASTObjects()) {
if (o instanceof Parameter) {
parameters.add((Parameter<?>) o);
}
}
}
}
System.err.println("Number of parameters in prior = " + parameters.size());
if (i >= 0) {
assertThat(parameters.size()).as("Expected " + i + " parameters in prior").isEqualTo(i);
}
}
示例7: calcLogP
import beast.core.Function; //导入依赖的package包/类
@Override
public double calcLogP(Function xVec) {
int xVecDim = xVec.getDimension();
double xVecSum = 0;
double sumLogXElFac =0;
double sumXLogP = 0;
for(int i = 0; i < xVecDim; i++){
double xEl = xVec.getArrayValue(i);
xVecSum += xEl;
sumLogXElFac += org.apache.commons.math.special.Gamma.logGamma(xEl+1);
sumXLogP += xEl*Math.log(probs[i]);
}
double logNFac = org.apache.commons.math.special.Gamma.logGamma(xVecSum+1);
double fLogP = logNFac - sumLogXElFac + sumXLogP;
return fLogP;
}
示例8: calcLogP
import beast.core.Function; //导入依赖的package包/类
public double calcLogP(Function val){
//System.err.println("logDensity");
if(!(val instanceof DPPointer)){
throw new RuntimeException("This distriubtion only applies to DPValuable");
}
DPPointer pointers = ((DPPointer)val);
double logL = 0.0;
//if(pointers.getLastDirty() == -1){
for(int i = 0; i < pointers.getDimension();i++){
if(pointers.getParameterValue(i)<0.5){
logL+=Math.log(0.2);
}else{
logL+=Math.log(0.8);
}
//System.err.print(pointers.getParameterValue(i)+" ");
}
//System.err.println();
//System.err.println("logL: "+logL);
return logL;
//}
}
示例9: initAndValidate
import beast.core.Function; //导入依赖的package包/类
@Override
public void initAndValidate() {
// Assemble name->param map
Map<String, Function> functionsMap = new HashMap<>();
for (Function func : functionsInput.get()) {
BEASTObject obj = (BEASTObject)func;
functionsMap.put(obj.getID(), func);
}
// Build AST from expression string
ANTLRInputStream input = new ANTLRInputStream(expressionInput.get());
ExpressionLexer lexer = new ExpressionLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
ExpressionParser parser = new ExpressionParser(tokens);
parseTree = parser.expression();
// Create new visitor for calculating expression values:
visitor = new ExpCalculatorVisitor(functionsMap);
update();
}
示例10: initAndValidate
import beast.core.Function; //导入依赖的package包/类
@Override
public void initAndValidate() {
// Parameter to house real value
param = new LightParameter(1.0);
// Assemble name->param map
Map<String, Function> functionsMap = new HashMap<>();
functionsMap.put("x", param);
// Build AST from expression string
ANTLRInputStream input = new ANTLRInputStream(expressionInput.get());
ExpressionLexer lexer = new ExpressionLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
ExpressionParser parser = new ExpressionParser(tokens);
parseTree = parser.expression();
// Create new visitor for calculating expression values:
visitor = new ExpCalculatorVisitor(functionsMap);
if (visitor.visit(parseTree).length != 1)
throw new IllegalArgumentException("ExpCalculatorDistribution "
+ "expressions must be single-valued.");
}
示例11: initAndValidate
import beast.core.Function; //导入依赖的package包/类
@Override
public void initAndValidate() {
// Assemble name->param map
Map<String, Function> functionsMap = new HashMap<>();
for (Function func : functionsInput.get()) {
BEASTObject obj = (BEASTObject)func;
functionsMap.put(obj.getID(), func);
}
// Build AST from expression string
ANTLRInputStream input = new ANTLRInputStream(expressionInput.get());
ExpressionLexer lexer = new ExpressionLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
ExpressionParser parser = new ExpressionParser(tokens);
parseTree = parser.expression();
// Create new visitor for calculating expression values:
visitor = new ExpCalculatorVisitor(functionsMap);
update();
if (res.length != 1)
throw new IllegalArgumentException("ExpCalculatorDistribution "
+ "expressions must be single-valued.");
}
示例12: addRateShiftEvents
import beast.core.Function; //导入依赖的package包/类
public void addRateShiftEvents(Function rateShiftParam,
Function rateShiftTimesParam,
boolean rateShiftTimesBackward,
ModelEvent.RateVariableType rateVariableType) {
if (rateShiftTimesParam != null) {
for (int i=0; i<rateShiftTimesParam.getDimension(); i++) {
ModelEvent event = new ModelEvent();
event.type = ModelEvent.Type.RATE_CHANGE;
event.rateVariableType = rateVariableType;
event.time = getForwardTime(rateShiftTimesParam, i, rateShiftTimesBackward);
event.newRateVariableValue = getRateInInterval(rateShiftParam, i+1, rateShiftTimesBackward);
modelEventList.add(event);
}
}
}
示例13: log
import beast.core.Function; //导入依赖的package包/类
@Override
public void log(int nSample, PrintStream out) {
states = mascotInput.get().dynamicsInput.get().getDimension();
// make sure we get the current version of the inputs
// Tree tree = (Tree) mascotInput.get().treeIntervalsInput.get().treeInput.get().getCurrent();
//calculate the state of each node
calculateNodeStates();
used = new boolean[stateProbabilities.length];
report = false;
List<Function> metadata = parameterInput.get();
for (int i = 0; i < metadata.size(); i++) {
if (metadata.get(i) instanceof StateNode) {
metadata.set(i, ((StateNode) metadata.get(i)).getCurrent());
}
}
BranchRateModel.Base branchRateModel = clockModelInput.get();
// write out the log tree with meta data
out.print("tree STATE_" + nSample + " = ");
mascotInput.get().treeIntervalsInput.get().treeInput.get().getRoot().sort();
root = mascotInput.get().treeIntervalsInput.get().treeInput.get().getRoot();
out.print(toNewick(root, metadata, branchRateModel));
out.print(";");
for (int i = 0; i < used.length; i++)
if(!used[i])
System.err.println("not all nodes used");
if (report)
System.err.println("error in node numbers");
}
示例14: log
import beast.core.Function; //导入依赖的package包/类
@Override
public void log(int nSample, PrintStream out) {
states = mascotInput.get().dynamicsInput.get().getDimension();
// make sure we get the current version of the inputs
// Tree tree = (Tree) mascotInput.get().treeIntervalsInput.get().treeInput.get().getCurrent();
//calculate the state of each node
try {
CalculateNodeStates();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
used = new boolean[stateProbabilities.length];
report = false;
List<Function> metadata = parameterInput.get();
for (int i = 0; i < metadata.size(); i++) {
if (metadata.get(i) instanceof StateNode) {
metadata.set(i, ((StateNode) metadata.get(i)).getCurrent());
}
}
BranchRateModel.Base branchRateModel = clockModelInput.get();
// write out the log tree with meta data
out.print("tree STATE_" + nSample + " = ");
mascotInput.get().treeIntervalsInput.get().treeInput.get().getRoot().sort();
root = mascotInput.get().treeIntervalsInput.get().treeInput.get().getRoot();
out.print(toNewick(root, metadata, branchRateModel));
out.print(";");
for (int i = 0; i < used.length; i++)
if(!used[i])
System.err.println("not all nodes used");
if (report)
System.err.println("error in node numbers");
}
示例15: evalFunctionInputs
import beast.core.Function; //导入依赖的package包/类
public static void evalFunctionInputs(Interpreter interpreter, List<Function> functions) {
try {
for (Function function : functions) {
String id = ((BEASTObject) function).getID();
if (function instanceof NamedFunction) {
id = ((NamedFunction)function).getName();
interpreter.set(id, ((NamedFunction)function).getFunction());
} else {
interpreter.set(id, function);
}
}
} catch (EvalError e) {
throw new RuntimeException("Error in BSHOperator: " + e.getMessage());
}
}