PDL
view release on metacpan or search on metacpan
lib/PDL/Core/pdlcore.h view on Meta::CPAN
#ifndef __PDLCORE_H
#define __PDLCORE_H
/* version 20: memory-management changes */
/* on 21, look for comments "CORE21", unify pdl_trans per_pdl_flags, par_flags; remove threadloop #defines; change creating to char; relocate struct pdl.value appropriately, remove pdl_null, safe_indterm, initbroadcaststruct to take trans & remove in...
#define PDL_CORE_VERSION 20
#define startbroadcastloop startthreadloop
#define pdl_startbroadcastloop pdl_startthreadloop
#define iterbroadcastloop iterthreadloop
#define pdl_iterbroadcastloop pdl_iterthreadloop
#define get_broadcastdims get_threaddims
#include "EXTERN.h" /* std perl include */
#include "perl.h" /* std perl include */
#include "XSUB.h" /* for the win32 perlCAPI crap */
#include "ppport.h" /* include this AFTER XSUB.h */
#include <stdint.h>
#if defined(CONTEXT) && defined(__osf__)
#undef CONTEXT
#endif
#ifdef PDL_IN_CORE
#define PDL_CORE_(func) pdl_##func
#define PDL_TYPENAME(t) (!PDL.type_names ? "ERROR: type_names not set" : (t < 0 || t >= PDL_NTYPES) ? "INVALID" : PDL.type_names[t])
#else
#define PDL_CORE_(func) PDL->func
#define PDL_TYPENAME(t) (!PDL->type_names ? "ERROR: type_names not set" : (t < 0 || t >= PDL_NTYPES) ? "INVALID" : PDL->type_names[t])
#endif
#define PDL_RECURSE_CHECK(var) \
if (var > 1000) \
return pdl_make_error_simple(PDL_EUSERERROR, "PDL:Internal Error: data structure recursion limit exceeded (max 1000 levels)\n\tThis could mean that you have found an infinite-recursion error in PDL, or\n\tthat you are building data structures wit...
#include "pdl.h"
/* the next one causes trouble in c++ compiles - exclude for now */
#ifndef __cplusplus
#include "pdlmagic.h"
#endif
#define SVavref(x) (SvROK(x) && SvTYPE(SvRV(x))==SVt_PVAV)
/* Use our own barf and our own warn.
* We defer barf (and warn) handling until after multi-threaded (i.e pthreading)
* processing is finished.
* This is needed because segfaults happen when perl's croak is called
* during one of the spawned pthreads for PDL processing.
*/
#define barf PDL_CORE_(pdl_barf)
#undef warn
#define warn PDL_CORE_(pdl_warn)
PDL_Indx av_ndcheck(AV* av, AV* dims, int level, int *datalevel);
pdl* pdl_from_array(AV* av, AV* dims, pdl_datatypes type, pdl* p);
pdl_error pdl_writebackdata_vaffine(pdl *it);
pdl_error pdl_readdata_vaffine(pdl *it);
pdl_error pdl_dim_checks(pdl_transvtable *vtable, pdl **pdls,
pdl_broadcast *broadcast, PDL_Indx nimpl, PDL_Indx *creating,
PDL_Indx *ind_sizes, char load_only);
PDL_Indx pdl_get_offset(PDL_Indx* pos, PDL_Indx* dims, PDL_Indx *incs, PDL_Indx offset, PDL_Indx ndims);
pdl_error pdl_propagate_badflag_dir(pdl *it, int newval, char is_fwd, int recurse_count);
/* pdlutil.c */
typedef enum {
( run in 0.663 second using v1.01-cache-2.11-cpan-5511b514fd6 )