Example #1
0
LIS_INT lis_vector_check(LIS_VECTOR v, LIS_INT level)
{
	LIS_DEBUG_FUNC_IN;

	switch( level )
	{
	case LIS_VECTOR_CHECK_NULL:
		if( !lis_is_malloc(v) )
		{
			LIS_SETERR(LIS_ERR_ILL_ARG,"vector v is undefined\n");
			return LIS_ERR_ILL_ARG;
		}
		break;
	default:
		if( !lis_is_malloc(v) )
		{
			LIS_SETERR(LIS_ERR_ILL_ARG,"vector v is undefined\n");
			return LIS_ERR_ILL_ARG;
		}
		if( v->status<=LIS_VECTOR_ASSEMBLING )
		{
			LIS_SETERR(LIS_ERR_ILL_ARG,"vector v is assembling\n");
			return LIS_ERR_ILL_ARG;
		}
		break;
	}
	LIS_DEBUG_FUNC_OUT;
	return LIS_SUCCESS;
}
Example #2
0
void lis_vector_is_null_f(LIS_VECTOR_F *vec, LIS_INT *ierr)
{
	LIS_VECTOR v;

	LIS_DEBUG_FUNC_IN;

	v = (LIS_VECTOR)LIS_V2P(vec);
	if( !lis_is_malloc(v) )
	{
		*ierr = LIS_TRUE;
	}
	else
	{
		if( v->status==LIS_VECTOR_NULL )
		{
			*ierr = LIS_TRUE;
		}
		else
		{
			*ierr = LIS_FALSE;
		}
	}

	LIS_DEBUG_FUNC_OUT;
	return;
}
Example #3
0
LIS_INT lis_vector_destroy(LIS_VECTOR vec)
{
	LIS_DEBUG_FUNC_IN;
	if( lis_is_malloc(vec) )
	{
		if( vec->value && vec->is_destroy ) lis_free( vec->value );
		if( vec->work ) lis_free( vec->work );
		if( vec->ranges ) lis_free( vec->ranges );
		if( vec ) lis_free(vec);
	}
	LIS_DEBUG_FUNC_OUT;
	return LIS_SUCCESS;
}
LIS_INT lis_matrix_ilu_destroy(LIS_MATRIX_ILU A)
{
	LIS_INT i,j;

	LIS_DEBUG_FUNC_IN;

	if( lis_is_malloc(A) )
	{
		if( A->bsz )
		{
			for(i=0;i<A->n;i++)
			{
				free(A->index[i]);
				for(j=0;j<A->nnz[i];j++)
				{
					free(A->values[i][j]);
				}
				if( A->nnz[i]>0 ) free(A->values[i]);
			}
			lis_free2(5,A->bsz,A->nnz,A->index,A->values,A->nnz_ma);
		}
		else
		{
			for(i=0;i<A->n;i++)
			{
				if( A->nnz[i]>0 )
				{
					free(A->index[i]);
					free(A->value[i]);
				}
			}
			lis_free2(4,A->nnz,A->index,A->value,A->nnz_ma);
		}
		lis_free(A);
	}

	LIS_DEBUG_FUNC_OUT;
	return LIS_SUCCESS;
}