Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/core_derivatives.c
Original file line number Diff line number Diff line change
Expand Up @@ -702,7 +702,7 @@ PLL_EXPORT int pll_core_likelihood_derivatives(unsigned int states,
unsigned int parent_sites,
unsigned int child_ids,
const int * invariant,
const unsigned int * pattern_weights,
const double * pattern_weights,
double branch_length,
const double * prop_invar,
double * const * freqs,
Expand Down Expand Up @@ -897,7 +897,7 @@ PLL_EXPORT int pll_core_likelihood_derivatives(unsigned int states,
case PLL_ATTRIB_AB_LEWIS:
{
// TODO: pattern_weight_sum should be stored somewhere!
unsigned int pattern_weight_sum = 0;
double pattern_weight_sum = 0;
for (n = 0; n < ef_sites; ++n)
pattern_weight_sum += pattern_weights[n];

Expand Down
10 changes: 6 additions & 4 deletions src/core_derivatives_avx.c
Original file line number Diff line number Diff line change
Expand Up @@ -1616,7 +1616,7 @@ PLL_EXPORT int pll_core_likelihood_derivatives_avx(unsigned int states,
unsigned int states_padded,
unsigned int rate_cats,
unsigned int ef_sites,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * rate_weights,
const int * invariant,
const double * prop_invar,
Expand Down Expand Up @@ -1840,18 +1840,20 @@ PLL_EXPORT int pll_core_likelihood_derivatives_avx(unsigned int states,
_mm256_mul_pd(v_term2, v_recip0));

/* assumption: no zero weights */
if ((pattern_weights[n-3] | pattern_weights[n-2] |
pattern_weights[n-1] | pattern_weights[n]) == 1)
//if ((pattern_weights[n-3] | pattern_weights[n-2] |
// pattern_weights[n-1] | pattern_weights[n]) == 1)
if (pattern_weights[n-3] == 1.0 && pattern_weights[n-2] == 1.0 &&
pattern_weights[n-1] == 1.0 && pattern_weights[n] == 1.0)
{
/* all 4 weights are 1 -> no multiplication needed */
v_df = _mm256_sub_pd (v_df, v_deriv1);
v_ddf = _mm256_add_pd (v_ddf, v_deriv2);
}
else
{

__m256d v_patw = _mm256_setr_pd(pattern_weights[n-3], pattern_weights[n-2],
pattern_weights[n-1], pattern_weights[n]);

v_df = _mm256_sub_pd (v_df, _mm256_mul_pd(v_deriv1, v_patw));
v_ddf = _mm256_add_pd (v_ddf, _mm256_mul_pd(v_deriv2, v_patw));
}
Expand Down
8 changes: 5 additions & 3 deletions src/core_derivatives_avx2.c
Original file line number Diff line number Diff line change
Expand Up @@ -1540,7 +1540,7 @@ int pll_core_likelihood_derivatives_avx2(unsigned int states,
unsigned int states_padded,
unsigned int rate_cats,
unsigned int ef_sites,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * rate_weights,
const int * invariant,
const double * prop_invar,
Expand Down Expand Up @@ -1764,8 +1764,10 @@ int pll_core_likelihood_derivatives_avx2(unsigned int states,
_mm256_mul_pd(v_term2, v_recip0));

/* assumption: no zero weights */
if ((pattern_weights[n-3] | pattern_weights[n-2] |
pattern_weights[n-1] | pattern_weights[n]) == 1)
//if ((pattern_weights[n-3] | pattern_weights[n-2] |
// pattern_weights[n-1] | pattern_weights[n]) == 1)
if (pattern_weights[n-3] == 1.0 && pattern_weights[n-2] == 1.0 &&
pattern_weights[n-1] == 1.0 && pattern_weights[n] == 1.0)
{
/* all 4 weights are 1 -> no multiplication needed */
v_df = _mm256_sub_pd (v_df, v_deriv1);
Expand Down
20 changes: 10 additions & 10 deletions src/core_likelihood.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ PLL_EXPORT double pll_core_root_loglikelihood(unsigned int states,
const unsigned int * scaler,
double * const * frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand Down Expand Up @@ -216,7 +216,7 @@ PLL_EXPORT double pll_core_root_loglikelihood_repeats_generic(unsigned int state
const unsigned int * scaler,
double * const * frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand Down Expand Up @@ -292,7 +292,7 @@ PLL_EXPORT double pll_core_root_loglikelihood_repeats(unsigned int states,
const unsigned int * scaler,
double * const * frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand All @@ -307,7 +307,7 @@ PLL_EXPORT double pll_core_root_loglikelihood_repeats(unsigned int states,
const unsigned int * scaler,
double * const * frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand Down Expand Up @@ -357,7 +357,7 @@ double pll_core_edge_loglikelihood_ti_4x4(unsigned int sites,
const double * pmatrix,
double * const * frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand Down Expand Up @@ -589,7 +589,7 @@ double pll_core_edge_loglikelihood_ti(unsigned int states,
const double * pmatrix,
double * const * frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand Down Expand Up @@ -932,7 +932,7 @@ double pll_core_edge_loglikelihood_repeats(unsigned int states,
const double * pmatrix,
double ** frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand All @@ -953,7 +953,7 @@ double pll_core_edge_loglikelihood_repeats(unsigned int states,
const double * pmatrix,
double ** frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand Down Expand Up @@ -1026,7 +1026,7 @@ double pll_core_edge_loglikelihood_repeats_generic(unsigned int states,
const double * pmatrix,
double ** frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand Down Expand Up @@ -1199,7 +1199,7 @@ double pll_core_edge_loglikelihood_ii(unsigned int states,
const double * pmatrix,
double * const * frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand Down
22 changes: 11 additions & 11 deletions src/core_likelihood_avx.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ PLL_EXPORT double pll_core_root_loglikelihood_avx(unsigned int states,
const unsigned int * scaler,
double * const * frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand Down Expand Up @@ -118,7 +118,7 @@ PLL_EXPORT double pll_core_root_loglikelihood_repeats_avx(unsigned int states,
const unsigned int * scaler,
double * const * frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand Down Expand Up @@ -209,7 +209,7 @@ double pll_core_root_loglikelihood_4x4_avx(unsigned int sites,
const unsigned int * scaler,
double * const * frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand Down Expand Up @@ -291,7 +291,7 @@ double pll_core_edge_loglikelihood_ti_4x4_avx(unsigned int sites,
const double * pmatrix,
double * const * frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand Down Expand Up @@ -537,7 +537,7 @@ double pll_core_edge_loglikelihood_ti_20x20_avx(unsigned int sites,
const double * pmatrix,
double * const * frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand Down Expand Up @@ -782,7 +782,7 @@ double pll_core_edge_loglikelihood_ti_avx(unsigned int states,
const double * pmatrix,
double * const * frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand Down Expand Up @@ -1031,7 +1031,7 @@ double pll_core_edge_loglikelihood_repeats_generic_avx(unsigned int states,
const double * pmatrix,
double ** frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand Down Expand Up @@ -1278,7 +1278,7 @@ double pll_core_edge_loglikelihood_ii_avx(unsigned int states,
const double * pmatrix,
double * const * frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand Down Expand Up @@ -1519,7 +1519,7 @@ double pll_core_edge_loglikelihood_ii_4x4_avx(unsigned int sites,
const double * pmatrix,
double * const * frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand Down Expand Up @@ -1737,7 +1737,7 @@ double pll_core_edge_loglikelihood_repeats_4x4_avx(unsigned int states,
const double * pmatrix,
double ** frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand Down Expand Up @@ -1957,7 +1957,7 @@ double pll_core_edge_loglikelihood_repeatsbclv_4x4_avx(unsigned int states,
const double * pmatrix,
double ** frequencies,
const double * rate_weights,
const unsigned int * pattern_weights,
const double * pattern_weights,
const double * invar_proportion,
const int * invar_indices,
const unsigned int * freqs_indices,
Expand Down
Loading