/* s e t u p I n i t i a l C h o l e s k y  */
returnValue QProblem_setupInitialCholesky(QProblem *_THIS)
/* s e t u p I n i t i a l C h o l e s k y  */
returnValue QProblem_setupInitialCholesky(QProblem *_THIS)
{
	returnValue returnvalueCholesky;
	if ( ( QProblem_getNV(_THIS) != QProblem_getNFR(_THIS) - QProblem_getNFV(_THIS) ) && ( _THIS->options.enableRegularisation == BT_TRUE ) )
		if ( QProblem_regulariseHessian( _THIS ) != SUCCESSFUL_RETURN )
			return RET_INIT_FAILED_REGULARISATION;
	returnvalueCholesky = QProblem_computeProjectedCholesky( _THIS );
	if ( returnvalueCholesky == RET_HESSIAN_NOT_SPD )
	{
		if ( QProblem_regulariseHessian( _THIS ) != SUCCESSFUL_RETURN )
			return RET_INIT_FAILED_REGULARISATION;
		returnvalueCholesky = QProblem_computeProjectedCholesky( _THIS );
	}
	if ( returnvalueCholesky != SUCCESSFUL_RETURN )
		return RET_INIT_FAILED_CHOLESKY;
	_THIS->haveCholesky = BT_TRUE;
	return SUCCESSFUL_RETURN;
}