if (!var1.getFunc().getName().equals(var2.getFunc().getName())) {
throw new IllegalStateException();
}
// System.out.println(i + ": " + var1.getFunc().getName() + " " + var1.getAmount() + " " + var2.getAmount());
double amount = morphValue(var1.getAmount(), var2.getAmount(), pFScl);
Variation var = res.addVariation(amount, var1.getFunc());
// params
if (var.getFunc().getParameterNames() != null && var.getFunc().getParameterNames().length > 0) {
Object val[] = var.getFunc().getParameterValues();
Object val1[] = var1.getFunc().getParameterValues();
Object val2[] = var2.getFunc().getParameterValues();