Пример #1
0
N_Vector N_VClone_Serial(N_Vector w)
{
  N_Vector v;
  realtype *data;
  long int length;

  v = N_VCloneEmpty_Serial(w);
  if (v == NULL) return(NULL);

  length = NV_LENGTH_S(w);

  /* Create data */
  if (length > 0) {

    /* Allocate memory */
#if HAVE_MEMALIGN
    if (posix_memalign((void**)&data, 64, length*sizeof(realtype)) != 0) {
	N_VDestroy_Serial(v);return(NULL);
    }
#else
    data = (realtype *) malloc(length * sizeof(realtype));
#endif
    if(data == NULL) {N_VDestroy_Serial(v);return(NULL);}

    /* Attach data */
    NV_OWN_DATA_S(v) = TRUE;
    NV_DATA_S(v) = data;

  }

  return(v);
}
Пример #2
0
N_Vector N_VClone_Serial(N_Vector w)
{
  N_Vector v;
  realtype *data;
  long int length;

  v = NULL;
  v = N_VCloneEmpty_Serial(w);
  if (v == NULL) return(NULL);

  length = NV_LENGTH_S(w);

  /* Create data */
  if (length > 0) {

    /* Allocate memory */
    data = NULL;
    data = (realtype *) malloc(length * sizeof(realtype));
    if(data == NULL) { N_VDestroy_Serial(v); return(NULL); }

    /* Attach data */
    NV_OWN_DATA_S(v) = TRUE;
    NV_DATA_S(v)     = data;

  }

  return(v);
}
Пример #3
0
void N_VDestroy_Serial(N_Vector v)
{
  if (NV_OWN_DATA_S(v) == TRUE)
    free(NV_DATA_S(v));
  free(v->content);
  free(v->ops);
  free(v);
}
Пример #4
0
void N_VDestroy_Serial(N_Vector v)
{
  if (NV_OWN_DATA_S(v) == TRUE) {
    free(NV_DATA_S(v));
    NV_DATA_S(v) = NULL;
  }
  free(v->content); v->content = NULL;
  free(v->ops); v->ops = NULL;
  free(v); v = NULL;

  return;
}
Пример #5
0
N_Vector N_VMake_Serial(long int length, realtype *v_data)
{
  N_Vector v;

  v = N_VNewEmpty_Serial(length);
  if (v == NULL) return(NULL);

  if (length > 0) {
    /* Attach data */
    NV_OWN_DATA_S(v) = FALSE;
    NV_DATA_S(v) = v_data;
  }

  return(v);
}