That is only my guess, perhaps Graham or someone else has the retarget figures?
According to
the comment -
// NOTE: PRIMECOIN continuous target adjustment on every block. The implementation is
deeply technical ...hopefully someone can find the whitepaper and that should have the diff retarget details in it.
Sunny King's
Primecoin white paper - I don't have enough maths background to understand it.
Co-incidentally, investigating this turned up the fact that the
CalculateNextWorkRequired call in
pow.cpp and
pow.h is effectively unused:
$ grep -rn CalculateNextWorkRequired datacoin-core/src/
datacoin-core/src/test/pow_tests.cpp:25: BOOST_CHECK_EQUAL(CalculateNextWorkRequired(&pindexLast, nLastRetargetTime, chainParams->GetConsensus()), 0x1d00ffff);
datacoin-core/src/test/pow_tests.cpp:37: BOOST_CHECK_EQUAL(CalculateNextWorkRequired(&pindexLast, nLastRetargetTime, chainParams->GetConsensus()), 0x1d00ffff);
datacoin-core/src/test/pow_tests.cpp:49: BOOST_CHECK_EQUAL(CalculateNextWorkRequired(&pindexLast, nLastRetargetTime, chainParams->GetConsensus()), 0x1c02b305);
datacoin-core/src/test/pow_tests.cpp:61: BOOST_CHECK_EQUAL(CalculateNextWorkRequired(&pindexLast, nLastRetargetTime, chainParams->GetConsensus()), 0x1d00e1fd);
datacoin-core/src/pow.h:22:unsigned int CalculateNextWorkRequired(const CBlockIndex* pindexLast, int64_t nFirstBlockTime, const Consensus::Params&);
datacoin-core/src/pow.cpp:54:unsigned int CalculateNextWorkRequired(const CBlockIndex* pindexLast, int64_t nFirstBlockTime, const Consensus::Params& params)
Cheers
Graham