64 int Weight1, Weight2, Weight3;
84 if ( pData->fVerbose )
85 printf(
"Div %5d : Best single = %5d.%s", Counter++, Weight1, fScrollLines?
"\n":
"\r" );
86 if ( Weight1 > pData->WeightMin || (Weight1 == 0 && pData->fUse0) )
91 while ( ++pData->nNodesNew < pData->nNodesExt );
93 else if ( pData->fOnlyD )
99 if ( pData->fVerbose )
100 printf(
"Div %5d : Best double = %5d.%s", Counter++, Weight2, fScrollLines?
"\n":
"\r" );
101 if ( Weight2 > pData->WeightMin || (Weight2 == 0 && pData->fUse0) )
106 while ( ++pData->nNodesNew < pData->nNodesExt );
108 else if ( !pData->fUseCompl )
110 pData->nNodesNew = 0;
116 if ( pData->fVerbose )
117 printf(
"Div %5d : Best double = %5d. Best single = %5d.%s", Counter++, Weight2, Weight1, fScrollLines?
"\n":
"\r" );
120 if ( Weight1 >= Weight2 )
122 if ( Weight1 > pData->WeightMin || (Weight1 == 0 && pData->fUse0) )
129 if ( Weight2 > pData->WeightMin || (Weight2 == 0 && pData->fUse0) )
135 while ( ++pData->nNodesNew < pData->nNodesExt );
139 pData->nNodesNew = 0;
146 Weight3 =
Fxu_Select( p, &pSingle, &pDouble );
147 if ( pData->fVerbose )
148 printf(
"Div %5d : Best double = %5d. Best single = %5d. Best complement = %5d.%s",
149 Counter++, Weight2, Weight1, Weight3, fScrollLines?
"\n":
"\r" );
151 if ( Weight3 > pData->WeightMin || (Weight3 == 0 && pData->fUse0) )
156 while ( ++pData->nNodesNew < pData->nNodesExt );
159 if ( pData->fVerbose )
160 printf(
"Total single = %3d. Total double = %3d. Total compl = %3d. \n",
161 p->nDivs1, p->nDivs2, p->nDivs3 );
164 if ( pData->nNodesNew )
168 if ( pData->nNodesNew == pData->nNodesExt )
169 printf(
"Warning: The limit on the number of extracted divisors has been reached.\n" );
170 return pData->nNodesNew;
#define Fxu_MatrixForEachVarInRingSafe(Matrix, Var, Var2)
#define Fxu_MatrixRingVarsReset(Matrix)
void Fxu_Update(Fxu_Matrix *p, Fxu_Single *pSingle, Fxu_Double *pDouble)
FUNCTION DEFINITIONS ///.
typedefABC_NAMESPACE_HEADER_START struct FxuDataStruct Fxu_Data_t
INCLUDES ///.
void Fxu_MatrixDelete(Fxu_Matrix *p)
void Fxu_MemRecycle(Fxu_Matrix *p, char *pItem, int nBytes)
void Fxu_UpdateSingle(Fxu_Matrix *p)
int Fxu_HeapDoubleReadMaxWeight(Fxu_HeapDouble *p)
void Fxu_CreateCovers(Fxu_Matrix *p, Fxu_Data_t *pData)
#define Fxu_MatrixForEachCubeInRingSafe(Matrix, Cube, Cube2)
#define Fxu_MatrixRingCubesReset(Matrix)
#define ABC_NAMESPACE_IMPL_END
void Fxu_UpdateDouble(Fxu_Matrix *p)
void Fxu_MatrixRingVarsUnmark(Fxu_Matrix *p)
#define ABC_NAMESPACE_IMPL_START
char * Fxu_MemFetch(Fxu_Matrix *p, int nBytes)
FUNCTION DEFINITIONS ///.
int Fxu_HeapSingleReadMaxWeight(Fxu_HeapSingle *p)
int Fxu_FastExtract(Fxu_Data_t *pData)
FUNCTION DEFINITIONS ///.
typedefABC_NAMESPACE_HEADER_START struct FxuMatrix Fxu_Matrix
INCLUDES ///.
ABC_NAMESPACE_IMPL_START Fxu_Matrix * Fxu_CreateMatrix(Fxu_Data_t *pData)
DECLARATIONS ///.
int Fxu_Select(Fxu_Matrix *p, Fxu_Single **ppSingle, Fxu_Double **ppDouble)
FUNCTION DEFINITIONS ///.
void Fxu_MatrixRingCubesUnmark(Fxu_Matrix *p)