예제 #1
0
파일: proto.c 프로젝트: wInuX/multex
static
void wbstring(struct wcontext* context, const void* data, size_t length) {
    wint(context, length);
    wchar(context, ':');
    wmemory(context, data, length);
}
예제 #2
0
파일: setubv.c 프로젝트: pratikmallya/AUTO
int 
setubv(integer ndim, integer ips, integer na, integer ncol, integer nint, 
#ifdef MANIFOLD
       integer nalc,
#endif
       integer ncb, integer nrc, integer nra, integer nca, 
       FUNI_TYPE((*funi)), ICNI_TYPE((*icni)), integer ndxloc, iap_type *iap, rap_type *rap, doublereal *par, integer *icp, doublereal *rds,
       doublereal ***aa, doublereal ***bb, doublereal ***cc, doublereal **dd, doublereal **fa, doublereal *fc, doublereal *rlcur, 
       doublereal *rlold, doublereal *rldot, doublereal **ups, doublereal **uoldps, doublereal **udotps, doublereal **upoldp, doublereal **dups, 
       doublereal *dtm, doublereal *thl, doublereal *thu)
{
  doublereal *wi, **wp, **wt;
  
#ifdef USAGE
  struct rusage *initialization_usage,*fc_usage,*parallel_overhead_usage;
  usage_start(&initialization_usage);
#endif
  wi   = (doublereal *)malloc(sizeof(doublereal)*(ncol+1) );
  wp   = dmatrix(ncol+1, ncol);
  wt   = dmatrix(ncol+1, ncol);

  wint(ncol + 1, wi);
  genwts(ncol, ncol + 1, wt, wp);
  
#ifdef USAGE
  usage_end(initialization_usage,"setubv initialization");
#endif

#ifdef USAGE
  usage_start(&fc_usage);
#endif

  setubv_pseudo_arclength(ndim,
#ifdef MANIFOLD
		    nalc,
#endif
		    ncb, nrc, iap, rds, dd, fc, rlcur, rlold, rldot,
		    udotps, dups, dtm, thl, thu);

#ifdef USAGE
  usage_end(fc_usage,"setubv make fc");
#endif

  switch(global_setubv_type) {

#ifdef PTHREADS
  case SETUBV_PTHREADS:
    {
      setubv_threads_wrapper(ndim, na, ncol, nint,
#ifdef MANIFOLD
			     nalc,
#endif
			     ncb, nrc, nra, funi, icni, iap, rap, par, icp,
			     aa, bb, cc, dd, fa,
			     fc, ups, uoldps, udotps, upoldp, dtm,
			     thu, wi, wp, wt);
      break;
    }
#endif

#ifdef MPI
    case SETUBV_MPI:
      if(global_verbose_flag)
	printf("Setubv MPI start\n");
      setubv_mpi_wrapper(ndim, na, ncol, nint,
#ifdef MANIFOLD
       nalc,
#endif
       ncb, nrc, nra, nca, ndxloc, iap, rap, par, icp,
       fa, fc, rldot, ups, uoldps,
       udotps, upoldp, dtm, thl, thu, wi, wp, wt);
      if(global_verbose_flag)
	printf("Setubv MPI end\n");
      break;
#endif

    default:
      setubv_make_aa_bb_cc_dd(ndim, na, ncol, nint, 
#ifdef MANIFOLD
       nalc,
#endif
       ncb, nrc, nra, funi, icni, iap, rap, par, icp,
       aa, bb, cc, dd, fa,
       fc, ups, uoldps, udotps, upoldp, dtm,
       thu, wi, wp, wt);
      break;
    }

  free(wi   );
  free_dmatrix(wp);
  free_dmatrix(wt);
  return 0;
}
예제 #3
0
파일: proto.c 프로젝트: wInuX/multex
static
void winteger(struct wcontext* context, size_t value) {
    wchar(context, 'i');
    wint(context, value);
    wchar(context, 'e');
}