This commit is contained in:
jl777
2019-08-07 04:27:47 -11:00
parent cb4d3dff2d
commit 8c37d63a0f

View File

@@ -111,18 +111,31 @@ arith_uint256 RT_CST_RST_outer(int32_t height,uint32_t nTime,arith_uint256 bnTar
return(bnTarget); return(bnTarget);
} }
arith_uint256 RT_CST_RST_target(int32_t height,uint32_t nTime,arith_uint256 bnTarget,uint32_t *ts,arith_uint256 *ct,int32_t width)
{
int32_t i; int64_t innerK;
bnTarget = ct[0];
for (i=1; i<width; i++)
bnTarget += ct[i];
bnTarget /= arith_uint256(width * K);
innerK = (K * (nTime-ts[0]) * (ts[0]-ts[width])) / (width * T * T);
fprintf(stderr,"ht.%d made it to i == 0, innerK %lld (%d * %d) %u - %u width.%d\n",height,(long long)innerK,(nTime-ts[0]),(ts[0]-ts[width]),ts[0],ts[width],width);
bnTarget *= arith_uint256(innerK);
return(bnTarget);
}
arith_uint256 RT_CST_RST_inner(int32_t height,uint32_t nTime,arith_uint256 bnTarget,uint32_t *ts,arith_uint256 *ct,int32_t numerator,int32_t denominator,int32_t W,int32_t past,int32_t outeri) arith_uint256 RT_CST_RST_inner(int32_t height,uint32_t nTime,arith_uint256 bnTarget,uint32_t *ts,arith_uint256 *ct,int32_t numerator,int32_t denominator,int32_t W,int32_t past,int32_t outeri)
{ {
int64_t innerK; int32_t i; arith_uint256 bnTargetW,bnTargetwidth,bnTmp; int32_t width = outeri+W;
if ( (ts[0] - ts[outeri+W]) < (outeri+W)*T ) if ( (ts[0] - ts[width]) < width*T )
{ {
bnTarget = ct[0]; bnTargetW = RT_CST_RST_target(height,nTime,bnTarget,ts,ct,W);
for (i=1; i<W; i++) bnTargetwidth = RT_CST_RST_target(height,nTime,bnTarget,ts,ct,width);
bnTarget += ct[i]; if ( bnTargetW < bnTargetwidth )
bnTarget /= arith_uint256(W * K); bnTmp = bnTargetW;
innerK = (K * (nTime-ts[0]) * (ts[0]-ts[W])) / (W * T * T); else bnTmp = bnTargetwidth;
fprintf(stderr,"ht.%d made it to i == 0, innerK %lld (%d * %d) %u - %u W.%d\n",height,(long long)innerK,(nTime-ts[0]),(ts[0]-ts[W]),ts[0],ts[W],W); if ( bnTmp < bnTarget )
bnTarget *= arith_uint256(innerK); bnTarget = bnTmp;
} }
return(bnTarget); return(bnTarget);
} }