/** * Actually does the computation in @see #numLikelihoods * * @param numAlleles number of alleles * @param ploidy number of chromosomes * @return number of likelihoods */ private static final int calcNumLikelihoods(final int numAlleles, final int ploidy) { if (numAlleles == 1) return 1; else if (ploidy == 1) return numAlleles; else { int acc =0; for (int k=0; k <= ploidy; k++ ) acc += calcNumLikelihoods(numAlleles - 1, ploidy - k); return acc; } }
/** * Actually does the computation in @see #numLikelihoods * * @param numAlleles * @param ploidy * @return */ private static final int calcNumLikelihoods(final int numAlleles, final int ploidy) { if (numAlleles == 1) return 1; else if (ploidy == 1) return numAlleles; else { int acc =0; for (int k=0; k <= ploidy; k++ ) acc += calcNumLikelihoods(numAlleles - 1, ploidy - k); return acc; } }
/** * Actually does the computation in @see #numLikelihoods * * @param numAlleles number of alleles * @param ploidy number of chromosomes * @return number of likelihoods */ private static final int calcNumLikelihoods(final int numAlleles, final int ploidy) { if (numAlleles == 1) return 1; else if (ploidy == 1) return numAlleles; else { int acc =0; for (int k=0; k <= ploidy; k++ ) acc += calcNumLikelihoods(numAlleles - 1, ploidy - k); return acc; } }
else { return calcNumLikelihoods(numAlleles, ploidy);
else { return calcNumLikelihoods(numAlleles, ploidy);
else { return calcNumLikelihoods(numAlleles, ploidy);