diff --git a/c_tools/mock/flash_loader.cpp b/c_tools/mock/flash_loader.cpp new file mode 100644 index 0000000..50e769f --- /dev/null +++ b/c_tools/mock/flash_loader.cpp @@ -0,0 +1,111 @@ +#include +#include +#include +#include +#include "simulation_loader.hpp" + +using namespace std; +using namespace CosmoTool; + +class FlashLoader: public SimulationLoader +{ +private: + int load_flags; + bool onefile; + int _num_files; + SimuData *gadget_header; + string snapshot_name; +public: + FlashLoader(const string& basename, SimuData *header, int flags, bool singleFile, int _num) + : snapshot_name(basename), load_flags(flags), onefile(singleFile), _num_files(_num), gadget_header(header) + { + } + + ~FlashLoader() + { + delete gadget_header; + } + + SimuData *getHeader() { + return gadget_header; + } + + int num_files() { + return _num_files; + } + + SimuData *loadFile(int id) { + SimuData *d; + + if (onefile && id > 0) + return 0; + if (id >= _num_files) + return 0; + + if (onefile) + d = loadFlashMulti(snapshot_name.c_str(), -1, load_flags); + else + d = loadFlashMulti(snapshot_name.c_str(), id, load_flags); + + if (d->Id != 0) + { + long *uniqueID = new long[d->NumPart]; + for (long i = 0; i < d->NumPart; i++) + { + uniqueID[i] = d->Id[i]; + } + d->new_attribute("uniqueID", uniqueID, delete_adaptor); + } + + applyTransformations(d); + + return d; + } +}; + + +SimulationLoader *flashLoader(const std::string& snapshot, int flags) +{ + bool singleFile; + int num_files; + SimuData *d; + + try + { + d = loadFlashMulti(snapshot.c_str(), -1, 0); + singleFile = true; + num_files = 1; + } + catch (const NoSuchFileException& e) + { + try + { + d = loadFlashMulti(snapshot.c_str(), 0, 0); + num_files = 0; + } + catch(const NoSuchFileException& e) + { + return 0; + } + } + + assert(d != 0); + SimuData *header = d; + + if (!singleFile) + { + try + { + while ((d = loadFlashMulti(snapshot.c_str(), num_files, 0)) != 0) + { + num_files++; + delete d; + } + } + catch(const NoSuchFileException& e) + { + } + } + + return new FlashLoader(snapshot, header, flags, singleFile, num_files); +} diff --git a/c_tools/mock/gadget_loader.cpp b/c_tools/mock/gadget_loader.cpp new file mode 100644 index 0000000..1c108ee --- /dev/null +++ b/c_tools/mock/gadget_loader.cpp @@ -0,0 +1,124 @@ +#include +#include +#include +#include +#include "simulation_loader.hpp" + +using namespace std; +using namespace CosmoTool; + +class GadgetLoader: public SimulationLoader +{ +private: + int load_flags; + bool onefile; + int _num_files; + double unitMpc; + SimuData *gadget_header; + string snapshot_name; +public: + GadgetLoader(const string& basename, SimuData *header, int flags, bool singleFile, int _num, double unit) + : snapshot_name(basename), load_flags(flags), onefile(singleFile), _num_files(_num), unitMpc(1/unit), gadget_header(header) + { + } + + ~GadgetLoader() + { + delete gadget_header; + } + + SimuData *getHeader() { + return gadget_header; + } + + int num_files() { + return _num_files; + } + + SimuData *loadFile(int id) { + SimuData *d; + + if (onefile && id > 0) + return 0; + if (id >= _num_files) + return 0; + + if (onefile) + d = loadGadgetMulti(snapshot_name.c_str(), -1, load_flags); + else + d = loadGadgetMulti(snapshot_name.c_str(), id, load_flags); + + if (d->Id != 0) + { + long *uniqueID = new long[d->NumPart]; + for (long i = 0; i < d->NumPart; i++) + { + uniqueID[i] = d->Id[i]; + } + d->new_attribute("uniqueID", uniqueID, delete_adaptor); + } + + for (int k = 0; k < 3; k++) + { + if (d->Pos[k] != 0) + { + for (long i = 0; i < d->NumPart; i++) + d->Pos[k][i] *= unitMpc; + } + } + d->BoxSize *= unitMpc; + + applyTransformations(d); + + return d; + } +}; + + +SimulationLoader *gadgetLoader(const std::string& snapshot, double Mpc_unitLength, int flags) +{ + bool singleFile; + int num_files; + SimuData *d; + + try + { + d = loadGadgetMulti(snapshot.c_str(), -1, 0); + singleFile = true; + num_files = 1; + } + catch (const NoSuchFileException& e) + { + try + { + d = loadGadgetMulti(snapshot.c_str(), 0, 0); + num_files = 0; + } + catch(const NoSuchFileException& e) + { + return 0; + } + } + + assert(d != 0); + SimuData *header = d; + + header->BoxSize /= Mpc_unitLength; + + if (!singleFile) + { + try + { + while ((d = loadGadgetMulti(snapshot.c_str(), num_files, 0)) != 0) + { + num_files++; + delete d; + } + } + catch(const NoSuchFileException& e) + { + } + } + + return new GadgetLoader(snapshot, header, flags, singleFile, num_files, Mpc_unitLength); +} diff --git a/c_tools/mock/generateMock.cpp b/c_tools/mock/generateMock.cpp index 8d4dff8..a044a92 100644 --- a/c_tools/mock/generateMock.cpp +++ b/c_tools/mock/generateMock.cpp @@ -1,214 +1,28 @@ +#include +#include +#include #include #include #include #include +#include #include +#include #include -#include -#include -#include #include #include #include "generateMock_conf.h" #include "gslIntegrate.hpp" #include +#include "simulation_loader.hpp" using namespace std; using namespace CosmoTool; +using boost::format; #define LIGHT_SPEED 299792.458 -static double gadgetUnit=1e-3; - -SimuData *doLoadRamses(const char *basename, int baseid, int velAxis, bool goRedshift) -{ - SimuData *d, *outd; - - d = loadRamsesSimu(basename, baseid, -1, true, 0); - outd = new SimuData; - - outd->NumPart = d->TotalNumPart; - outd->BoxSize = d->BoxSize; - outd->TotalNumPart = outd->NumPart; - outd->Hubble = d->Hubble; - outd->Omega_Lambda = d->Omega_Lambda; - outd->Omega_M = d->Omega_M; - outd->time = d->time; - - for (int k = 0; k < 3; k++) - outd->Pos[k] = new float[outd->NumPart]; - outd->Vel[2] = new float[outd->NumPart]; - delete d; - - int curCpu = 0; - cout << "loading cpu 0 " << endl; - while (d = loadRamsesSimu(basename, baseid, curCpu, true, NEED_POSITION|NEED_VELOCITY|NEED_GADGET_ID)) - { - for (int k = 0; k < 3; k++) - for (int i = 0; i < d->NumPart; i++) - { - assert(d->Id[i] >= 1); - assert(d->Id[i] <= outd->TotalNumPart); - outd->Pos[k][d->Id[i]-1] = d->Pos[k][i]; - outd->Vel[2][d->Id[i]-1] = d->Vel[velAxis][i]; - } - - if (goRedshift) - for (int i = 0; i < d->NumPart; i++) - outd->Pos[velAxis][d->Id[i]-1] += d->Vel[velAxis][i]/100.; - - delete d; - curCpu++; - cout << "loading cpu " << curCpu << endl; - } - - return outd; -} - - - -SimuData *myLoadGadget(const char *fname, int id, int flags) -{ - SimuData *sim = loadGadgetMulti(fname, id, flags); - sim->BoxSize *= gadgetUnit*1000; - for (int j = 0; j < 3; j++) - { - if (sim->Pos[j] != 0) { - for (long i = 0; i < sim->NumPart; i++) - sim->Pos[j][i] *= gadgetUnit*1000; - } - } - return sim; -} - -SimuData *doLoadSimulation(const char *gadgetname, int velAxis, bool goRedshift, SimuData *(*loadFunction)(const char *fname, int id, int flags)) -{ - SimuData *d, *outd; - bool singleFile = false; - - try - { - d = loadFunction(gadgetname, -1, 0); - singleFile = true; - } - catch (const NoSuchFileException& e) - { - try - { - d = loadFunction(gadgetname, 0, 0); - } - catch(const NoSuchFileException& e) - { - return 0; - } - } - outd = new SimuData; - - outd->NumPart = d->TotalNumPart; - outd->BoxSize = d->BoxSize/1000; - outd->TotalNumPart = outd->NumPart; - outd->Hubble = d->Hubble; - outd->Omega_Lambda = d->Omega_Lambda; - outd->Omega_M = d->Omega_M; - outd->time = d->time; - - for (int k = 0; k < 3; k++) - outd->Pos[k] = new float[outd->NumPart]; - outd->Vel[2] = new float[outd->NumPart]; - delete d; - - int curCpu = singleFile ? -1 : 0; - cout << "loading file 0 " << endl; - try - { - while (1) - { - d = loadFunction(gadgetname, curCpu, NEED_POSITION|NEED_VELOCITY|NEED_GADGET_ID); - for (int k = 0; k < 3; k++) - for (int i = 0; i < d->NumPart; i++) - { - assert(d->Id[i] >= 1); - assert(d->Id[i] <= outd->TotalNumPart); - outd->Pos[k][d->Id[i]-1] = d->Pos[k][i]/1000; - outd->Vel[2][d->Id[i]-1] = d->Vel[velAxis][i]; - } - - if (goRedshift) - for (int i = 0; i < d->NumPart; i++) - outd->Pos[velAxis][d->Id[i]-1] += d->Vel[velAxis][i]/100.; - - delete d; - if (singleFile) - break; - curCpu++; - cout << "loading file " << curCpu << endl; - } - } - catch (const NoSuchFileException& e) - { - } - - return outd; -} - - -SimuData *doLoadMultidark(const char *multidarkname) -{ - SimuData *outd; - FILE *fp; - int actualNumPart; - - outd = new SimuData; - cout << "opening multidark file " << multidarkname << endl; - fp = fopen(multidarkname, "r"); - if (fp == NULL) { - cout << "could not open file!" << endl; - return 0; - } - fscanf(fp, "%f\n", &outd->BoxSize); - fscanf(fp, "%f\n", &outd->Omega_M); - fscanf(fp, "%f\n", &outd->Hubble); - fscanf(fp, "%f\n", &outd->time); - fscanf(fp, "%ld\n", &outd->NumPart); - - outd->time = 1./(1.+outd->time); // convert to scale factor - outd->TotalNumPart = outd->NumPart; - outd->Omega_Lambda = 1.0 - outd->Omega_M; - - for (int k = 0; k < 3; k++) - outd->Pos[k] = new float[outd->NumPart]; - outd->Vel[2] = new float[outd->NumPart]; - outd->Id = new int[outd->NumPart]; - outd->uniqueID = new float[outd->NumPart]; - - cout << "loading multidark particles" << endl; - actualNumPart = 0; - for (int i = 0; i < outd->NumPart; i++) { - fscanf(fp, "%d %f %f %f %f\n", &outd->Id[i], - &outd->Pos[0][i], &outd->Pos[1][i], - &outd->Pos[2][i], &outd->Vel[2][i]); - - outd->uniqueID[i] = 1.0 * outd->Id[i]; - - if (i < 10) printf("TEST %d %d\n", i, outd->Id[i]); - if (outd->Id[i] == -99 && - outd->Pos[0][i] == -99 && outd->Pos[1][i] == -99 && - outd->Pos[2][i] == -99 && outd->Vel[2][i] == -99) { - printf("FOUND END\n"); - break; - } else { - actualNumPart++; - } - } - fclose(fp); - - outd->NumPart = actualNumPart; - outd->TotalNumPart = actualNumPart; - return outd; -} - - -static double cubic(double a) +typedef boost::function2 MetricFunctor; { return a*a*a; } @@ -247,7 +61,7 @@ Interpolate make_cosmological_redshift(double OM, double OL, double z0, double z return buildFromVector(pairs); } -void metricTransform(SimuData *data, int axis, bool reshift, bool pecvel, double*& expfact, bool cosmo_flag) +void metricTransform(SimuData *data, int axis, bool reshift, bool pecvel, double* expfact, bool cosmo_flag) { int x0, x1, x2; @@ -275,8 +89,6 @@ void metricTransform(SimuData *data, int axis, bool reshift, bool pecvel, double TotalExpansion e_computer; double baseComovingDistance; - expfact = new double[data->NumPart]; - cout << "Using base redshift z=" << z0 << " " << z0+8*data->BoxSize*100/LIGHT_SPEED << endl; e_computer.Omega_M = data->Omega_M; @@ -304,7 +116,8 @@ void metricTransform(SimuData *data, int axis, bool reshift, bool pecvel, double else z = reduced_red*LIGHT_SPEED/100.0; - expfact[i] = z / z_old; + if (expfact) + expfact[i] = z / z_old; // Add peculiar velocity if (pecvel) z += v/100; @@ -393,39 +206,29 @@ void generateOutput(SimuData *data, int axis, } f.endCheckpoint(); - cout << "Writing unique ID..." << endl; - f.beginCheckpoint(); - for (uint32_t i = 0; i < data->NumPart; i++) + long *uniqueID = data->as("uniqueID"); + if (uniqueID != 0) { - f.writeReal32(data->uniqueID[i]); + cout << "Writing unique ID..." << endl; + f.beginCheckpoint(); + for (uint32_t i = 0; i < data->NumPart; i++) + { + f.writeInt64(uniqueID[i]); + } + f.endCheckpoint(); } - f.endCheckpoint(); } -void makeBox(SimuData *simu, double *efac, SimuData *&boxed, generateMock_info& args_info) +// This function prepares the list of targets for the specified snapshot. The target list is not +// cleared. That way new particles can be appended if this is a multi-file snapshot. +void selectBox(SimuData *simu, std::vector& targets, generateMock_info& args_info) { float subsample = args_info.subsample_given ? args_info.subsample_arg : 1.0; - uint32_t goodParticles = 0; double ranges[3][2] = { { args_info.rangeX_min_arg, args_info.rangeX_max_arg }, { args_info.rangeY_min_arg, args_info.rangeY_max_arg }, { args_info.rangeZ_min_arg, args_info.rangeZ_max_arg } }; - double mul[3]; - float minmax[2][3]; - int *particle_id; - bool *random_acceptance = 0; - - boxed = new SimuData; - boxed->Hubble = simu->Hubble; - boxed->Omega_M = simu->Omega_M; - boxed->Omega_Lambda = simu->Omega_Lambda; - boxed->time = simu->time; - boxed->BoxSize = simu->BoxSize; - - random_acceptance = new bool[simu->NumPart]; - - for (int j = 0; j < 3; j++) minmax[1][j] = minmax[0][j] = simu->Pos[j][0]; for (uint32_t i = 0; i < simu->NumPart; i++) { @@ -435,102 +238,134 @@ void makeBox(SimuData *simu, double *efac, SimuData *&boxed, generateMock_info& acceptance = acceptance && (simu->Pos[j][i] > ranges[j][0]) && - (simu->Pos[j][i] < ranges[j][1]); - minmax[0][j] = min(simu->Pos[j][i], minmax[0][j]); - minmax[1][j] = max(simu->Pos[j][i], minmax[1][j]); + (simu->Pos[j][i] < ranges[j][1]); } - random_acceptance[i] = acceptance && (drand48() <= subsample); - if (random_acceptance[i]) - goodParticles++; + + if (acceptance && (drand48() <= subsample)) + targets.push_back(i); } +} - cout << "Subsample fraction: " << subsample << endl; - cout << "Min range = " << ranges[0][0] << " " << ranges[1][0] << " " << ranges[2][0] << endl; - cout << "Max range = " << ranges[0][1] << " " << ranges[1][1] << " " << ranges[2][1] << endl; +void createBox(SimuData *simu, vector& targets, vector& snapshot_split, SimuData *& boxed, generateMock_info& args_info) +{ + double *ranges = new double[6]; + double *mul = new double[3]; + long *simu_uniqueID = simu->as("uniqueID"); - cout << "Min position = " << minmax[0][0] << " " << minmax[0][1] << " " << minmax[0][2] << endl; - cout << "Max position = " << minmax[1][0] << " " << minmax[1][1] << " " << minmax[1][2] << endl; - - cout << "Number of accepted particles: " << goodParticles << endl; + ranges[0] = args_info.rangeX_min_arg; + ranges[1] = args_info.rangeX_max_arg; + ranges[2] = args_info.rangeY_min_arg; + ranges[3] = args_info.rangeY_max_arg; + ranges[4] = args_info.rangeZ_min_arg; + ranges[5] = args_info.rangeZ_max_arg; + + boxed = new SimuData; + boxed->Hubble = simu->Hubble; + boxed->Omega_M = simu->Omega_M; + boxed->Omega_Lambda = simu->Omega_Lambda; + boxed->time = simu->time; + boxed->BoxSize = simu->BoxSize; + boxed->NumPart = targets.size(); for (int j = 0; j < 3; j++) { - boxed->Pos[j] = new float[goodParticles]; + boxed->Pos[j] = new float[boxed->NumPart]; boxed->Vel[j] = 0; - mul[j] = 1.0/(ranges[j][1] - ranges[j][0]); + mul[j] = 1.0/(ranges[2*j+1] - ranges[2*j+0]); } - boxed->uniqueID = new float[goodParticles]; - + cout << "Min range = " << ranges[0] << " " << ranges[2] << " " << ranges[4] << endl; + cout << "Max range = " << ranges[1] << " " << ranges[3] << " " << ranges[5] << endl; + cout << "Number of accepted particles: " << boxed->NumPart << endl; cout << "Rescaling factors = " << mul[0] << " " << mul[1] << " " << mul[2] << endl; - boxed->NumPart = goodParticles; - particle_id = new int[goodParticles]; - double *expansion_fac = new double[goodParticles]; + long *uniqueID = new long[boxed->NumPart]; + long *particle_id = new long[boxed->NumPart]; + double *expansion_fac = new double[boxed->NumPart]; + long *snap_split = new long[snapshot_split.size()]; + int *numsnap_info = new int[1]; + copy(targets.begin(), targets.end(), particle_id); + copy(snapshot_split.begin(), snapshot_split.end(), snap_split); + *numsnap_info = snapshot_split.size(); + + boxed->new_attribute("particle_id", particle_id, delete_adaptor); + boxed->new_attribute("expansion_fac", expansion_fac, delete_adaptor); + boxed->new_attribute("uniqueID", uniqueID, delete_adaptor); + boxed->new_attribute("mul", mul, delete_adaptor); + boxed->new_attribute("ranges", ranges, delete_adaptor); + boxed->new_attribute("snapshot_split", snap_split, delete_adaptor); + boxed->new_attribute("num_snapshots", numsnap_info, delete_adaptor); +} + +void buildBox(SimuData *simu, long num_targets, long loaded, + SimuData *boxed, double *efac) +{ uint32_t k = 0; - for (uint32_t i = 0; i < simu->NumPart; i++) + long *uniqueID = boxed->as("uniqueID"); + long *simu_uniqueID = simu->as("uniqueID"); + double *expansion_fac = boxed->as("expansion_fac"); + double *mul = boxed->as("mul"); + double *ranges = boxed->as("ranges"); + long *particle_id = boxed->as("particle_id"); + + for (uint32_t i = 0; i < num_targets; i++, loaded++) { - bool acceptance = random_acceptance[i]; + long pid = particle_id[loaded]; - if (acceptance) + for (int j = 0; j < 3; j++) { - for (int j = 0; j < 3; j++) - { - boxed->Pos[j][k] = (simu->Pos[j][i]-ranges[j][0])*mul[j]; - assert(boxed->Pos[j][k] > 0); - assert(boxed->Pos[j][k] < 1); - } - boxed->uniqueID[k] = simu->uniqueID[i]; - - particle_id[k] = i; - expansion_fac[k] = efac[i]; - k++; + boxed->Pos[j][loaded] = (simu->Pos[j][pid]-ranges[j*2])*mul[j]; + assert(boxed->Pos[j][loaded] > 0); + assert(boxed->Pos[j][loaded] < 1); } + uniqueID[loaded] = (simu_uniqueID != 0) ? simu_uniqueID[pid] : 0; + expansion_fac[loaded] = efac[pid]; } +} - delete[] random_acceptance; +void saveBox(SimuData *&boxed, const std::string& outbox) +{ + double *ranges = boxed->as("ranges"); + NcFile f(outbox.c_str(), NcFile::Replace); + long *particle_id = boxed->as("particle_id"); + double *expansion_fac = boxed->as("expansion_fac"); + long *snapshot_split = boxed->as("snapshot_split"); + int num_snapshots = *boxed->as("num_snapshots"); + long *uniqueID = boxed->as("uniqueID"); - NcFile f(args_info.outputParameter_arg, NcFile::Replace); - - f.add_att("range_x_min", ranges[0][0]); - f.add_att("range_x_max", ranges[0][1]); - f.add_att("range_y_min", ranges[1][0]); - f.add_att("range_y_max", ranges[1][1]); - f.add_att("range_z_min", ranges[2][0]); - f.add_att("range_z_max", ranges[2][1]); + f.add_att("range_x_min", ranges[0]); + f.add_att("range_x_max", ranges[1]); + f.add_att("range_y_min", ranges[2]); + f.add_att("range_y_max", ranges[3]); + f.add_att("range_z_min", ranges[4]); + f.add_att("range_z_max", ranges[5]); f.add_att("mask_index", -1); NcDim *NumPart_dim = f.add_dim("numpart_dim", boxed->NumPart); - NcVar *v = f.add_var("particle_ids", ncInt, NumPart_dim); + NcDim *NumSnap_dim = f.add_dim("numsnap_dim", num_snapshots); + NcVar *v = f.add_var("particle_ids", ncLong, NumPart_dim); NcVar *v2 = f.add_var("expansion", ncDouble, NumPart_dim); + NcVar *v3 = f.add_var("snapshot_split", ncLong, NumSnap_dim); v->put(particle_id, boxed->NumPart); - v2->put(expansion_fac, boxed->NumPart); - - delete[] particle_id; - delete[] expansion_fac; - - -/* - FILE *fp = fopen("sample_info.txt", "w"); - fprintf(fp, "x_min = %f\n", ranges[0][0]); - fprintf(fp, "x_max = %f\n", ranges[0][1]); - fprintf(fp, "y_min = %f\n", ranges[1][0]); - fprintf(fp, "y_max = %f\n", ranges[1][1]); - fprintf(fp, "z_min = %f\n", ranges[2][0]); - fprintf(fp, "z_max = %f\n", ranges[2][1]); - fprintf(fp, "mask_index = -1\n"); - fprintf(fp, "total_particles = %d\n", boxed->NumPart); - fclose(fp); -*/ + v2->put(expansion_fac, boxed->NumPart); + v3->put(snapshot_split, num_snapshots); + if (uniqueID != 0) + { + NcVar *v4 = f.add_var("unique_ids", ncLong, NumPart_dim); + v4->put(uniqueID, boxed->NumPart); + } } -void makeBoxFromParameter(SimuData *simu, double *efac, SimuData* &boxed, generateMock_info& args_info) +void makeBoxFromParameter(SimuData *simu, SimuData* &boxed, generateMock_info& args_info) { NcFile f(args_info.inputParameter_arg); NcVar *v; - int *particle_id; + long *particle_id; double *expansion_fac; + long *uniqueID; + long *snapshot_split; + int *num_snapshots = new int[1]; boxed = new SimuData; boxed->Hubble = simu->Hubble; @@ -540,46 +375,79 @@ void makeBoxFromParameter(SimuData *simu, double *efac, SimuData* &boxed, genera boxed->BoxSize = simu->BoxSize; NcVar *v_id = f.get_var("particle_ids"); + NcVar *v_snap = f.get_var("snapshot_split"); long *edges1; - double ranges[3][2]; - double mul[3]; + long *dim_snap; + double *ranges; + double *mul; edges1 = v_id->edges(); + dim_snap = v_snap->edges(); assert(v_id->num_dims()==1); + assert(v_snap->num_dims()==1); boxed->NumPart = edges1[0]; + *num_snapshots = dim_snap[0]; + delete[] dim_snap; delete[] edges1; - particle_id = new int[boxed->NumPart]; + particle_id = new long[boxed->NumPart]; + uniqueID = new long[boxed->NumPart]; + mul = new double[3]; + ranges = new double[6]; + snapshot_split = new long[*num_snapshots]; + + + boxed->new_attribute("uniqueID", uniqueID, delete_adaptor); + boxed->new_attribute("mul", mul, delete_adaptor); + boxed->new_attribute("ranges", ranges, delete_adaptor); + boxed->new_attribute("particle_id", particle_id, delete_adaptor); + boxed->new_attribute("num_snapshots", num_snapshots, delete_adaptor); + boxed->new_attribute("snapshot_split", snapshot_split, delete_adaptor); v_id->get(particle_id, boxed->NumPart); + v_snap->get(snapshot_split, *num_snapshots); - ranges[0][0] = f.get_att("range_x_min")->as_double(0); - ranges[0][1] = f.get_att("range_x_max")->as_double(0); - ranges[1][0] = f.get_att("range_y_min")->as_double(0); - ranges[1][1] = f.get_att("range_y_max")->as_double(0); - ranges[2][0] = f.get_att("range_z_min")->as_double(0); - ranges[2][1] = f.get_att("range_z_max")->as_double(0); + ranges[0] = f.get_att("range_x_min")->as_double(0); + ranges[1] = f.get_att("range_x_max")->as_double(0); + ranges[2] = f.get_att("range_y_min")->as_double(0); + ranges[3] = f.get_att("range_y_max")->as_double(0); + ranges[4] = f.get_att("range_z_min")->as_double(0); + ranges[5] = f.get_att("range_z_max")->as_double(0); for (int j = 0; j < 3; j++) { boxed->Pos[j] = new float[boxed->NumPart]; boxed->Vel[j] = 0; - mul[j] = 1.0/(ranges[j][1] - ranges[j][0]); + mul[j] = 1.0/(ranges[2*j+1] - ranges[2*j+0]); } uint32_t k = 0; - for (uint32_t i = 0; i < boxed->NumPart; i++) + NcVar *v_uniq = f.get_var("unique_ids"); + v_uniq->get(uniqueID, boxed->NumPart); +} + +void makeBoxFromSimulation(SimulationLoader *loader, SimuData* &boxed, MetricFunctor metric, generateMock_info& args_info) +{ + vector targets, split; + long previous_target_num = 0; + + for (int nf = 0; nf < loader->num_files(); nf++) { - int id = particle_id[i]; + SimuData *simu; + double *expfact; - for (int j = 0; j < 3; j++) - { - boxed->Pos[j][i] = (simu->Pos[j][id]-ranges[j][0])*mul[j]; - } - } + cout << format("Analyzing and selecting targets in file number %d / %d") % (nf+1) % loader->num_files() << endl; + simu = loader->loadFile(nf); - delete[] particle_id; + metric(simu, 0); + + selectBox(simu, targets, args_info); + split.push_back(targets.size() - previous_target_num); + previous_target_num = targets.size(); + } + + createBox(loader->getHeader(), targets, split, boxed, args_info); } int main(int argc, char **argv) @@ -587,6 +455,7 @@ int main(int argc, char **argv) generateMock_info args_info; generateMock_conf_params args_params; SimuData *simu, *simuOut; + SimulationLoader *loader; generateMock_conf_init(&args_info); generateMock_conf_params_init(&args_params); @@ -612,78 +481,92 @@ int main(int argc, char **argv) generateMock_conf_print_version(); - gadgetUnit=args_info.gadgetUnit_arg; - if (args_info.ramsesBase_given || args_info.ramsesId_given) { if (args_info.ramsesBase_given && args_info.ramsesId_given) { - simu = doLoadRamses(args_info.ramsesBase_arg, - args_info.ramsesId_arg, - args_info.axis_arg, false); + loader = ramsesLoader(args_info.ramsesBase_arg, + args_info.ramsesId_arg, + false, + NEED_POSITION|NEED_VELOCITY|NEED_GADGET_ID); } else { cerr << "Both ramsesBase and ramsesId are required to be able to load snapshots" << endl; return 1; } - - if (simu == 0) - { - cerr << "Error while loading" << endl; - return 1; - } } - else if (args_info.gadget_given || args_info.flash_given || args_info.multidark_given) + else if (args_info.gadget_given) { - if (args_info.gadget_given && args_info.flash_given) - { - cerr << "Do not know which file to use: Gadget or Flash ?" << endl; - return 1; - } - - if (args_info.multidark_given) { - simu = doLoadMultidark(args_info.multidark_arg); - } - - if (args_info.gadget_given) { - simu = doLoadSimulation(args_info.gadget_arg, args_info.axis_arg, false, myLoadGadget); - } - if (args_info.flash_given) { - simu = doLoadSimulation(args_info.flash_arg, args_info.axis_arg, false, loadFlashMulti); - } - - if (simu == 0) - { - cerr << "Error while loading " << endl; - return 1; - } + loader = gadgetLoader(args_info.gadget_arg, 1/args_info.gadgetUnit_arg, NEED_POSITION|NEED_VELOCITY|NEED_GADGET_ID); + } + else if (args_info.flash_given) + { + loader = flashLoader(args_info.flash_arg, NEED_POSITION|NEED_VELOCITY|NEED_GADGET_ID); + } + else if (args_info.multidark_given) + { + loader = multidarkLoader(args_info.multidark_arg); } else { - cerr << "Either a ramses snapshot or a gadget snapshot is required." << endl; + cerr << "A simulation snapshot is required to generate a mock catalog." << endl; return 1; } - cout << "Hubble = " << simu->Hubble << endl; - cout << "Boxsize = " << simu->BoxSize << endl; - cout << "Omega_M = " << simu->Omega_M << endl; - cout << "Omega_Lambda = " << simu->Omega_Lambda << endl; + + if (loader == 0) + { + cerr << "Error while loading " << endl; + return 1; + } + simu = loader->getHeader(); + { + SimuData *header = loader->getHeader(); + cout << "Hubble = " << header->Hubble << endl; + cout << "Boxsize = " << header->BoxSize << endl; + cout << "Omega_M = " << header->Omega_M << endl; + cout << "Omega_Lambda = " << header->Omega_Lambda << endl; + cout << "Subsample fraction: " << (args_info.subsample_given ? 1 : args_info.subsample_arg) << endl; + } double *expfact; - metricTransform(simu, args_info.axis_arg, args_info.preReShift_flag, - args_info.peculiarVelocities_flag, expfact, - args_info.cosmo_flag); + boost::function2 metricOperation= + boost::bind(metricTransform, _1, args_info.axis_arg, args_info.preReShift_flag, + args_info.peculiarVelocities_flag, _2, + args_info.cosmo_flag); if (args_info.inputParameter_given) - makeBoxFromParameter(simu, expfact, simuOut, args_info); + makeBoxFromParameter(loader->getHeader(), simuOut, args_info); else - makeBox(simu, expfact, simuOut, args_info); + makeBoxFromSimulation(loader, simuOut, metricOperation, args_info); - delete simu; + long loaded = 0; + for (int nf = 0; nf < loader->num_files(); nf++) + { + long num_targets = simuOut->as("snapshot_split")[nf]; + cout << format("Building box from particles in %d / %d") % (nf+1) % loader->num_files() << endl; + + if (num_targets == 0) + { + cout << "No particles selected there. Skipping." << endl; + continue; + } + + SimuData *simu = loader->loadFile(nf); + double *efac = new double[simu->NumPart]; + metricOperation(simu, efac); + buildBox(simu, num_targets, loaded, simuOut, efac); + + loaded += num_targets; + assert(loaded <= simuOut->NumPart); - generateOutput(simuOut, args_info.axis_arg, args_info.output_arg); + delete[] efac; + } - delete simuOut; + saveBox(simuOut, args_info.outputParameter_arg); + generateOutput(simuOut, args_info.axis_arg, + args_info.output_arg); + printf("Done!\n"); return 0; diff --git a/c_tools/mock/multidark_loader.cpp b/c_tools/mock/multidark_loader.cpp new file mode 100644 index 0000000..b37e4ef --- /dev/null +++ b/c_tools/mock/multidark_loader.cpp @@ -0,0 +1,108 @@ +#include +#include +#include +#include +#include +#include +#include "simulation_loader.hpp" + +using namespace std; +using namespace CosmoTool; + +class MultiDarkLoader: public SimulationLoader +{ +protected: + SimuData *header; + string darkname; +public: + MultiDarkLoader(const std::string& name, SimuData *h) + : darkname(name), header(h) + { + } + + ~MultiDarkLoader() + { + delete header; + } + + int num_files() + { + return 1; + } + + SimuData *getHeader() + { + return header; + } + + SimuData *loadFile(int id) + { + if (id != 0) + return 0; + + ifstream fp(darkname.c_str()); + SimuData *simu; + + fp >> simu->BoxSize >> simu->Omega_M >> simu->Hubble >> simu->time >> simu->NumPart; + simu->time = 1./(1.+simu->time); // convert to scale factor + simu->TotalNumPart = simu->NumPart; + simu->Omega_Lambda = 1.0 - simu->Omega_M; + + for (int k = 0; k < 3; k++) + simu->Pos[k] = new float[simu->NumPart]; + simu->Vel[2] = new float[simu->NumPart]; + simu->Id = new int[simu->NumPart]; + long *uniqueID = new long[simu->NumPart]; + + simu->new_attribute("uniqueID", uniqueID, delete_adaptor); + + cout << "loading multidark particles" << endl; + long actualNumPart = 0; + for (int i = 0; i < simu->NumPart; i++) { + + fp >> simu->Id[i] >> simu->Pos[0][i] >> simu->Pos[1][i] + >> simu->Pos[2][i] >> simu->Vel[2][i]; + + uniqueID[i] = 1; + //uniqueID[i] = 1 * simu->Id[i]; + + if (simu->Id[i] == -99 && + simu->Pos[0][i] == -99 && simu->Pos[1][i] == -99 && + simu->Pos[2][i] == -99 && simu->Vel[2][i] == -99) { + break; + } else { + actualNumPart++; + } + } + + simu->NumPart = actualNumPart; + simu->TotalNumPart = actualNumPart; + return simu; + } +}; + +SimulationLoader *multidarkLoader(const string& multidarkname) +{ + SimuData *header; + int actualNumPart; + ifstream fp(multidarkname.c_str()); + + cout << "opening multidark file " << multidarkname << endl; + if (!fp) + { + cout << "could not open file!" << endl; + return 0; + } + + header = new SimuData(); + fp >> header->BoxSize >> header->Omega_M >> header->Hubble >> header->time >> header->NumPart; + + header->time = 1./(1.+header->time); // convert to scale factor + header->TotalNumPart = header->NumPart; + header->Omega_Lambda = 1.0 - header->Omega_M; + + return new MultiDarkLoader(multidarkname, header); +} + + + diff --git a/c_tools/mock/ramses_loader.cpp b/c_tools/mock/ramses_loader.cpp new file mode 100644 index 0000000..8f9fb37 --- /dev/null +++ b/c_tools/mock/ramses_loader.cpp @@ -0,0 +1,81 @@ +#include +#include +#include +#include +#include "simulation_loader.hpp" + +using namespace std; +using namespace CosmoTool; + +class RamsesLoader: public SimulationLoader +{ +private: + int load_flags; + int _num_files; + int baseid; + bool double_precision; + SimuData *ramses_header; + string snapshot_name; +public: + RamsesLoader(const string& basename, int baseid, bool dp, SimuData *header, int flags, int _num) + : snapshot_name(basename), load_flags(flags), _num_files(_num), double_precision(dp), + ramses_header(header) + { + } + + ~RamsesLoader() + { + delete ramses_header; + } + + SimuData *getHeader() { + return ramses_header; + } + + int num_files() { + return _num_files; + } + + SimuData *loadFile(int id) { + SimuData *d; + + if (id >= _num_files) + return 0; + + d = loadRamsesSimu(snapshot_name.c_str(), baseid, id, double_precision, load_flags); + assert(d != 0); + + if (d->Id != 0) + { + long *uniqueID = new long[d->NumPart]; + for (long i = 0; i < d->NumPart; i++) + { + uniqueID[i] = d->Id[i]; + } + d->new_attribute("uniqueID", uniqueID, delete_adaptor); + } + + applyTransformations(d); + + return d; + } +}; + +SimulationLoader *ramsesLoader(const std::string& snapshot, int baseid, bool double_precision, int flags) +{ + SimuData *d, *header; + int num_files = 0; + + header = loadRamsesSimu(snapshot.c_str(), baseid, 0, double_precision, 0); + if (header == 0) + return 0; + + while ((d = loadRamsesSimu(snapshot.c_str(), baseid, num_files, double_precision, 0)) != 0) + { + num_files++; + delete d; + } + + return new RamsesLoader(snapshot, baseid, double_precision, header, flags, num_files); +} + diff --git a/c_tools/mock/simulation_loader.cpp b/c_tools/mock/simulation_loader.cpp new file mode 100644 index 0000000..2f7515f --- /dev/null +++ b/c_tools/mock/simulation_loader.cpp @@ -0,0 +1,15 @@ +#include +#include "simulation_loader.hpp" + +using namespace CosmoTool; + +void SimulationLoader::applyTransformations(SimuData *s) +{ + float redshift_gravity = do_redshift ? 1.0 : 0.0; + + for (int i = 0; i < s->NumPart; i++) + { + s->Pos[redshift_axis][i] += + redshift_gravity*s->Vel[redshift_axis][i]/100.; + } +} diff --git a/c_tools/mock/simulation_loader.hpp b/c_tools/mock/simulation_loader.hpp new file mode 100644 index 0000000..d96cb47 --- /dev/null +++ b/c_tools/mock/simulation_loader.hpp @@ -0,0 +1,49 @@ +#ifndef _MOCK_SIMULATION_LOADER_HPP +#define _MOCK_SIMULATION_LOADER_HPP + +#include +#include + +class SimulationLoader +{ +protected: + bool do_redshift; + int redshift_axis; + + SimulationLoader() + { + do_redshift = false; + redshift_axis = 2; + } + + void applyTransformations(CosmoTool::SimuData *s); + +public: + virtual ~SimulationLoader() {} + + void doRedshift(bool set = true) { do_redshift = set; } + void setVelAxis(int axis) { redshift_axis = axis; } + + virtual CosmoTool::SimuData *getHeader() = 0; + virtual int num_files() = 0; + virtual CosmoTool::SimuData* loadFile(int id) = 0; + +}; + +template +void delete_adaptor(void *ptr) +{ + T *ptr_T = reinterpret_cast(ptr); + + delete[] ptr_T; +} + + +// Unit length is the size of one Mpc in the simulation units +SimulationLoader *gadgetLoader(const std::string& snapshot, double Mpc_unitLength, int flags); +SimulationLoader *flashLoader(const std::string& snapshot, int flags); +SimulationLoader *multidarkLoader(const std::string& snapshot); +SimulationLoader *ramsesLoader(const std::string& snapshot, int baseid, bool double_precision, int flags); + + +#endif diff --git a/external/cosmotool/src/loadGadget.cpp b/external/cosmotool/src/loadGadget.cpp index a824d28..ee30d80 100644 --- a/external/cosmotool/src/loadGadget.cpp +++ b/external/cosmotool/src/loadGadget.cpp @@ -10,61 +10,41 @@ using namespace CosmoTool; using namespace std; -PurePositionData *CosmoTool::loadGadgetPosition(const char *fname) -{ - PurePositionData *data; - int p, n; - UnformattedRead f(fname); - GadgetHeader h; - - data = new PurePositionData; - f.beginCheckpoint(); - for (int i = 0; i < 6; i++) - h.npart[i] = f.readInt32(); - for (int i = 0; i < 6; i++) - h.mass[i] = f.readReal64(); - h.time = f.readReal64(); - h.redshift = f.readReal64(); - h.flag_sfr = f.readInt32(); - h.flag_feedback = f.readInt32(); - for (int i = 0; i < 6; i++) - h.npartTotal[i] = f.readInt32(); - h.flag_cooling = f.readInt32(); - h.num_files = f.readInt32(); - data->BoxSize = h.BoxSize = f.readReal64(); - h.Omega0 = f.readReal64(); - h.OmegaLambda = f.readReal64(); - h.HubbleParam = f.readReal64(); - f.endCheckpoint(true); - - data->NumPart = 0; - for(int k=0; k<5; k++) - data->NumPart += h.npart[k]; - - data->pos = new FCoordinates[data->NumPart]; - - f.beginCheckpoint(); - for(int k = 0, p = 0; k < 5; k++) { - for(int n = 0; n < h.npart[k]; n++) { - data->pos[p][0] = f.readReal32(); - data->pos[p][1] = f.readReal32(); - data->pos[p][2] = f.readReal32(); - p++; - } - } - f.endCheckpoint(); - - // Skip velocities - f.skip((long)data->NumPart*3+2*4); - // Skip ids - return data; +void loadGadgetHeader(UnformattedRead *f, GadgetHeader& h, SimuData *data, int id) +{ + f->beginCheckpoint(); + for (int i = 0; i < 6; i++) + h.npart[i] = f->readInt32(); + for (int i = 0; i < 6; i++) + h.mass[i] = f->readReal64(); + data->time = h.time = f->readReal64(); + h.redshift = f->readReal64(); + h.flag_sfr = f->readInt32(); + h.flag_feedback = f->readInt32(); + for (int i = 0; i < 6; i++) + h.npartTotal[i] = f->readInt32(); + h.flag_cooling = f->readInt32(); + h.num_files = f->readInt32(); + data->BoxSize = h.BoxSize = f->readReal64(); + data->Omega_M = h.Omega0 = f->readReal64(); + data->Omega_Lambda = h.OmegaLambda = f->readReal64(); + data->Hubble = h.HubbleParam = f->readReal64(); + f->endCheckpoint(true); + + long NumPart = 0, NumPartTotal = 0; + for(int k=0; k<6; k++) + { + NumPart += h.npart[k]; + NumPartTotal += (id < 0) ? h.npart[k] : h.npartTotal[k]; + } + data->NumPart = NumPart; + data->TotalNumPart = NumPartTotal; } - - - -SimuData *CosmoTool::loadGadgetMulti(const char *fname, int id, int loadflags, int GadgetFormat) +SimuData *CosmoTool::loadGadgetMulti(const char *fname, int id, + int loadflags, int GadgetFormat, + SimuFilter filter) { SimuData *data; int p, n; @@ -98,35 +78,11 @@ SimuData *CosmoTool::loadGadgetMulti(const char *fname, int id, int loadflags, i } long NumPart = 0, NumPartTotal = 0; - + try { - f->beginCheckpoint(); - for (int i = 0; i < 6; i++) - h.npart[i] = f->readInt32(); - for (int i = 0; i < 6; i++) - h.mass[i] = f->readReal64(); - data->time = h.time = f->readReal64(); - h.redshift = f->readReal64(); - h.flag_sfr = f->readInt32(); - h.flag_feedback = f->readInt32(); - for (int i = 0; i < 6; i++) - h.npartTotal[i] = f->readInt32(); - h.flag_cooling = f->readInt32(); - h.num_files = f->readInt32(); - data->BoxSize = h.BoxSize = f->readReal64(); - data->Omega_M = h.Omega0 = f->readReal64(); - data->Omega_Lambda = h.OmegaLambda = f->readReal64(); - data->Hubble = h.HubbleParam = f->readReal64(); - f->endCheckpoint(true); - - for(int k=0; k<6; k++) - { - NumPart += h.npart[k]; - NumPartTotal += (id < 0) ? h.npart[k] : h.npartTotal[k]; - } - data->NumPart = NumPart; - data->TotalNumPart = NumPartTotal; + loadGadgetHeader(f, h, data, id); + if (GadgetFormat == 1) velmul = sqrt(h.time); else if (GadgetFormat == 2) @@ -135,6 +91,9 @@ SimuData *CosmoTool::loadGadgetMulti(const char *fname, int id, int loadflags, i cerr << "unknown gadget format" << endl; abort(); } + + NumPart = data->NumPart; + NumPartTotal = data->TotalNumPart; } catch (const InvalidUnformattedAccess& e) { @@ -256,7 +215,7 @@ SimuData *CosmoTool::loadGadgetMulti(const char *fname, int id, int loadflags, i } catch (const InvalidUnformattedAccess& e) { - cerr << "Invalid formatted while reading ID" << endl; + cerr << "Invalid unformatted access while reading ID" << endl; delete f; delete data; return 0; diff --git a/external/cosmotool/src/loadGadget.hpp b/external/cosmotool/src/loadGadget.hpp index 69f0ea6..be49ad4 100644 --- a/external/cosmotool/src/loadGadget.hpp +++ b/external/cosmotool/src/loadGadget.hpp @@ -5,10 +5,9 @@ #include "loadSimu.hpp" namespace CosmoTool { - - PurePositionData *loadGadgetPosition(const char *fname); - SimuData *loadGadgetMulti(const char *fname, int id, int flags, int GadgetFormat = 1); + SimuData *loadGadgetMulti(const char *fname, int id, int flags, + int GadgetFormat = 1, SimuFilter filter = 0); // Only single snapshot supported void writeGadget(const char *fname, SimuData *data, int GadgetFormat = 1); diff --git a/external/cosmotool/src/loadSimu.hpp b/external/cosmotool/src/loadSimu.hpp index 5d9f64d..7a72259 100644 --- a/external/cosmotool/src/loadSimu.hpp +++ b/external/cosmotool/src/loadSimu.hpp @@ -1,6 +1,8 @@ #ifndef __COSMOTOOLBOX_HPP #define __COSMOTOOLBOX_HPP +#include +#include namespace CosmoTool { @@ -9,9 +11,24 @@ namespace CosmoTool static const int NEED_VELOCITY = 4; static const int NEED_TYPE = 8; + struct SimuParticle + { + float Pos[3]; + float Vel[3]; + int type; + int id; + + bool flag_vel, flag_type, flag_id; + }; + + typedef bool (*SimuFilter)(const SimuParticle& p); + class SimuData { public: + typedef void (*FreeFunction)(void *); + typedef std::map > AttributeMap; + float BoxSize; float time; float Hubble; @@ -24,10 +41,12 @@ namespace CosmoTool int *Id; float *Pos[3]; float *Vel[3]; - float *uniqueID; int *type; + + AttributeMap attributes; + public: - SimuData() : Id(0),NumPart(0),type(0), uniqueID(0) { Pos[0]=Pos[1]=Pos[2]=0; Vel[0]=Vel[1]=Vel[2]=0; uniqueID=0;} + SimuData() : Id(0),NumPart(0),type(0) { Pos[0]=Pos[1]=Pos[2]=0; Vel[0]=Vel[1]=Vel[2]=0; } ~SimuData() { for (int j = 0; j < 3; j++) @@ -41,9 +60,37 @@ namespace CosmoTool delete[] type; if (Id) delete[] Id; - if (uniqueID) - delete[] uniqueID; + + for (AttributeMap::iterator i = attributes.begin(); + i != attributes.end(); + ++i) + { + if (i->second.second) + i->second.second(i->second.first); + } } + + template + T *as(const std::string& n) + { + AttributeMap::iterator i = attributes.find(n); + if (i == attributes.end()) + return 0; + + return reinterpret_cast(i->second.first); + } + + void new_attribute(const std::string& n, void *p, FreeFunction free_func) + { + AttributeMap::iterator i = attributes.find(n); + if (i != attributes.end()) + { + if (i->second.second) + i->second.second(i->second.first); + } + attributes[n] = std::make_pair(p, free_func); + } + }; }; diff --git a/external/external_build.cmake b/external/external_build.cmake index 8835789..8cfb26d 100644 --- a/external/external_build.cmake +++ b/external/external_build.cmake @@ -26,7 +26,7 @@ IF(INTERNAL_GENGETOPT) ENDIF(INTERNAL_GENGETOPT) IF(INTERNAL_HDF5) - SET(HDF5_URL "http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-1.8.9.tar.gz" CACHE STRING "URL to download HDF5 from") + SET(HDF5_URL "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.9/src/hdf5-1.8.9.tar.gz" CACHE STRING "URL to download HDF5 from") mark_as_advanced(HDF5_URL) ENDIF(INTERNAL_HDF5) diff --git a/pipeline/generateCatalog.py b/pipeline/generateCatalog.py index b69ca74..5941933 100755 --- a/pipeline/generateCatalog.py +++ b/pipeline/generateCatalog.py @@ -9,8 +9,8 @@ import pickle # ------------------------------------------------------------------------------ -if (len(sys.argv) == 0): - print "Usage: ./anylyzeVoids.py parameter_file.py" +if (len(sys.argv) == 1): + print "Usage: ./analyzeVoids.py parameter_file.py" exit(-1) if (len(sys.argv) > 1): diff --git a/pipeline/prepareCatalogs.py b/pipeline/prepareCatalogs.in.py similarity index 99% rename from pipeline/prepareCatalogs.py rename to pipeline/prepareCatalogs.in.py index 66f9c25..e1daea4 100755 --- a/pipeline/prepareCatalogs.py +++ b/pipeline/prepareCatalogs.in.py @@ -81,8 +81,8 @@ endCatalogStage = 4 startAPStage = 1 endAPStage = 7 -ZOBOV_PATH = os.getenv("PWD")+"/../zobov/" -CTOOLS_PATH = os.getenv("PWD")+"/../c_tools/" +ZOBOV_PATH = "@CMAKE_BINARY_DIR@/zobov/" +CTOOLS_PATH = "@CMAKE_BINARY_DIR@/c_tools/" freshStack = True errorBars = "CALCULATED" numIncoherentRuns = 100 diff --git a/python_tools/void_python_tools/apTools/chi2/velocityProfileFitNative.c b/python_tools/void_python_tools/apTools/chi2/velocityProfileFitNative.c deleted file mode 100644 index 6c7837c..0000000 --- a/python_tools/void_python_tools/apTools/chi2/velocityProfileFitNative.c +++ /dev/null @@ -1,10841 +0,0 @@ -/* Generated by Cython 0.15.1 on Wed Oct 31 08:41:16 2012 */ - -#define PY_SSIZE_T_CLEAN -#include "Python.h" -#ifndef Py_PYTHON_H - #error Python headers needed to compile C extensions, please install development version of Python. -#else - -#include /* For offsetof */ -#ifndef offsetof -#define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) -#endif - -#if !defined(WIN32) && !defined(MS_WINDOWS) - #ifndef __stdcall - #define __stdcall - #endif - #ifndef __cdecl - #define __cdecl - #endif - #ifndef __fastcall - #define __fastcall - #endif -#endif - -#ifndef DL_IMPORT - #define DL_IMPORT(t) t -#endif -#ifndef DL_EXPORT - #define DL_EXPORT(t) t -#endif - -#ifndef PY_LONG_LONG - #define PY_LONG_LONG LONG_LONG -#endif - -#if PY_VERSION_HEX < 0x02040000 - #define METH_COEXIST 0 - #define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type) - #define PyDict_Contains(d,o) PySequence_Contains(d,o) -#endif - -#if PY_VERSION_HEX < 0x02050000 - typedef int Py_ssize_t; - #define PY_SSIZE_T_MAX INT_MAX - #define PY_SSIZE_T_MIN INT_MIN - #define PY_FORMAT_SIZE_T "" - #define PyInt_FromSsize_t(z) PyInt_FromLong(z) - #define PyInt_AsSsize_t(o) __Pyx_PyInt_AsInt(o) - #define PyNumber_Index(o) PyNumber_Int(o) - #define PyIndex_Check(o) PyNumber_Check(o) - #define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message) -#endif - -#if PY_VERSION_HEX < 0x02060000 - #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt) - #define Py_TYPE(ob) (((PyObject*)(ob))->ob_type) - #define Py_SIZE(ob) (((PyVarObject*)(ob))->ob_size) - #define PyVarObject_HEAD_INIT(type, size) \ - PyObject_HEAD_INIT(type) size, - #define PyType_Modified(t) - - typedef struct { - void *buf; - PyObject *obj; - Py_ssize_t len; - Py_ssize_t itemsize; - int readonly; - int ndim; - char *format; - Py_ssize_t *shape; - Py_ssize_t *strides; - Py_ssize_t *suboffsets; - void *internal; - } Py_buffer; - - #define PyBUF_SIMPLE 0 - #define PyBUF_WRITABLE 0x0001 - #define PyBUF_FORMAT 0x0004 - #define PyBUF_ND 0x0008 - #define PyBUF_STRIDES (0x0010 | PyBUF_ND) - #define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES) - #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES) - #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES) - #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES) - -#endif - -#if PY_MAJOR_VERSION < 3 - #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" -#else - #define __Pyx_BUILTIN_MODULE_NAME "builtins" -#endif - -#if PY_MAJOR_VERSION >= 3 - #define Py_TPFLAGS_CHECKTYPES 0 - #define Py_TPFLAGS_HAVE_INDEX 0 -#endif - -#if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3) - #define Py_TPFLAGS_HAVE_NEWBUFFER 0 -#endif - -#if PY_MAJOR_VERSION >= 3 - #define PyBaseString_Type PyUnicode_Type - #define PyStringObject PyUnicodeObject - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -#endif - -#if PY_VERSION_HEX < 0x02060000 - #define PyBytesObject PyStringObject - #define PyBytes_Type PyString_Type - #define PyBytes_Check PyString_Check - #define PyBytes_CheckExact PyString_CheckExact - #define PyBytes_FromString PyString_FromString - #define PyBytes_FromStringAndSize PyString_FromStringAndSize - #define PyBytes_FromFormat PyString_FromFormat - #define PyBytes_DecodeEscape PyString_DecodeEscape - #define PyBytes_AsString PyString_AsString - #define PyBytes_AsStringAndSize PyString_AsStringAndSize - #define PyBytes_Size PyString_Size - #define PyBytes_AS_STRING PyString_AS_STRING - #define PyBytes_GET_SIZE PyString_GET_SIZE - #define PyBytes_Repr PyString_Repr - #define PyBytes_Concat PyString_Concat - #define PyBytes_ConcatAndDel PyString_ConcatAndDel -#endif - -#if PY_VERSION_HEX < 0x02060000 - #define PySet_Check(obj) PyObject_TypeCheck(obj, &PySet_Type) - #define PyFrozenSet_Check(obj) PyObject_TypeCheck(obj, &PyFrozenSet_Type) -#endif -#ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) -#endif - -#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) - -#if PY_MAJOR_VERSION >= 3 - #define PyIntObject PyLongObject - #define PyInt_Type PyLong_Type - #define PyInt_Check(op) PyLong_Check(op) - #define PyInt_CheckExact(op) PyLong_CheckExact(op) - #define PyInt_FromString PyLong_FromString - #define PyInt_FromUnicode PyLong_FromUnicode - #define PyInt_FromLong PyLong_FromLong - #define PyInt_FromSize_t PyLong_FromSize_t - #define PyInt_FromSsize_t PyLong_FromSsize_t - #define PyInt_AsLong PyLong_AsLong - #define PyInt_AS_LONG PyLong_AS_LONG - #define PyInt_AsSsize_t PyLong_AsSsize_t - #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask - #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask -#endif - -#if PY_MAJOR_VERSION >= 3 - #define PyBoolObject PyLongObject -#endif - -#if PY_VERSION_HEX < 0x03020000 - typedef long Py_hash_t; - #define __Pyx_PyInt_FromHash_t PyInt_FromLong - #define __Pyx_PyInt_AsHash_t PyInt_AsLong -#else - #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t - #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t -#endif - - -#if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) - #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) -#else - #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) - #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) -#endif - -#if (PY_MAJOR_VERSION < 3) || (PY_VERSION_HEX >= 0x03010300) - #define __Pyx_PySequence_GetSlice(obj, a, b) PySequence_GetSlice(obj, a, b) - #define __Pyx_PySequence_SetSlice(obj, a, b, value) PySequence_SetSlice(obj, a, b, value) - #define __Pyx_PySequence_DelSlice(obj, a, b) PySequence_DelSlice(obj, a, b) -#else - #define __Pyx_PySequence_GetSlice(obj, a, b) (unlikely(!(obj)) ? \ - (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), (PyObject*)0) : \ - (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_GetSlice(obj, a, b)) : \ - (PyErr_Format(PyExc_TypeError, "'%.200s' object is unsliceable", (obj)->ob_type->tp_name), (PyObject*)0))) - #define __Pyx_PySequence_SetSlice(obj, a, b, value) (unlikely(!(obj)) ? \ - (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \ - (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_SetSlice(obj, a, b, value)) : \ - (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice assignment", (obj)->ob_type->tp_name), -1))) - #define __Pyx_PySequence_DelSlice(obj, a, b) (unlikely(!(obj)) ? \ - (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \ - (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_DelSlice(obj, a, b)) : \ - (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice deletion", (obj)->ob_type->tp_name), -1))) -#endif - -#if PY_MAJOR_VERSION >= 3 - #define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func)) -#endif - -#if PY_VERSION_HEX < 0x02050000 - #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),((char *)(n))) - #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a)) - #define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),((char *)(n))) -#else - #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),(n)) - #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a)) - #define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),(n)) -#endif - -#if PY_VERSION_HEX < 0x02050000 - #define __Pyx_NAMESTR(n) ((char *)(n)) - #define __Pyx_DOCSTR(n) ((char *)(n)) -#else - #define __Pyx_NAMESTR(n) (n) - #define __Pyx_DOCSTR(n) (n) -#endif - -#ifndef __PYX_EXTERN_C - #ifdef __cplusplus - #define __PYX_EXTERN_C extern "C" - #else - #define __PYX_EXTERN_C extern - #endif -#endif - -#if defined(WIN32) || defined(MS_WINDOWS) -#define _USE_MATH_DEFINES -#endif -#include -#define __PYX_HAVE__voidProject__apTools__chi2__velocityProfileFitNative -#define __PYX_HAVE_API__voidProject__apTools__chi2__velocityProfileFitNative -#include "stdio.h" -#include "stdlib.h" -#include "numpy/arrayobject.h" -#include "numpy/ufuncobject.h" -#include "gsl/gsl_sf_erf.h" -#include "math.h" -#ifdef _OPENMP -#include -#endif /* _OPENMP */ - -#ifdef PYREX_WITHOUT_ASSERTIONS -#define CYTHON_WITHOUT_ASSERTIONS -#endif - - -/* inline attribute */ -#ifndef CYTHON_INLINE - #if defined(__GNUC__) - #define CYTHON_INLINE __inline__ - #elif defined(_MSC_VER) - #define CYTHON_INLINE __inline - #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define CYTHON_INLINE inline - #else - #define CYTHON_INLINE - #endif -#endif - -/* unused attribute */ -#ifndef CYTHON_UNUSED -# if defined(__GNUC__) -# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) -# define CYTHON_UNUSED __attribute__ ((__unused__)) -# else -# define CYTHON_UNUSED -# endif -# elif defined(__ICC) || defined(__INTEL_COMPILER) -# define CYTHON_UNUSED __attribute__ ((__unused__)) -# else -# define CYTHON_UNUSED -# endif -#endif - -typedef struct {PyObject **p; char *s; const long n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/ - - -/* Type Conversion Predeclarations */ - -#define __Pyx_PyBytes_FromUString(s) PyBytes_FromString((char*)s) -#define __Pyx_PyBytes_AsUString(s) ((unsigned char*) PyBytes_AsString(s)) - -#define __Pyx_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None) -#define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False)) -static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); -static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x); - -static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); -static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); -static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*); - -#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) - - -#ifdef __GNUC__ - /* Test for GCC > 2.95 */ - #if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)) - #define likely(x) __builtin_expect(!!(x), 1) - #define unlikely(x) __builtin_expect(!!(x), 0) - #else /* __GNUC__ > 2 ... */ - #define likely(x) (x) - #define unlikely(x) (x) - #endif /* __GNUC__ > 2 ... */ -#else /* __GNUC__ */ - #define likely(x) (x) - #define unlikely(x) (x) -#endif /* __GNUC__ */ - -static PyObject *__pyx_m; -static PyObject *__pyx_b; -static PyObject *__pyx_empty_tuple; -static PyObject *__pyx_empty_bytes; -static int __pyx_lineno; -static int __pyx_clineno = 0; -static const char * __pyx_cfilenm= __FILE__; -static const char *__pyx_filename; - - -#if !defined(CYTHON_CCOMPLEX) - #if defined(__cplusplus) - #define CYTHON_CCOMPLEX 1 - #elif defined(_Complex_I) - #define CYTHON_CCOMPLEX 1 - #else - #define CYTHON_CCOMPLEX 0 - #endif -#endif - -#if CYTHON_CCOMPLEX - #ifdef __cplusplus - #include - #else - #include - #endif -#endif - -#if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__) - #undef _Complex_I - #define _Complex_I 1.0fj -#endif - -static const char *__pyx_f[] = { - "velocityProfileFitNative.pyx", - "numpy.pxd", -}; - -/* "numpy.pxd":719 - * # in Cython to enable them only on the right systems. - * - * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< - * ctypedef npy_int16 int16_t - * ctypedef npy_int32 int32_t - */ -typedef npy_int8 __pyx_t_5numpy_int8_t; - -/* "numpy.pxd":720 - * - * ctypedef npy_int8 int8_t - * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< - * ctypedef npy_int32 int32_t - * ctypedef npy_int64 int64_t - */ -typedef npy_int16 __pyx_t_5numpy_int16_t; - -/* "numpy.pxd":721 - * ctypedef npy_int8 int8_t - * ctypedef npy_int16 int16_t - * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< - * ctypedef npy_int64 int64_t - * #ctypedef npy_int96 int96_t - */ -typedef npy_int32 __pyx_t_5numpy_int32_t; - -/* "numpy.pxd":722 - * ctypedef npy_int16 int16_t - * ctypedef npy_int32 int32_t - * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< - * #ctypedef npy_int96 int96_t - * #ctypedef npy_int128 int128_t - */ -typedef npy_int64 __pyx_t_5numpy_int64_t; - -/* "numpy.pxd":726 - * #ctypedef npy_int128 int128_t - * - * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< - * ctypedef npy_uint16 uint16_t - * ctypedef npy_uint32 uint32_t - */ -typedef npy_uint8 __pyx_t_5numpy_uint8_t; - -/* "numpy.pxd":727 - * - * ctypedef npy_uint8 uint8_t - * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< - * ctypedef npy_uint32 uint32_t - * ctypedef npy_uint64 uint64_t - */ -typedef npy_uint16 __pyx_t_5numpy_uint16_t; - -/* "numpy.pxd":728 - * ctypedef npy_uint8 uint8_t - * ctypedef npy_uint16 uint16_t - * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< - * ctypedef npy_uint64 uint64_t - * #ctypedef npy_uint96 uint96_t - */ -typedef npy_uint32 __pyx_t_5numpy_uint32_t; - -/* "numpy.pxd":729 - * ctypedef npy_uint16 uint16_t - * ctypedef npy_uint32 uint32_t - * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< - * #ctypedef npy_uint96 uint96_t - * #ctypedef npy_uint128 uint128_t - */ -typedef npy_uint64 __pyx_t_5numpy_uint64_t; - -/* "numpy.pxd":733 - * #ctypedef npy_uint128 uint128_t - * - * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< - * ctypedef npy_float64 float64_t - * #ctypedef npy_float80 float80_t - */ -typedef npy_float32 __pyx_t_5numpy_float32_t; - -/* "numpy.pxd":734 - * - * ctypedef npy_float32 float32_t - * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< - * #ctypedef npy_float80 float80_t - * #ctypedef npy_float128 float128_t - */ -typedef npy_float64 __pyx_t_5numpy_float64_t; - -/* "numpy.pxd":743 - * # The int types are mapped a bit surprising -- - * # numpy.int corresponds to 'l' and numpy.long to 'q' - * ctypedef npy_long int_t # <<<<<<<<<<<<<< - * ctypedef npy_longlong long_t - * ctypedef npy_longlong longlong_t - */ -typedef npy_long __pyx_t_5numpy_int_t; - -/* "numpy.pxd":744 - * # numpy.int corresponds to 'l' and numpy.long to 'q' - * ctypedef npy_long int_t - * ctypedef npy_longlong long_t # <<<<<<<<<<<<<< - * ctypedef npy_longlong longlong_t - * - */ -typedef npy_longlong __pyx_t_5numpy_long_t; - -/* "numpy.pxd":745 - * ctypedef npy_long int_t - * ctypedef npy_longlong long_t - * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< - * - * ctypedef npy_ulong uint_t - */ -typedef npy_longlong __pyx_t_5numpy_longlong_t; - -/* "numpy.pxd":747 - * ctypedef npy_longlong longlong_t - * - * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< - * ctypedef npy_ulonglong ulong_t - * ctypedef npy_ulonglong ulonglong_t - */ -typedef npy_ulong __pyx_t_5numpy_uint_t; - -/* "numpy.pxd":748 - * - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< - * ctypedef npy_ulonglong ulonglong_t - * - */ -typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - -/* "numpy.pxd":749 - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t - * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< - * - * ctypedef npy_intp intp_t - */ -typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - -/* "numpy.pxd":751 - * ctypedef npy_ulonglong ulonglong_t - * - * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< - * ctypedef npy_uintp uintp_t - * - */ -typedef npy_intp __pyx_t_5numpy_intp_t; - -/* "numpy.pxd":752 - * - * ctypedef npy_intp intp_t - * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< - * - * ctypedef npy_double float_t - */ -typedef npy_uintp __pyx_t_5numpy_uintp_t; - -/* "numpy.pxd":754 - * ctypedef npy_uintp uintp_t - * - * ctypedef npy_double float_t # <<<<<<<<<<<<<< - * ctypedef npy_double double_t - * ctypedef npy_longdouble longdouble_t - */ -typedef npy_double __pyx_t_5numpy_float_t; - -/* "numpy.pxd":755 - * - * ctypedef npy_double float_t - * ctypedef npy_double double_t # <<<<<<<<<<<<<< - * ctypedef npy_longdouble longdouble_t - * - */ -typedef npy_double __pyx_t_5numpy_double_t; - -/* "numpy.pxd":756 - * ctypedef npy_double float_t - * ctypedef npy_double double_t - * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< - * - * ctypedef npy_cfloat cfloat_t - */ -typedef npy_longdouble __pyx_t_5numpy_longdouble_t; - -/* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":8 - * - * DTYPE = np.double - * ctypedef np.double_t DTYPE_t # <<<<<<<<<<<<<< - * - * - */ -typedef __pyx_t_5numpy_double_t __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t; - -#if CYTHON_CCOMPLEX - #ifdef __cplusplus - typedef ::std::complex< float > __pyx_t_float_complex; - #else - typedef float _Complex __pyx_t_float_complex; - #endif -#else - typedef struct { float real, imag; } __pyx_t_float_complex; -#endif - -#if CYTHON_CCOMPLEX - #ifdef __cplusplus - typedef ::std::complex< double > __pyx_t_double_complex; - #else - typedef double _Complex __pyx_t_double_complex; - #endif -#else - typedef struct { double real, imag; } __pyx_t_double_complex; -#endif - -/*--- Type declarations ---*/ - -/* "numpy.pxd":758 - * ctypedef npy_longdouble longdouble_t - * - * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< - * ctypedef npy_cdouble cdouble_t - * ctypedef npy_clongdouble clongdouble_t - */ -typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - -/* "numpy.pxd":759 - * - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< - * ctypedef npy_clongdouble clongdouble_t - * - */ -typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - -/* "numpy.pxd":760 - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t - * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<< - * - * ctypedef npy_cdouble complex_t - */ -typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; - -/* "numpy.pxd":762 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< - * - * cdef inline object PyArray_MultiIterNew1(a): - */ -typedef npy_cdouble __pyx_t_5numpy_complex_t; - - -#ifndef CYTHON_REFNANNY - #define CYTHON_REFNANNY 0 -#endif - -#if CYTHON_REFNANNY - typedef struct { - void (*INCREF)(void*, PyObject*, int); - void (*DECREF)(void*, PyObject*, int); - void (*GOTREF)(void*, PyObject*, int); - void (*GIVEREF)(void*, PyObject*, int); - void* (*SetupContext)(const char*, int, const char*); - void (*FinishContext)(void**); - } __Pyx_RefNannyAPIStruct; - static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; - static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); /*proto*/ - #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; - #define __Pyx_RefNannySetupContext(name) __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) - #define __Pyx_RefNannyFinishContext() __Pyx_RefNanny->FinishContext(&__pyx_refnanny) - #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) - #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) - #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) - #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) -#else - #define __Pyx_RefNannyDeclarations - #define __Pyx_RefNannySetupContext(name) - #define __Pyx_RefNannyFinishContext() - #define __Pyx_INCREF(r) Py_INCREF(r) - #define __Pyx_DECREF(r) Py_DECREF(r) - #define __Pyx_GOTREF(r) - #define __Pyx_GIVEREF(r) - #define __Pyx_XINCREF(r) Py_XINCREF(r) - #define __Pyx_XDECREF(r) Py_XDECREF(r) - #define __Pyx_XGOTREF(r) - #define __Pyx_XGIVEREF(r) -#endif /* CYTHON_REFNANNY */ - -static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/ - -/* Run-time type information about structs used with buffers */ -struct __Pyx_StructField_; - -typedef struct { - const char* name; /* for error messages only */ - struct __Pyx_StructField_* fields; - size_t size; /* sizeof(type) */ - char typegroup; /* _R_eal, _C_omplex, Signed _I_nt, _U_nsigned int, _S_truct, _P_ointer, _O_bject */ -} __Pyx_TypeInfo; - -typedef struct __Pyx_StructField_ { - __Pyx_TypeInfo* type; - const char* name; - size_t offset; -} __Pyx_StructField; - -typedef struct { - __Pyx_StructField* field; - size_t parent_offset; -} __Pyx_BufFmt_StackElem; - - -static CYTHON_INLINE int __Pyx_GetBufferAndValidate(Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack); -static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info); - -static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /*proto*/ - -static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); - -static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); - -static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); /*proto*/ -#define __Pyx_BufPtrStrided1d(type, buf, i0, s0) (type)((char*)buf + i0 * s0) - -static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/ -static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/ - -static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, - Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/ - -static void __Pyx_RaiseDoubleKeywordsError( - const char* func_name, PyObject* kw_name); /*proto*/ - -static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name); /*proto*/ - -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /*proto*/ - -static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, - const char *name, int exact); /*proto*/ - -static void __Pyx_RaiseBufferFallbackError(void); /*proto*/ - -static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); - -static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index); /*proto*/ -#if PY_MAJOR_VERSION < 3 -static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags); -static void __Pyx_ReleaseBuffer(Py_buffer *view); -#else -#define __Pyx_GetBuffer PyObject_GetBuffer -#define __Pyx_ReleaseBuffer PyBuffer_Release -#endif - -Py_ssize_t __Pyx_zeros[] = {0}; -Py_ssize_t __Pyx_minusones[] = {-1}; - -static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, long level); /*proto*/ - -#if CYTHON_CCOMPLEX - #ifdef __cplusplus - #define __Pyx_CREAL(z) ((z).real()) - #define __Pyx_CIMAG(z) ((z).imag()) - #else - #define __Pyx_CREAL(z) (__real__(z)) - #define __Pyx_CIMAG(z) (__imag__(z)) - #endif -#else - #define __Pyx_CREAL(z) ((z).real) - #define __Pyx_CIMAG(z) ((z).imag) -#endif - -#if defined(_WIN32) && defined(__cplusplus) && CYTHON_CCOMPLEX - #define __Pyx_SET_CREAL(z,x) ((z).real(x)) - #define __Pyx_SET_CIMAG(z,y) ((z).imag(y)) -#else - #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x) - #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y) -#endif - -static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float); - -#if CYTHON_CCOMPLEX - #define __Pyx_c_eqf(a, b) ((a)==(b)) - #define __Pyx_c_sumf(a, b) ((a)+(b)) - #define __Pyx_c_difff(a, b) ((a)-(b)) - #define __Pyx_c_prodf(a, b) ((a)*(b)) - #define __Pyx_c_quotf(a, b) ((a)/(b)) - #define __Pyx_c_negf(a) (-(a)) - #ifdef __cplusplus - #define __Pyx_c_is_zerof(z) ((z)==(float)0) - #define __Pyx_c_conjf(z) (::std::conj(z)) - #if 1 - #define __Pyx_c_absf(z) (::std::abs(z)) - #define __Pyx_c_powf(a, b) (::std::pow(a, b)) - #endif - #else - #define __Pyx_c_is_zerof(z) ((z)==0) - #define __Pyx_c_conjf(z) (conjf(z)) - #if 1 - #define __Pyx_c_absf(z) (cabsf(z)) - #define __Pyx_c_powf(a, b) (cpowf(a, b)) - #endif - #endif -#else - static CYTHON_INLINE int __Pyx_c_eqf(__pyx_t_float_complex, __pyx_t_float_complex); - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sumf(__pyx_t_float_complex, __pyx_t_float_complex); - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_difff(__pyx_t_float_complex, __pyx_t_float_complex); - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prodf(__pyx_t_float_complex, __pyx_t_float_complex); - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quotf(__pyx_t_float_complex, __pyx_t_float_complex); - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_negf(__pyx_t_float_complex); - static CYTHON_INLINE int __Pyx_c_is_zerof(__pyx_t_float_complex); - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conjf(__pyx_t_float_complex); - #if 1 - static CYTHON_INLINE float __Pyx_c_absf(__pyx_t_float_complex); - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_powf(__pyx_t_float_complex, __pyx_t_float_complex); - #endif -#endif - -static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double); - -#if CYTHON_CCOMPLEX - #define __Pyx_c_eq(a, b) ((a)==(b)) - #define __Pyx_c_sum(a, b) ((a)+(b)) - #define __Pyx_c_diff(a, b) ((a)-(b)) - #define __Pyx_c_prod(a, b) ((a)*(b)) - #define __Pyx_c_quot(a, b) ((a)/(b)) - #define __Pyx_c_neg(a) (-(a)) - #ifdef __cplusplus - #define __Pyx_c_is_zero(z) ((z)==(double)0) - #define __Pyx_c_conj(z) (::std::conj(z)) - #if 1 - #define __Pyx_c_abs(z) (::std::abs(z)) - #define __Pyx_c_pow(a, b) (::std::pow(a, b)) - #endif - #else - #define __Pyx_c_is_zero(z) ((z)==0) - #define __Pyx_c_conj(z) (conj(z)) - #if 1 - #define __Pyx_c_abs(z) (cabs(z)) - #define __Pyx_c_pow(a, b) (cpow(a, b)) - #endif - #endif -#else - static CYTHON_INLINE int __Pyx_c_eq(__pyx_t_double_complex, __pyx_t_double_complex); - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum(__pyx_t_double_complex, __pyx_t_double_complex); - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff(__pyx_t_double_complex, __pyx_t_double_complex); - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod(__pyx_t_double_complex, __pyx_t_double_complex); - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot(__pyx_t_double_complex, __pyx_t_double_complex); - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg(__pyx_t_double_complex); - static CYTHON_INLINE int __Pyx_c_is_zero(__pyx_t_double_complex); - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj(__pyx_t_double_complex); - #if 1 - static CYTHON_INLINE double __Pyx_c_abs(__pyx_t_double_complex); - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow(__pyx_t_double_complex, __pyx_t_double_complex); - #endif -#endif - -static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *); - -static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject *); - -static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject *); - -static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject *); - -static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject *); - -static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject *); - -static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject *); - -static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject *); - -static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject *); - -static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject *); - -static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject *); - -static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject *); - -static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject *); - -static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject *); - -static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject *); - -static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject *); - -static int __Pyx_check_binary_version(void); - -static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict); /*proto*/ - -static PyObject *__Pyx_ImportModule(const char *name); /*proto*/ - -static void __Pyx_AddTraceback(const char *funcname, int __pyx_clineno, - int __pyx_lineno, const char *__pyx_filename); /*proto*/ - -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/ - -/* Module declarations from 'cython.cython.view' */ - -/* Module declarations from 'cython' */ - -/* Module declarations from 'cpython.buffer' */ - -/* Module declarations from 'cpython.ref' */ - -/* Module declarations from 'libc.stdio' */ - -/* Module declarations from 'cpython.object' */ - -/* Module declarations from 'libc.stdlib' */ - -/* Module declarations from 'numpy' */ - -/* Module declarations from 'numpy' */ -static PyTypeObject *__pyx_ptype_5numpy_dtype = 0; -static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0; -static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0; -static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0; -static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0; -static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *); /*proto*/ -static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *, PyObject *); /*proto*/ -static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *, PyObject *, PyObject *); /*proto*/ -static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *, PyObject *, PyObject *, PyObject *); /*proto*/ -static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *, PyObject *, PyObject *, PyObject *, PyObject *); /*proto*/ -static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *, char *, char *, int *); /*proto*/ -static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *, PyObject *); /*proto*/ -static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *); /*proto*/ - -/* Module declarations from 'voidProject.apTools.chi2.velocityProfileFitNative' */ -static __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_11voidProject_7apTools_4chi2_24velocityProfileFitNative_sqrt_2pi; -static __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_11voidProject_7apTools_4chi2_24velocityProfileFitNative_sq2; -static __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_11voidProject_7apTools_4chi2_24velocityProfileFitNative_sqrt_pi_2; -static PyObject *__pyx_f_11voidProject_7apTools_4chi2_24velocityProfileFitNative_ellipsoid_fun_internal(PyObject *, PyArrayObject *, PyArrayObject *); /*proto*/ -static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t = { "DTYPE_t", NULL, sizeof(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t), 'R' }; -#define __Pyx_MODULE_NAME "voidProject.apTools.chi2.velocityProfileFitNative" -int __pyx_module_is_main_voidProject__apTools__chi2__velocityProfileFitNative = 0; - -/* Implementation of 'voidProject.apTools.chi2.velocityProfileFitNative' */ -static PyObject *__pyx_builtin_range; -static PyObject *__pyx_builtin_ValueError; -static PyObject *__pyx_builtin_RuntimeError; -static char __pyx_k_1[] = "Invalid type for x_a or x_b"; -static char __pyx_k_3[] = "ndarray is not C contiguous"; -static char __pyx_k_5[] = "ndarray is not Fortran contiguous"; -static char __pyx_k_7[] = "Non-native byte order not supported"; -static char __pyx_k_9[] = "unknown dtype code in numpy.pxd (%d)"; -static char __pyx_k_10[] = "Format string allocated too short, see comment in numpy.pxd"; -static char __pyx_k_13[] = "Format string allocated too short."; -static char __pyx_k_15[] = "chi2_ellipsoid_aniso"; -static char __pyx_k_16[] = "chi2_ellipsoid_aniso2"; -static char __pyx_k_17[] = "chi2_ellipsoid_aniso3"; -static char __pyx_k_18[] = "chi2_ellipsoid_aniso4"; -static char __pyx_k_19[] = "chi2_ellipsoid_aniso5"; -static char __pyx_k_20[] = "chi2_ellipsoid_aniso6"; -static char __pyx_k_21[] = "voidProject.apTools.chi2.velocityProfileFitNative"; -static char __pyx_k__B[] = "B"; -static char __pyx_k__H[] = "H"; -static char __pyx_k__I[] = "I"; -static char __pyx_k__L[] = "L"; -static char __pyx_k__N[] = "N"; -static char __pyx_k__O[] = "O"; -static char __pyx_k__Q[] = "Q"; -static char __pyx_k__b[] = "b"; -static char __pyx_k__d[] = "d"; -static char __pyx_k__f[] = "f"; -static char __pyx_k__g[] = "g"; -static char __pyx_k__h[] = "h"; -static char __pyx_k__i[] = "i"; -static char __pyx_k__l[] = "l"; -static char __pyx_k__p[] = "p"; -static char __pyx_k__q[] = "q"; -static char __pyx_k__Zd[] = "Zd"; -static char __pyx_k__Zf[] = "Zf"; -static char __pyx_k__Zg[] = "Zg"; -static char __pyx_k__np[] = "np"; -static char __pyx_k__pi[] = "pi"; -static char __pyx_k__x_a[] = "x_a"; -static char __pyx_k__x_b[] = "x_b"; -static char __pyx_k__data[] = "data"; -static char __pyx_k__size[] = "size"; -static char __pyx_k__DTYPE[] = "DTYPE"; -static char __pyx_k__array[] = "array"; -static char __pyx_k__dtype[] = "dtype"; -static char __pyx_k__empty[] = "empty"; -static char __pyx_k__numpy[] = "numpy"; -static char __pyx_k__range[] = "range"; -static char __pyx_k__shape[] = "shape"; -static char __pyx_k__double[] = "double"; -static char __pyx_k____all__[] = "__all__"; -static char __pyx_k__reshape[] = "reshape"; -static char __pyx_k____main__[] = "__main__"; -static char __pyx_k____test__[] = "__test__"; -static char __pyx_k__ValueError[] = "ValueError"; -static char __pyx_k__RuntimeError[] = "RuntimeError"; -static char __pyx_k__ellipsoid_fun[] = "ellipsoid_fun"; -static char __pyx_k__chi2_ellipsoid[] = "chi2_ellipsoid"; -static PyObject *__pyx_kp_s_1; -static PyObject *__pyx_kp_u_10; -static PyObject *__pyx_kp_u_13; -static PyObject *__pyx_n_s_15; -static PyObject *__pyx_n_s_16; -static PyObject *__pyx_n_s_17; -static PyObject *__pyx_n_s_18; -static PyObject *__pyx_n_s_19; -static PyObject *__pyx_n_s_20; -static PyObject *__pyx_n_s_21; -static PyObject *__pyx_kp_u_3; -static PyObject *__pyx_kp_u_5; -static PyObject *__pyx_kp_u_7; -static PyObject *__pyx_kp_u_9; -static PyObject *__pyx_n_s__DTYPE; -static PyObject *__pyx_n_s__N; -static PyObject *__pyx_n_s__RuntimeError; -static PyObject *__pyx_n_s__ValueError; -static PyObject *__pyx_n_s____all__; -static PyObject *__pyx_n_s____main__; -static PyObject *__pyx_n_s____test__; -static PyObject *__pyx_n_s__array; -static PyObject *__pyx_n_s__chi2_ellipsoid; -static PyObject *__pyx_n_s__data; -static PyObject *__pyx_n_s__double; -static PyObject *__pyx_n_s__dtype; -static PyObject *__pyx_n_s__ellipsoid_fun; -static PyObject *__pyx_n_s__empty; -static PyObject *__pyx_n_s__np; -static PyObject *__pyx_n_s__numpy; -static PyObject *__pyx_n_s__p; -static PyObject *__pyx_n_s__pi; -static PyObject *__pyx_n_s__range; -static PyObject *__pyx_n_s__reshape; -static PyObject *__pyx_n_s__shape; -static PyObject *__pyx_n_s__size; -static PyObject *__pyx_n_s__x_a; -static PyObject *__pyx_n_s__x_b; -static PyObject *__pyx_int_0; -static PyObject *__pyx_int_2; -static PyObject *__pyx_int_15; -static PyObject *__pyx_int_50; -static PyObject *__pyx_k_tuple_2; -static PyObject *__pyx_k_tuple_4; -static PyObject *__pyx_k_tuple_6; -static PyObject *__pyx_k_tuple_8; -static PyObject *__pyx_k_tuple_11; -static PyObject *__pyx_k_tuple_12; -static PyObject *__pyx_k_tuple_14; - -/* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":36 - * - * @cython.boundscheck(False) - * cdef ellipsoid_fun_internal(p, np.ndarray[DTYPE_t,ndim=1] x_a, # <<<<<<<<<<<<<< - * np.ndarray[DTYPE_t,ndim=1] x_b): - * cdef int N = x_a.size - */ - -static PyObject *__pyx_f_11voidProject_7apTools_4chi2_24velocityProfileFitNative_ellipsoid_fun_internal(PyObject *__pyx_v_p, PyArrayObject *__pyx_v_x_a, PyArrayObject *__pyx_v_x_b) { - int __pyx_v_N; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_A; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_a; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_b; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_c; - PyArrayObject *__pyx_v_out_a = 0; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_d2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_tmp_a; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_tmp_b; - float __pyx_v_pval; - int __pyx_v_i; - Py_buffer __pyx_bstruct_x_b; - Py_ssize_t __pyx_bstride_0_x_b = 0; - Py_ssize_t __pyx_bshape_0_x_b = 0; - Py_buffer __pyx_bstruct_out_a; - Py_ssize_t __pyx_bstride_0_out_a = 0; - Py_ssize_t __pyx_bshape_0_out_a = 0; - Py_buffer __pyx_bstruct_x_a; - Py_ssize_t __pyx_bstride_0_x_a = 0; - Py_ssize_t __pyx_bshape_0_x_a = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyArrayObject *__pyx_t_6 = NULL; - int __pyx_t_7; - int __pyx_t_8; - int __pyx_t_9; - PyObject *__pyx_t_10 = NULL; - PyObject *(*__pyx_t_11)(PyObject *); - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_12; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_13; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_14; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_15; - int __pyx_t_16; - int __pyx_t_17; - int __pyx_t_18; - int __pyx_t_19; - int __pyx_t_20; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ellipsoid_fun_internal"); - __pyx_bstruct_out_a.buf = NULL; - __pyx_bstruct_x_a.buf = NULL; - __pyx_bstruct_x_b.buf = NULL; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_x_a, (PyObject*)__pyx_v_x_a, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_x_a = __pyx_bstruct_x_a.strides[0]; - __pyx_bshape_0_x_a = __pyx_bstruct_x_a.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_x_b, (PyObject*)__pyx_v_x_b, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_x_b = __pyx_bstruct_x_b.strides[0]; - __pyx_bshape_0_x_b = __pyx_bstruct_x_b.shape[0]; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":38 - * cdef ellipsoid_fun_internal(p, np.ndarray[DTYPE_t,ndim=1] x_a, - * np.ndarray[DTYPE_t,ndim=1] x_b): - * cdef int N = x_a.size # <<<<<<<<<<<<<< - * cdef DTYPE_t A, a, b, c, c2 - * cdef np.ndarray[DTYPE_t,ndim=1] out_a = np.empty(N, dtype=DTYPE) - */ - __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_x_a), __pyx_n_s__size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_N = __pyx_t_2; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":40 - * cdef int N = x_a.size - * cdef DTYPE_t A, a, b, c, c2 - * cdef np.ndarray[DTYPE_t,ndim=1] out_a = np.empty(N, dtype=DTYPE) # <<<<<<<<<<<<<< - * cdef DTYPE_t d2, tmp_a, tmp_b - * cdef float pval - */ - __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__empty); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyInt_FromLong(__pyx_v_N); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_4)); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTYPE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_6 = ((PyArrayObject *)__pyx_t_5); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_out_a, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { - __pyx_v_out_a = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_out_a.buf = NULL; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } else {__pyx_bstride_0_out_a = __pyx_bstruct_out_a.strides[0]; - __pyx_bshape_0_out_a = __pyx_bstruct_out_a.shape[0]; - } - } - __pyx_t_6 = 0; - __pyx_v_out_a = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":43 - * cdef DTYPE_t d2, tmp_a, tmp_b - * cdef float pval - * assert x_a.dtype == DTYPE and x_b.dtype == DTYPE # <<<<<<<<<<<<<< - * - * # TEST - */ - #ifndef CYTHON_WITHOUT_ASSERTIONS - __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_x_a), __pyx_n_s__dtype); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTYPE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyObject_RichCompare(__pyx_t_5, __pyx_t_1, Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__pyx_t_7) { - __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_x_b), __pyx_n_s__dtype); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTYPE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = PyObject_RichCompare(__pyx_t_4, __pyx_t_1, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_9 = __pyx_t_8; - } else { - __pyx_t_9 = __pyx_t_7; - } - if (unlikely(!__pyx_t_9)) { - PyErr_SetNone(PyExc_AssertionError); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - #endif - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":47 - * # TEST - * #pval = 3 - * pval = 2 # <<<<<<<<<<<<<< - * A,a,b,c = p - * - */ - __pyx_v_pval = 2.0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":48 - * #pval = 3 - * pval = 2 - * A,a,b,c = p # <<<<<<<<<<<<<< - * - * for i in range(N): - */ - if ((likely(PyTuple_CheckExact(__pyx_v_p))) || (PyList_CheckExact(__pyx_v_p))) { - PyObject* sequence = __pyx_v_p; - if (likely(PyTuple_CheckExact(sequence))) { - if (unlikely(PyTuple_GET_SIZE(sequence) != 4)) { - if (PyTuple_GET_SIZE(sequence) > 4) __Pyx_RaiseTooManyValuesError(4); - else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 3); - } else { - if (unlikely(PyList_GET_SIZE(sequence) != 4)) { - if (PyList_GET_SIZE(sequence) > 4) __Pyx_RaiseTooManyValuesError(4); - else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_5 = PyList_GET_ITEM(sequence, 0); - __pyx_t_1 = PyList_GET_ITEM(sequence, 1); - __pyx_t_4 = PyList_GET_ITEM(sequence, 2); - __pyx_t_3 = PyList_GET_ITEM(sequence, 3); - } - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx_t_1); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - } else { - Py_ssize_t index = -1; - __pyx_t_10 = PyObject_GetIter(__pyx_v_p); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext; - index = 0; __pyx_t_5 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_5)) goto __pyx_L3_unpacking_failed; - __Pyx_GOTREF(__pyx_t_5); - index = 1; __pyx_t_1 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_1)) goto __pyx_L3_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - index = 2; __pyx_t_4 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed; - __Pyx_GOTREF(__pyx_t_4); - index = 3; __pyx_t_3 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - goto __pyx_L4_unpacking_done; - __pyx_L3_unpacking_failed:; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); - if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_L4_unpacking_done:; - } - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_12 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_13 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_14 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_15 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_A = __pyx_t_12; - __pyx_v_a = __pyx_t_13; - __pyx_v_b = __pyx_t_14; - __pyx_v_c = __pyx_t_15; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":50 - * A,a,b,c = p - * - * for i in range(N): # <<<<<<<<<<<<<< - * tmp_a = x_a[i] - * tmp_b = x_b[i] - */ - __pyx_t_2 = __pyx_v_N; - for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_2; __pyx_t_16+=1) { - __pyx_v_i = __pyx_t_16; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":51 - * - * for i in range(N): - * tmp_a = x_a[i] # <<<<<<<<<<<<<< - * tmp_b = x_b[i] - * - */ - __pyx_t_17 = __pyx_v_i; - if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_bshape_0_x_a; - __pyx_v_tmp_a = (*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_x_a.buf, __pyx_t_17, __pyx_bstride_0_x_a)); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":52 - * for i in range(N): - * tmp_a = x_a[i] - * tmp_b = x_b[i] # <<<<<<<<<<<<<< - * - * tmp_a = tmp_a/a - */ - __pyx_t_18 = __pyx_v_i; - if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_bshape_0_x_b; - __pyx_v_tmp_b = (*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_x_b.buf, __pyx_t_18, __pyx_bstride_0_x_b)); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":54 - * tmp_b = x_b[i] - * - * tmp_a = tmp_a/a # <<<<<<<<<<<<<< - * tmp_b = tmp_b/b - * - */ - if (unlikely(__pyx_v_a == 0)) { - PyErr_Format(PyExc_ZeroDivisionError, "float division"); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_v_tmp_a = (__pyx_v_tmp_a / __pyx_v_a); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":55 - * - * tmp_a = tmp_a/a - * tmp_b = tmp_b/b # <<<<<<<<<<<<<< - * - * d2 = c*(A + pow(tmp_a*tmp_a + tmp_b*tmp_b, pval/2.)) - */ - if (unlikely(__pyx_v_b == 0)) { - PyErr_Format(PyExc_ZeroDivisionError, "float division"); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_v_tmp_b = (__pyx_v_tmp_b / __pyx_v_b); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":57 - * tmp_b = tmp_b/b - * - * d2 = c*(A + pow(tmp_a*tmp_a + tmp_b*tmp_b, pval/2.)) # <<<<<<<<<<<<<< - * if d2 > c: - * out_a[i] = c - */ - __pyx_v_d2 = (__pyx_v_c * (__pyx_v_A + pow(((__pyx_v_tmp_a * __pyx_v_tmp_a) + (__pyx_v_tmp_b * __pyx_v_tmp_b)), (__pyx_v_pval / 2.)))); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":58 - * - * d2 = c*(A + pow(tmp_a*tmp_a + tmp_b*tmp_b, pval/2.)) - * if d2 > c: # <<<<<<<<<<<<<< - * out_a[i] = c - * else: - */ - __pyx_t_9 = (__pyx_v_d2 > __pyx_v_c); - if (__pyx_t_9) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":59 - * d2 = c*(A + pow(tmp_a*tmp_a + tmp_b*tmp_b, pval/2.)) - * if d2 > c: - * out_a[i] = c # <<<<<<<<<<<<<< - * else: - * out_a[i] = d2 - */ - __pyx_t_19 = __pyx_v_i; - if (__pyx_t_19 < 0) __pyx_t_19 += __pyx_bshape_0_out_a; - *__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_out_a.buf, __pyx_t_19, __pyx_bstride_0_out_a) = __pyx_v_c; - goto __pyx_L7; - } - /*else*/ { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":61 - * out_a[i] = c - * else: - * out_a[i] = d2 # <<<<<<<<<<<<<< - * - * return out_a - */ - __pyx_t_20 = __pyx_v_i; - if (__pyx_t_20 < 0) __pyx_t_20 += __pyx_bshape_0_out_a; - *__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_out_a.buf, __pyx_t_20, __pyx_bstride_0_out_a) = __pyx_v_d2; - } - __pyx_L7:; - } - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":63 - * out_a[i] = d2 - * - * return out_a # <<<<<<<<<<<<<< - * - * def ellipsoid_fun(p, - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_out_a)); - __pyx_r = ((PyObject *)__pyx_v_out_a); - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_10); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_b); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_out_a); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_a); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("voidProject.apTools.chi2.velocityProfileFitNative.ellipsoid_fun_internal", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_b); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_out_a); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_a); - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_out_a); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":65 - * return out_a - * - * def ellipsoid_fun(p, # <<<<<<<<<<<<<< - * x_a, - * x_b): - */ - -static PyObject *__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_ellipsoid_fun(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_11voidProject_7apTools_4chi2_24velocityProfileFitNative_ellipsoid_fun = {__Pyx_NAMESTR("ellipsoid_fun"), (PyCFunction)__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_ellipsoid_fun, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}; -static PyObject *__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_ellipsoid_fun(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_p = 0; - PyObject *__pyx_v_x_a = 0; - PyObject *__pyx_v_x_b = 0; - PyObject *__pyx_v_out_shape = NULL; - PyObject *__pyx_v_out = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - int __pyx_t_3; - int __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - Py_ssize_t __pyx_t_8; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__x_a,&__pyx_n_s__x_b,0}; - __Pyx_RefNannySetupContext("ellipsoid_fun"); - __pyx_self = __pyx_self; - { - PyObject* values[3] = {0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_a); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("ellipsoid_fun", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 2: - values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_b); - if (likely(values[2])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("ellipsoid_fun", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "ellipsoid_fun") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - } - __pyx_v_p = values[0]; - __pyx_v_x_a = values[1]; - __pyx_v_x_b = values[2]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ellipsoid_fun", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("voidProject.apTools.chi2.velocityProfileFitNative.ellipsoid_fun", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __Pyx_INCREF(__pyx_v_x_a); - __Pyx_INCREF(__pyx_v_x_b); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":69 - * x_b): - * - * if (type(x_a) != np.ndarray) or (type(x_b) != np.ndarray): # <<<<<<<<<<<<<< - * raise ValueError("Invalid type for x_a or x_b"); - * - */ - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_x_a)), ((PyObject *)((PyObject*)__pyx_ptype_5numpy_ndarray)), Py_NE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!__pyx_t_2) { - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_x_b)), ((PyObject *)((PyObject*)__pyx_ptype_5numpy_ndarray)), Py_NE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __pyx_t_3; - } else { - __pyx_t_4 = __pyx_t_2; - } - if (__pyx_t_4) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":70 - * - * if (type(x_a) != np.ndarray) or (type(x_b) != np.ndarray): - * raise ValueError("Invalid type for x_a or x_b"); # <<<<<<<<<<<<<< - * - * if x_a.dtype != DTYPE: - */ - __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L6; - } - __pyx_L6:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":72 - * raise ValueError("Invalid type for x_a or x_b"); - * - * if x_a.dtype != DTYPE: # <<<<<<<<<<<<<< - * x_a = np.array(x_a, dtype=DTYPE) - * - */ - __pyx_t_1 = PyObject_GetAttr(__pyx_v_x_a, __pyx_n_s__dtype); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTYPE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_t_5, Py_NE); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (__pyx_t_4) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":73 - * - * if x_a.dtype != DTYPE: - * x_a = np.array(x_a, dtype=DTYPE) # <<<<<<<<<<<<<< - * - * if x_b.dtype != DTYPE: - */ - __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__array); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_6)); - __Pyx_INCREF(__pyx_v_x_a); - PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_x_a); - __Pyx_GIVEREF(__pyx_v_x_a); - __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTYPE); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyEval_CallObjectWithKeywords(__pyx_t_5, ((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_v_x_a); - __pyx_v_x_a = __pyx_t_7; - __pyx_t_7 = 0; - goto __pyx_L7; - } - __pyx_L7:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":75 - * x_a = np.array(x_a, dtype=DTYPE) - * - * if x_b.dtype != DTYPE: # <<<<<<<<<<<<<< - * x_b = np.array(x_b, dtype=DTYPE) - * - */ - __pyx_t_7 = PyObject_GetAttr(__pyx_v_x_b, __pyx_n_s__dtype); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTYPE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = PyObject_RichCompare(__pyx_t_7, __pyx_t_1, Py_NE); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (__pyx_t_4) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":76 - * - * if x_b.dtype != DTYPE: - * x_b = np.array(x_b, dtype=DTYPE) # <<<<<<<<<<<<<< - * - * out_shape = 0 - */ - __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__array); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_6)); - __Pyx_INCREF(__pyx_v_x_b); - PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_x_b); - __Pyx_GIVEREF(__pyx_v_x_b); - __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_7)); - __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTYPE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_7, ((PyObject *)__pyx_n_s__dtype), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_v_x_b); - __pyx_v_x_b = __pyx_t_5; - __pyx_t_5 = 0; - goto __pyx_L8; - } - __pyx_L8:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":78 - * x_b = np.array(x_b, dtype=DTYPE) - * - * out_shape = 0 # <<<<<<<<<<<<<< - * - * if x_a.shape == x_b.shape and len(x_a.shape) > 1: - */ - __Pyx_INCREF(__pyx_int_0); - __pyx_v_out_shape = __pyx_int_0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":80 - * out_shape = 0 - * - * if x_a.shape == x_b.shape and len(x_a.shape) > 1: # <<<<<<<<<<<<<< - * out_shape = x_a.shape - * x_a = x_a.reshape(x_a.size) - */ - __pyx_t_5 = PyObject_GetAttr(__pyx_v_x_a, __pyx_n_s__shape); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = PyObject_GetAttr(__pyx_v_x_b, __pyx_n_s__shape); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = PyObject_RichCompare(__pyx_t_5, __pyx_t_7, Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (__pyx_t_4) { - __pyx_t_6 = PyObject_GetAttr(__pyx_v_x_a, __pyx_n_s__shape); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_2 = (__pyx_t_8 > 1); - __pyx_t_3 = __pyx_t_2; - } else { - __pyx_t_3 = __pyx_t_4; - } - if (__pyx_t_3) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":81 - * - * if x_a.shape == x_b.shape and len(x_a.shape) > 1: - * out_shape = x_a.shape # <<<<<<<<<<<<<< - * x_a = x_a.reshape(x_a.size) - * x_b = x_b.reshape(x_b.size) - */ - __pyx_t_6 = PyObject_GetAttr(__pyx_v_x_a, __pyx_n_s__shape); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_v_out_shape); - __pyx_v_out_shape = __pyx_t_6; - __pyx_t_6 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":82 - * if x_a.shape == x_b.shape and len(x_a.shape) > 1: - * out_shape = x_a.shape - * x_a = x_a.reshape(x_a.size) # <<<<<<<<<<<<<< - * x_b = x_b.reshape(x_b.size) - * - */ - __pyx_t_6 = PyObject_GetAttr(__pyx_v_x_a, __pyx_n_s__reshape); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyObject_GetAttr(__pyx_v_x_a, __pyx_n_s__size); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_5)); - PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_7); - __pyx_t_7 = 0; - __pyx_t_7 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_v_x_a); - __pyx_v_x_a = __pyx_t_7; - __pyx_t_7 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":83 - * out_shape = x_a.shape - * x_a = x_a.reshape(x_a.size) - * x_b = x_b.reshape(x_b.size) # <<<<<<<<<<<<<< - * - * out = ellipsoid_fun_internal(p, x_a, x_b) - */ - __pyx_t_7 = PyObject_GetAttr(__pyx_v_x_b, __pyx_n_s__reshape); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_5 = PyObject_GetAttr(__pyx_v_x_b, __pyx_n_s__size); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_6)); - PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); - __Pyx_GIVEREF(__pyx_t_5); - __pyx_t_5 = 0; - __pyx_t_5 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_v_x_b); - __pyx_v_x_b = __pyx_t_5; - __pyx_t_5 = 0; - goto __pyx_L9; - } - __pyx_L9:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":85 - * x_b = x_b.reshape(x_b.size) - * - * out = ellipsoid_fun_internal(p, x_a, x_b) # <<<<<<<<<<<<<< - * - * if out_shape != 0: - */ - if (!(likely(((__pyx_v_x_a) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_x_a, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_5 = __pyx_v_x_a; - __Pyx_INCREF(__pyx_t_5); - if (!(likely(((__pyx_v_x_b) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_x_b, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_6 = __pyx_v_x_b; - __Pyx_INCREF(__pyx_t_6); - __pyx_t_7 = __pyx_f_11voidProject_7apTools_4chi2_24velocityProfileFitNative_ellipsoid_fun_internal(__pyx_v_p, ((PyArrayObject *)__pyx_t_5), ((PyArrayObject *)__pyx_t_6)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_v_out = __pyx_t_7; - __pyx_t_7 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":87 - * out = ellipsoid_fun_internal(p, x_a, x_b) - * - * if out_shape != 0: # <<<<<<<<<<<<<< - * return out.reshape(out_shape) - * else: - */ - __pyx_t_7 = PyObject_RichCompare(__pyx_v_out_shape, __pyx_int_0, Py_NE); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (__pyx_t_3) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":88 - * - * if out_shape != 0: - * return out.reshape(out_shape) # <<<<<<<<<<<<<< - * else: - * return out - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = PyObject_GetAttr(__pyx_v_out, __pyx_n_s__reshape); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_6)); - __Pyx_INCREF(__pyx_v_out_shape); - PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_out_shape); - __Pyx_GIVEREF(__pyx_v_out_shape); - __pyx_t_5 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; - __pyx_r = __pyx_t_5; - __pyx_t_5 = 0; - goto __pyx_L0; - goto __pyx_L10; - } - /*else*/ { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":90 - * return out.reshape(out_shape) - * else: - * return out # <<<<<<<<<<<<<< - * - * @cython.boundscheck(False) - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_out); - __pyx_r = __pyx_v_out; - goto __pyx_L0; - } - __pyx_L10:; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("voidProject.apTools.chi2.velocityProfileFitNative.ellipsoid_fun", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_out_shape); - __Pyx_XDECREF(__pyx_v_out); - __Pyx_XDECREF(__pyx_v_x_a); - __Pyx_XDECREF(__pyx_v_x_b); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":94 - * @cython.boundscheck(False) - * @cython.cdivision(True) - * def chi2_ellipsoid(p, np.ndarray[DTYPE_t,ndim=1] data not None, # <<<<<<<<<<<<<< - * np.ndarray[DTYPE_t,ndim=1] x_a not None, - * np.ndarray[DTYPE_t,ndim=1] x_b not None, - */ - -static PyObject *__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_1chi2_ellipsoid(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_11voidProject_7apTools_4chi2_24velocityProfileFitNative_1chi2_ellipsoid = {__Pyx_NAMESTR("chi2_ellipsoid"), (PyCFunction)__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_1chi2_ellipsoid, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}; -static PyObject *__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_1chi2_ellipsoid(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_p = 0; - PyArrayObject *__pyx_v_data = 0; - PyArrayObject *__pyx_v_x_a = 0; - PyArrayObject *__pyx_v_x_b = 0; - int __pyx_v_N; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_A; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_a; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_b; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sigma; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_chi2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_d; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_norm_chi2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sloc; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sloc2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_one_norm; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_one_err; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_W; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_log_2W; - PyArrayObject *__pyx_v_predicted = 0; - PyObject *__pyx_v_c = NULL; - int __pyx_v_i; - PyObject *__pyx_v_u = NULL; - Py_buffer __pyx_bstruct_x_b; - Py_ssize_t __pyx_bstride_0_x_b = 0; - Py_ssize_t __pyx_bshape_0_x_b = 0; - Py_buffer __pyx_bstruct_x_a; - Py_ssize_t __pyx_bstride_0_x_a = 0; - Py_ssize_t __pyx_bshape_0_x_a = 0; - Py_buffer __pyx_bstruct_data; - Py_ssize_t __pyx_bstride_0_data = 0; - Py_ssize_t __pyx_bshape_0_data = 0; - Py_buffer __pyx_bstruct_predicted; - Py_ssize_t __pyx_bstride_0_predicted = 0; - Py_ssize_t __pyx_bshape_0_predicted = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyArrayObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *(*__pyx_t_9)(PyObject *); - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_10; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_11; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_12; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_13; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_14; - int __pyx_t_15; - int __pyx_t_16; - int __pyx_t_17; - int __pyx_t_18; - int __pyx_t_19; - int __pyx_t_20; - int __pyx_t_21; - PyObject *__pyx_t_22 = NULL; - PyObject *__pyx_t_23 = NULL; - PyObject *__pyx_t_24 = NULL; - int __pyx_t_25; - int __pyx_t_26; - int __pyx_t_27; - int __pyx_t_28; - double __pyx_t_29; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__data,&__pyx_n_s__x_a,&__pyx_n_s__x_b,&__pyx_n_s__N,0}; - __Pyx_RefNannySetupContext("chi2_ellipsoid"); - __pyx_self = __pyx_self; - { - PyObject* values[5] = {0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__data); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid", 1, 5, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 2: - values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_a); - if (likely(values[2])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid", 1, 5, 5, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 3: - values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_b); - if (likely(values[3])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid", 1, 5, 5, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 4: - values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__N); - if (likely(values[4])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid", 1, 5, 5, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "chi2_ellipsoid") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - } - __pyx_v_p = values[0]; - __pyx_v_data = ((PyArrayObject *)values[1]); - __pyx_v_x_a = ((PyArrayObject *)values[2]); - __pyx_v_x_b = ((PyArrayObject *)values[3]); - __pyx_v_N = __Pyx_PyInt_AsInt(values[4]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("voidProject.apTools.chi2.velocityProfileFitNative.chi2_ellipsoid", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_bstruct_predicted.buf = NULL; - __pyx_bstruct_data.buf = NULL; - __pyx_bstruct_x_a.buf = NULL; - __pyx_bstruct_x_b.buf = NULL; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_data), __pyx_ptype_5numpy_ndarray, 0, "data", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_a), __pyx_ptype_5numpy_ndarray, 0, "x_a", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_b), __pyx_ptype_5numpy_ndarray, 0, "x_b", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_data, (PyObject*)__pyx_v_data, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_data = __pyx_bstruct_data.strides[0]; - __pyx_bshape_0_data = __pyx_bstruct_data.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_x_a, (PyObject*)__pyx_v_x_a, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_x_a = __pyx_bstruct_x_a.strides[0]; - __pyx_bshape_0_x_a = __pyx_bstruct_x_a.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_x_b, (PyObject*)__pyx_v_x_b, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_x_b = __pyx_bstruct_x_b.strides[0]; - __pyx_bshape_0_x_b = __pyx_bstruct_x_b.shape[0]; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":102 - * cdef DTYPE_t norm_chi2, sloc, sloc2, one_norm - * cdef DTYPE_t one_err, W, log_2W - * cdef np.ndarray[DTYPE_t, ndim=1] predicted = np.empty(N, dtype=DTYPE) # <<<<<<<<<<<<<< - * global sqrt_2pi, sq2 - * - */ - __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__empty); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyInt_FromLong(__pyx_v_N); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTYPE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_2, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_5 = ((PyArrayObject *)__pyx_t_4); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - __pyx_v_predicted = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_predicted.buf = NULL; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } else {__pyx_bstride_0_predicted = __pyx_bstruct_predicted.strides[0]; - __pyx_bshape_0_predicted = __pyx_bstruct_predicted.shape[0]; - } - } - __pyx_t_5 = 0; - __pyx_v_predicted = ((PyArrayObject *)__pyx_t_4); - __pyx_t_4 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":105 - * global sqrt_2pi, sq2 - * - * A,a,b,c,sigma,W=p # <<<<<<<<<<<<<< - * - * if A < 0 or a < 0 or b < 0 or sigma < 0 or W < 0: - */ - if ((likely(PyTuple_CheckExact(__pyx_v_p))) || (PyList_CheckExact(__pyx_v_p))) { - PyObject* sequence = __pyx_v_p; - if (likely(PyTuple_CheckExact(sequence))) { - if (unlikely(PyTuple_GET_SIZE(sequence) != 6)) { - if (PyTuple_GET_SIZE(sequence) > 6) __Pyx_RaiseTooManyValuesError(6); - else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2); - __pyx_t_2 = PyTuple_GET_ITEM(sequence, 3); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 4); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 5); - } else { - if (unlikely(PyList_GET_SIZE(sequence) != 6)) { - if (PyList_GET_SIZE(sequence) > 6) __Pyx_RaiseTooManyValuesError(6); - else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_4 = PyList_GET_ITEM(sequence, 0); - __pyx_t_1 = PyList_GET_ITEM(sequence, 1); - __pyx_t_3 = PyList_GET_ITEM(sequence, 2); - __pyx_t_2 = PyList_GET_ITEM(sequence, 3); - __pyx_t_6 = PyList_GET_ITEM(sequence, 4); - __pyx_t_7 = PyList_GET_ITEM(sequence, 5); - } - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx_t_1); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx_t_7); - } else { - Py_ssize_t index = -1; - __pyx_t_8 = PyObject_GetIter(__pyx_v_p); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; - index = 0; __pyx_t_4 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_4); - index = 1; __pyx_t_1 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_1)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - index = 2; __pyx_t_3 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - index = 3; __pyx_t_2 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_2); - index = 4; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - index = 5; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L7_unpacking_done; - __pyx_L6_unpacking_failed:; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); - if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_L7_unpacking_done:; - } - __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_10 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_11 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_12 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_13 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_14 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_A = __pyx_t_10; - __pyx_v_a = __pyx_t_11; - __pyx_v_b = __pyx_t_12; - __pyx_v_c = __pyx_t_2; - __pyx_t_2 = 0; - __pyx_v_sigma = __pyx_t_13; - __pyx_v_W = __pyx_t_14; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":107 - * A,a,b,c,sigma,W=p - * - * if A < 0 or a < 0 or b < 0 or sigma < 0 or W < 0: # <<<<<<<<<<<<<< - * return 0,True - * - */ - __pyx_t_15 = (__pyx_v_A < 0.0); - if (!__pyx_t_15) { - __pyx_t_16 = (__pyx_v_a < 0.0); - if (!__pyx_t_16) { - __pyx_t_17 = (__pyx_v_b < 0.0); - if (!__pyx_t_17) { - __pyx_t_18 = (__pyx_v_sigma < 0.0); - if (!__pyx_t_18) { - __pyx_t_19 = (__pyx_v_W < 0.0); - __pyx_t_20 = __pyx_t_19; - } else { - __pyx_t_20 = __pyx_t_18; - } - __pyx_t_18 = __pyx_t_20; - } else { - __pyx_t_18 = __pyx_t_17; - } - __pyx_t_17 = __pyx_t_18; - } else { - __pyx_t_17 = __pyx_t_16; - } - __pyx_t_16 = __pyx_t_17; - } else { - __pyx_t_16 = __pyx_t_15; - } - if (__pyx_t_16) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":108 - * - * if A < 0 or a < 0 or b < 0 or sigma < 0 or W < 0: - * return 0,True # <<<<<<<<<<<<<< - * - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_6)); - __Pyx_INCREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_7); - __pyx_t_7 = 0; - __pyx_r = ((PyObject *)__pyx_t_6); - __pyx_t_6 = 0; - goto __pyx_L0; - goto __pyx_L8; - } - __pyx_L8:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":110 - * return 0,True - * - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) # <<<<<<<<<<<<<< - * - * chi2 = 0 - */ - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_A); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_a); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_b); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v_c); - PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_c); - __Pyx_GIVEREF(__pyx_v_c); - __pyx_t_6 = 0; - __pyx_t_7 = 0; - __pyx_t_2 = 0; - __pyx_t_2 = __pyx_f_11voidProject_7apTools_4chi2_24velocityProfileFitNative_ellipsoid_fun_internal(((PyObject *)__pyx_t_3), ((PyArrayObject *)__pyx_v_x_a), ((PyArrayObject *)__pyx_v_x_b)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_5 = ((PyArrayObject *)__pyx_t_2); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __pyx_t_21 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); - if (unlikely(__pyx_t_21 < 0)) { - PyErr_Fetch(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_v_predicted, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_24); - __Pyx_RaiseBufferFallbackError(); - } else { - PyErr_Restore(__pyx_t_22, __pyx_t_23, __pyx_t_24); - } - } - __pyx_bstride_0_predicted = __pyx_bstruct_predicted.strides[0]; - __pyx_bshape_0_predicted = __pyx_bstruct_predicted.shape[0]; - if (unlikely(__pyx_t_21 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_5 = 0; - __Pyx_DECREF(((PyObject *)__pyx_v_predicted)); - __pyx_v_predicted = ((PyArrayObject *)__pyx_t_2); - __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":112 - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) - * - * chi2 = 0 # <<<<<<<<<<<<<< - * norm_chi2 = 0 - * - */ - __pyx_v_chi2 = 0.0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":113 - * - * chi2 = 0 - * norm_chi2 = 0 # <<<<<<<<<<<<<< - * - * log_2W = log(2*W) - */ - __pyx_v_norm_chi2 = 0.0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":115 - * norm_chi2 = 0 - * - * log_2W = log(2*W) # <<<<<<<<<<<<<< - * - * for i in range(N): - */ - __pyx_v_log_2W = log((2.0 * __pyx_v_W)); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":117 - * log_2W = log(2*W) - * - * for i in range(N): # <<<<<<<<<<<<<< - * sloc = sigma*sqrt(1/x_a[i]) - * - */ - __pyx_t_21 = __pyx_v_N; - for (__pyx_t_25 = 0; __pyx_t_25 < __pyx_t_21; __pyx_t_25+=1) { - __pyx_v_i = __pyx_t_25; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":118 - * - * for i in range(N): - * sloc = sigma*sqrt(1/x_a[i]) # <<<<<<<<<<<<<< - * - * one_err = fabs(data[i]-predicted[i]) - */ - __pyx_t_26 = __pyx_v_i; - if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_bshape_0_x_a; - __pyx_v_sloc = (__pyx_v_sigma * sqrt((1.0 / (*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_x_a.buf, __pyx_t_26, __pyx_bstride_0_x_a))))); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":120 - * sloc = sigma*sqrt(1/x_a[i]) - * - * one_err = fabs(data[i]-predicted[i]) # <<<<<<<<<<<<<< - * - * if (one_err < W): - */ - __pyx_t_27 = __pyx_v_i; - if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_bshape_0_data; - __pyx_t_28 = __pyx_v_i; - if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_bshape_0_predicted; - __pyx_v_one_err = fabs(((*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_data.buf, __pyx_t_27, __pyx_bstride_0_data)) - (*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_predicted.buf, __pyx_t_28, __pyx_bstride_0_predicted)))); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":122 - * one_err = fabs(data[i]-predicted[i]) - * - * if (one_err < W): # <<<<<<<<<<<<<< - * d = W*W - * else: - */ - __pyx_t_16 = (__pyx_v_one_err < __pyx_v_W); - if (__pyx_t_16) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":123 - * - * if (one_err < W): - * d = W*W # <<<<<<<<<<<<<< - * else: - * d = one_err*one_err - */ - __pyx_v_d = (__pyx_v_W * __pyx_v_W); - goto __pyx_L11; - } - /*else*/ { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":125 - * d = W*W - * else: - * d = one_err*one_err # <<<<<<<<<<<<<< - * - * sloc2 = sloc*sloc - */ - __pyx_v_d = (__pyx_v_one_err * __pyx_v_one_err); - } - __pyx_L11:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":127 - * d = one_err*one_err - * - * sloc2 = sloc*sloc # <<<<<<<<<<<<<< - * chi2 = chi2 + d/(sloc2) - * - */ - __pyx_v_sloc2 = (__pyx_v_sloc * __pyx_v_sloc); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":128 - * - * sloc2 = sloc*sloc - * chi2 = chi2 + d/(sloc2) # <<<<<<<<<<<<<< - * - * u = W*W/sloc2 - */ - __pyx_v_chi2 = (__pyx_v_chi2 + (__pyx_v_d / __pyx_v_sloc2)); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":130 - * chi2 = chi2 + d/(sloc2) - * - * u = W*W/sloc2 # <<<<<<<<<<<<<< - * if u > 50: - * # We only keep the first term, the second term is totally - */ - __pyx_t_2 = PyFloat_FromDouble(((__pyx_v_W * __pyx_v_W) / __pyx_v_sloc2)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_v_u); - __pyx_v_u = __pyx_t_2; - __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":131 - * - * u = W*W/sloc2 - * if u > 50: # <<<<<<<<<<<<<< - * # We only keep the first term, the second term is totally - * # negligible - */ - __pyx_t_2 = PyObject_RichCompare(__pyx_v_u, __pyx_int_50, Py_GT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_16 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__pyx_t_16) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":134 - * # We only keep the first term, the second term is totally - * # negligible - * one_norm = -0.5*u + log_2W # <<<<<<<<<<<<<< - * else: - * one_norm = log(2*W*exp(-0.5*u) + \ - */ - __pyx_t_2 = PyFloat_FromDouble(-0.5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_v_u); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_log_2W); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = PyNumber_Add(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_14 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_one_norm = __pyx_t_14; - goto __pyx_L12; - } - /*else*/ { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":136 - * one_norm = -0.5*u + log_2W - * else: - * one_norm = log(2*W*exp(-0.5*u) + \ # <<<<<<<<<<<<<< - * sqrt_2pi*sloc*gsl_sf_erfc(W/(sq2*sloc))) - * - */ - __pyx_t_7 = PyFloat_FromDouble(-0.5); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = PyNumber_Multiply(__pyx_t_7, __pyx_v_u); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_29 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_29 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":137 - * else: - * one_norm = log(2*W*exp(-0.5*u) + \ - * sqrt_2pi*sloc*gsl_sf_erfc(W/(sq2*sloc))) # <<<<<<<<<<<<<< - * - * norm_chi2 = norm_chi2 + one_norm - */ - __pyx_v_one_norm = log((((2.0 * __pyx_v_W) * exp(__pyx_t_29)) + ((__pyx_v_11voidProject_7apTools_4chi2_24velocityProfileFitNative_sqrt_2pi * __pyx_v_sloc) * gsl_sf_erfc((__pyx_v_W / (__pyx_v_11voidProject_7apTools_4chi2_24velocityProfileFitNative_sq2 * __pyx_v_sloc)))))); - } - __pyx_L12:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":139 - * sqrt_2pi*sloc*gsl_sf_erfc(W/(sq2*sloc))) - * - * norm_chi2 = norm_chi2 + one_norm # <<<<<<<<<<<<<< - * - * return chi2 + 2*norm_chi2, False - */ - __pyx_v_norm_chi2 = (__pyx_v_norm_chi2 + __pyx_v_one_norm); - } - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":141 - * norm_chi2 = norm_chi2 + one_norm - * - * return chi2 + 2*norm_chi2, False # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyFloat_FromDouble((__pyx_v_chi2 + (2.0 * __pyx_v_norm_chi2))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_7); - __pyx_t_2 = 0; - __pyx_t_7 = 0; - __pyx_r = ((PyObject *)__pyx_t_3); - __pyx_t_3 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_b); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_a); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_data); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("voidProject.apTools.chi2.velocityProfileFitNative.chi2_ellipsoid", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_b); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_a); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_data); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_predicted); - __Pyx_XDECREF(__pyx_v_c); - __Pyx_XDECREF(__pyx_v_u); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":146 - * @cython.boundscheck(False) - * @cython.cdivision(True) - * def chi2_ellipsoid_aniso(p, np.ndarray[DTYPE_t,ndim=1] data not None, # <<<<<<<<<<<<<< - * np.ndarray[DTYPE_t,ndim=1] x_a not None, - * np.ndarray[DTYPE_t,ndim=1] x_b not None, - */ - -static PyObject *__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_2chi2_ellipsoid_aniso(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_11voidProject_7apTools_4chi2_24velocityProfileFitNative_2chi2_ellipsoid_aniso = {__Pyx_NAMESTR("chi2_ellipsoid_aniso"), (PyCFunction)__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_2chi2_ellipsoid_aniso, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}; -static PyObject *__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_2chi2_ellipsoid_aniso(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_p = 0; - PyArrayObject *__pyx_v_data = 0; - PyArrayObject *__pyx_v_x_a = 0; - PyArrayObject *__pyx_v_x_b = 0; - int __pyx_v_N; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_A; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_a; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_b; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sigma; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_chi2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_d; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sqrt_x_a; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_norm_chi2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sloc; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sloc2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_one_norm; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_one_err; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_W; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_Wloc; - PyArrayObject *__pyx_v_predicted = 0; - PyObject *__pyx_v_c = NULL; - int __pyx_v_i; - PyObject *__pyx_v_u = NULL; - Py_buffer __pyx_bstruct_x_b; - Py_ssize_t __pyx_bstride_0_x_b = 0; - Py_ssize_t __pyx_bshape_0_x_b = 0; - Py_buffer __pyx_bstruct_x_a; - Py_ssize_t __pyx_bstride_0_x_a = 0; - Py_ssize_t __pyx_bshape_0_x_a = 0; - Py_buffer __pyx_bstruct_data; - Py_ssize_t __pyx_bstride_0_data = 0; - Py_ssize_t __pyx_bshape_0_data = 0; - Py_buffer __pyx_bstruct_predicted; - Py_ssize_t __pyx_bstride_0_predicted = 0; - Py_ssize_t __pyx_bshape_0_predicted = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyArrayObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *(*__pyx_t_9)(PyObject *); - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_10; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_11; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_12; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_13; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_14; - int __pyx_t_15; - int __pyx_t_16; - int __pyx_t_17; - int __pyx_t_18; - int __pyx_t_19; - int __pyx_t_20; - int __pyx_t_21; - PyObject *__pyx_t_22 = NULL; - PyObject *__pyx_t_23 = NULL; - PyObject *__pyx_t_24 = NULL; - int __pyx_t_25; - int __pyx_t_26; - int __pyx_t_27; - int __pyx_t_28; - double __pyx_t_29; - double __pyx_t_30; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__data,&__pyx_n_s__x_a,&__pyx_n_s__x_b,&__pyx_n_s__N,0}; - __Pyx_RefNannySetupContext("chi2_ellipsoid_aniso"); - __pyx_self = __pyx_self; - { - PyObject* values[5] = {0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__data); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso", 1, 5, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 2: - values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_a); - if (likely(values[2])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso", 1, 5, 5, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 3: - values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_b); - if (likely(values[3])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso", 1, 5, 5, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 4: - values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__N); - if (likely(values[4])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso", 1, 5, 5, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "chi2_ellipsoid_aniso") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - } - __pyx_v_p = values[0]; - __pyx_v_data = ((PyArrayObject *)values[1]); - __pyx_v_x_a = ((PyArrayObject *)values[2]); - __pyx_v_x_b = ((PyArrayObject *)values[3]); - __pyx_v_N = __Pyx_PyInt_AsInt(values[4]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("voidProject.apTools.chi2.velocityProfileFitNative.chi2_ellipsoid_aniso", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_bstruct_predicted.buf = NULL; - __pyx_bstruct_data.buf = NULL; - __pyx_bstruct_x_a.buf = NULL; - __pyx_bstruct_x_b.buf = NULL; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_data), __pyx_ptype_5numpy_ndarray, 0, "data", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_a), __pyx_ptype_5numpy_ndarray, 0, "x_a", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_b), __pyx_ptype_5numpy_ndarray, 0, "x_b", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_data, (PyObject*)__pyx_v_data, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_data = __pyx_bstruct_data.strides[0]; - __pyx_bshape_0_data = __pyx_bstruct_data.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_x_a, (PyObject*)__pyx_v_x_a, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_x_a = __pyx_bstruct_x_a.strides[0]; - __pyx_bshape_0_x_a = __pyx_bstruct_x_a.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_x_b, (PyObject*)__pyx_v_x_b, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_x_b = __pyx_bstruct_x_b.strides[0]; - __pyx_bshape_0_x_b = __pyx_bstruct_x_b.shape[0]; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":154 - * cdef DTYPE_t norm_chi2, sloc, sloc2, one_norm - * cdef DTYPE_t one_err, W, Wloc - * cdef np.ndarray[DTYPE_t, ndim=1] predicted = np.empty(N, dtype=DTYPE) # <<<<<<<<<<<<<< - * global sqrt_2pi, sq2 - * - */ - __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__empty); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyInt_FromLong(__pyx_v_N); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTYPE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_2, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_5 = ((PyArrayObject *)__pyx_t_4); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - __pyx_v_predicted = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_predicted.buf = NULL; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } else {__pyx_bstride_0_predicted = __pyx_bstruct_predicted.strides[0]; - __pyx_bshape_0_predicted = __pyx_bstruct_predicted.shape[0]; - } - } - __pyx_t_5 = 0; - __pyx_v_predicted = ((PyArrayObject *)__pyx_t_4); - __pyx_t_4 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":157 - * global sqrt_2pi, sq2 - * - * A,a,b,c,sigma,W=p # <<<<<<<<<<<<<< - * - * if A < 0 or a < 0 or b < 0 or sigma < 0 or W < 0: - */ - if ((likely(PyTuple_CheckExact(__pyx_v_p))) || (PyList_CheckExact(__pyx_v_p))) { - PyObject* sequence = __pyx_v_p; - if (likely(PyTuple_CheckExact(sequence))) { - if (unlikely(PyTuple_GET_SIZE(sequence) != 6)) { - if (PyTuple_GET_SIZE(sequence) > 6) __Pyx_RaiseTooManyValuesError(6); - else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2); - __pyx_t_2 = PyTuple_GET_ITEM(sequence, 3); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 4); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 5); - } else { - if (unlikely(PyList_GET_SIZE(sequence) != 6)) { - if (PyList_GET_SIZE(sequence) > 6) __Pyx_RaiseTooManyValuesError(6); - else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_4 = PyList_GET_ITEM(sequence, 0); - __pyx_t_1 = PyList_GET_ITEM(sequence, 1); - __pyx_t_3 = PyList_GET_ITEM(sequence, 2); - __pyx_t_2 = PyList_GET_ITEM(sequence, 3); - __pyx_t_6 = PyList_GET_ITEM(sequence, 4); - __pyx_t_7 = PyList_GET_ITEM(sequence, 5); - } - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx_t_1); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx_t_7); - } else { - Py_ssize_t index = -1; - __pyx_t_8 = PyObject_GetIter(__pyx_v_p); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; - index = 0; __pyx_t_4 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_4); - index = 1; __pyx_t_1 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_1)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - index = 2; __pyx_t_3 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - index = 3; __pyx_t_2 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_2); - index = 4; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - index = 5; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L7_unpacking_done; - __pyx_L6_unpacking_failed:; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); - if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_L7_unpacking_done:; - } - __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_10 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_11 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_12 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_13 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_14 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_A = __pyx_t_10; - __pyx_v_a = __pyx_t_11; - __pyx_v_b = __pyx_t_12; - __pyx_v_c = __pyx_t_2; - __pyx_t_2 = 0; - __pyx_v_sigma = __pyx_t_13; - __pyx_v_W = __pyx_t_14; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":159 - * A,a,b,c,sigma,W=p - * - * if A < 0 or a < 0 or b < 0 or sigma < 0 or W < 0: # <<<<<<<<<<<<<< - * return 0,True - * - */ - __pyx_t_15 = (__pyx_v_A < 0.0); - if (!__pyx_t_15) { - __pyx_t_16 = (__pyx_v_a < 0.0); - if (!__pyx_t_16) { - __pyx_t_17 = (__pyx_v_b < 0.0); - if (!__pyx_t_17) { - __pyx_t_18 = (__pyx_v_sigma < 0.0); - if (!__pyx_t_18) { - __pyx_t_19 = (__pyx_v_W < 0.0); - __pyx_t_20 = __pyx_t_19; - } else { - __pyx_t_20 = __pyx_t_18; - } - __pyx_t_18 = __pyx_t_20; - } else { - __pyx_t_18 = __pyx_t_17; - } - __pyx_t_17 = __pyx_t_18; - } else { - __pyx_t_17 = __pyx_t_16; - } - __pyx_t_16 = __pyx_t_17; - } else { - __pyx_t_16 = __pyx_t_15; - } - if (__pyx_t_16) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":160 - * - * if A < 0 or a < 0 or b < 0 or sigma < 0 or W < 0: - * return 0,True # <<<<<<<<<<<<<< - * - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_6)); - __Pyx_INCREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_7); - __pyx_t_7 = 0; - __pyx_r = ((PyObject *)__pyx_t_6); - __pyx_t_6 = 0; - goto __pyx_L0; - goto __pyx_L8; - } - __pyx_L8:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":162 - * return 0,True - * - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) # <<<<<<<<<<<<<< - * - * chi2 = 0 - */ - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_A); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_a); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_b); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v_c); - PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_c); - __Pyx_GIVEREF(__pyx_v_c); - __pyx_t_6 = 0; - __pyx_t_7 = 0; - __pyx_t_2 = 0; - __pyx_t_2 = __pyx_f_11voidProject_7apTools_4chi2_24velocityProfileFitNative_ellipsoid_fun_internal(((PyObject *)__pyx_t_3), ((PyArrayObject *)__pyx_v_x_a), ((PyArrayObject *)__pyx_v_x_b)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_5 = ((PyArrayObject *)__pyx_t_2); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __pyx_t_21 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); - if (unlikely(__pyx_t_21 < 0)) { - PyErr_Fetch(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_v_predicted, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_24); - __Pyx_RaiseBufferFallbackError(); - } else { - PyErr_Restore(__pyx_t_22, __pyx_t_23, __pyx_t_24); - } - } - __pyx_bstride_0_predicted = __pyx_bstruct_predicted.strides[0]; - __pyx_bshape_0_predicted = __pyx_bstruct_predicted.shape[0]; - if (unlikely(__pyx_t_21 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_5 = 0; - __Pyx_DECREF(((PyObject *)__pyx_v_predicted)); - __pyx_v_predicted = ((PyArrayObject *)__pyx_t_2); - __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":164 - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) - * - * chi2 = 0 # <<<<<<<<<<<<<< - * norm_chi2 = 0 - * - */ - __pyx_v_chi2 = 0.0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":165 - * - * chi2 = 0 - * norm_chi2 = 0 # <<<<<<<<<<<<<< - * - * for i in range(N): - */ - __pyx_v_norm_chi2 = 0.0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":167 - * norm_chi2 = 0 - * - * for i in range(N): # <<<<<<<<<<<<<< - * sqrt_x_a = sqrt(x_a[i]) - * - */ - __pyx_t_21 = __pyx_v_N; - for (__pyx_t_25 = 0; __pyx_t_25 < __pyx_t_21; __pyx_t_25+=1) { - __pyx_v_i = __pyx_t_25; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":168 - * - * for i in range(N): - * sqrt_x_a = sqrt(x_a[i]) # <<<<<<<<<<<<<< - * - * sloc = sigma/sqrt_x_a - */ - __pyx_t_26 = __pyx_v_i; - if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_bshape_0_x_a; - __pyx_v_sqrt_x_a = sqrt((*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_x_a.buf, __pyx_t_26, __pyx_bstride_0_x_a))); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":170 - * sqrt_x_a = sqrt(x_a[i]) - * - * sloc = sigma/sqrt_x_a # <<<<<<<<<<<<<< - * Wloc = W/sqrt_x_a - * - */ - __pyx_v_sloc = (__pyx_v_sigma / __pyx_v_sqrt_x_a); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":171 - * - * sloc = sigma/sqrt_x_a - * Wloc = W/sqrt_x_a # <<<<<<<<<<<<<< - * - * one_err = (data[i]-predicted[i]) - */ - __pyx_v_Wloc = (__pyx_v_W / __pyx_v_sqrt_x_a); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":173 - * Wloc = W/sqrt_x_a - * - * one_err = (data[i]-predicted[i]) # <<<<<<<<<<<<<< - * - * if (one_err >= 0) and (one_err < W): - */ - __pyx_t_27 = __pyx_v_i; - if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_bshape_0_data; - __pyx_t_28 = __pyx_v_i; - if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_bshape_0_predicted; - __pyx_v_one_err = ((*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_data.buf, __pyx_t_27, __pyx_bstride_0_data)) - (*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_predicted.buf, __pyx_t_28, __pyx_bstride_0_predicted))); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":175 - * one_err = (data[i]-predicted[i]) - * - * if (one_err >= 0) and (one_err < W): # <<<<<<<<<<<<<< - * d = Wloc*Wloc - * elif (one_err < 0): - */ - __pyx_t_16 = (__pyx_v_one_err >= 0.0); - if (__pyx_t_16) { - __pyx_t_15 = (__pyx_v_one_err < __pyx_v_W); - __pyx_t_17 = __pyx_t_15; - } else { - __pyx_t_17 = __pyx_t_16; - } - if (__pyx_t_17) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":176 - * - * if (one_err >= 0) and (one_err < W): - * d = Wloc*Wloc # <<<<<<<<<<<<<< - * elif (one_err < 0): - * d = one_err*one_err + Wloc*Wloc - */ - __pyx_v_d = (__pyx_v_Wloc * __pyx_v_Wloc); - goto __pyx_L11; - } - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":177 - * if (one_err >= 0) and (one_err < W): - * d = Wloc*Wloc - * elif (one_err < 0): # <<<<<<<<<<<<<< - * d = one_err*one_err + Wloc*Wloc - * else: - */ - __pyx_t_17 = (__pyx_v_one_err < 0.0); - if (__pyx_t_17) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":178 - * d = Wloc*Wloc - * elif (one_err < 0): - * d = one_err*one_err + Wloc*Wloc # <<<<<<<<<<<<<< - * else: - * d = one_err*one_err - */ - __pyx_v_d = ((__pyx_v_one_err * __pyx_v_one_err) + (__pyx_v_Wloc * __pyx_v_Wloc)); - goto __pyx_L11; - } - /*else*/ { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":180 - * d = one_err*one_err + Wloc*Wloc - * else: - * d = one_err*one_err # <<<<<<<<<<<<<< - * - * sloc2 = sloc*sloc - */ - __pyx_v_d = (__pyx_v_one_err * __pyx_v_one_err); - } - __pyx_L11:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":182 - * d = one_err*one_err - * - * sloc2 = sloc*sloc # <<<<<<<<<<<<<< - * chi2 = chi2 + d/(sloc2) - * - */ - __pyx_v_sloc2 = (__pyx_v_sloc * __pyx_v_sloc); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":183 - * - * sloc2 = sloc*sloc - * chi2 = chi2 + d/(sloc2) # <<<<<<<<<<<<<< - * - * u = Wloc*Wloc/sloc2 - */ - __pyx_v_chi2 = (__pyx_v_chi2 + (__pyx_v_d / __pyx_v_sloc2)); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":185 - * chi2 = chi2 + d/(sloc2) - * - * u = Wloc*Wloc/sloc2 # <<<<<<<<<<<<<< - * if u > 50: - * # We only keep the first term, the second term is totally - */ - __pyx_t_2 = PyFloat_FromDouble(((__pyx_v_Wloc * __pyx_v_Wloc) / __pyx_v_sloc2)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_v_u); - __pyx_v_u = __pyx_t_2; - __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":186 - * - * u = Wloc*Wloc/sloc2 - * if u > 50: # <<<<<<<<<<<<<< - * # We only keep the first term, the second term is totally - * # negligible - */ - __pyx_t_2 = PyObject_RichCompare(__pyx_v_u, __pyx_int_50, Py_GT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_17 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__pyx_t_17) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":189 - * # We only keep the first term, the second term is totally - * # negligible - * one_norm = -0.5*u + log(Wloc) # <<<<<<<<<<<<<< - * else: - * one_norm = log(Wloc*exp(-0.5*u) + \ - */ - __pyx_t_2 = PyFloat_FromDouble(-0.5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_v_u); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyFloat_FromDouble(log(__pyx_v_Wloc)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = PyNumber_Add(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_14 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_one_norm = __pyx_t_14; - goto __pyx_L12; - } - /*else*/ { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":191 - * one_norm = -0.5*u + log(Wloc) - * else: - * one_norm = log(Wloc*exp(-0.5*u) + \ # <<<<<<<<<<<<<< - * 0.5*sqrt_2pi*sloc*(1+exp(-0.5*u))*gsl_sf_erfc(Wloc/(sq2*sloc))) - * - */ - __pyx_t_7 = PyFloat_FromDouble(-0.5); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = PyNumber_Multiply(__pyx_t_7, __pyx_v_u); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_29 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_29 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":192 - * else: - * one_norm = log(Wloc*exp(-0.5*u) + \ - * 0.5*sqrt_2pi*sloc*(1+exp(-0.5*u))*gsl_sf_erfc(Wloc/(sq2*sloc))) # <<<<<<<<<<<<<< - * - * norm_chi2 = norm_chi2 + one_norm - */ - __pyx_t_2 = PyFloat_FromDouble(-0.5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = PyNumber_Multiply(__pyx_t_2, __pyx_v_u); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_30 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_30 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_one_norm = log(((__pyx_v_Wloc * exp(__pyx_t_29)) + ((((0.5 * __pyx_v_11voidProject_7apTools_4chi2_24velocityProfileFitNative_sqrt_2pi) * __pyx_v_sloc) * (1.0 + exp(__pyx_t_30))) * gsl_sf_erfc((__pyx_v_Wloc / (__pyx_v_11voidProject_7apTools_4chi2_24velocityProfileFitNative_sq2 * __pyx_v_sloc)))))); - } - __pyx_L12:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":194 - * 0.5*sqrt_2pi*sloc*(1+exp(-0.5*u))*gsl_sf_erfc(Wloc/(sq2*sloc))) - * - * norm_chi2 = norm_chi2 + one_norm # <<<<<<<<<<<<<< - * - * return chi2 + 2*norm_chi2, False - */ - __pyx_v_norm_chi2 = (__pyx_v_norm_chi2 + __pyx_v_one_norm); - } - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":196 - * norm_chi2 = norm_chi2 + one_norm - * - * return chi2 + 2*norm_chi2, False # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = PyFloat_FromDouble((__pyx_v_chi2 + (2.0 * __pyx_v_norm_chi2))); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_2); - __pyx_t_7 = 0; - __pyx_t_2 = 0; - __pyx_r = ((PyObject *)__pyx_t_3); - __pyx_t_3 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_b); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_a); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_data); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("voidProject.apTools.chi2.velocityProfileFitNative.chi2_ellipsoid_aniso", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_b); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_a); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_data); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_predicted); - __Pyx_XDECREF(__pyx_v_c); - __Pyx_XDECREF(__pyx_v_u); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":201 - * @cython.boundscheck(False) - * @cython.cdivision(True) - * def chi2_ellipsoid_aniso2(p, np.ndarray[DTYPE_t,ndim=1] data not None, # <<<<<<<<<<<<<< - * np.ndarray[DTYPE_t,ndim=1] x_a not None, - * np.ndarray[DTYPE_t,ndim=1] x_b not None, - */ - -static PyObject *__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_3chi2_ellipsoid_aniso2(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_11voidProject_7apTools_4chi2_24velocityProfileFitNative_3chi2_ellipsoid_aniso2 = {__Pyx_NAMESTR("chi2_ellipsoid_aniso2"), (PyCFunction)__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_3chi2_ellipsoid_aniso2, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}; -static PyObject *__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_3chi2_ellipsoid_aniso2(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_p = 0; - PyArrayObject *__pyx_v_data = 0; - PyArrayObject *__pyx_v_x_a = 0; - PyArrayObject *__pyx_v_x_b = 0; - int __pyx_v_N; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_A; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_a; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_b; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sigma; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_chi2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_d; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_norm_chi2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sloc; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sloc2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_one_norm; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_one_err; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_W; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_Wloc; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_u; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_u2; - PyArrayObject *__pyx_v_predicted = 0; - PyObject *__pyx_v_c = NULL; - int __pyx_v_i; - Py_buffer __pyx_bstruct_x_b; - Py_ssize_t __pyx_bstride_0_x_b = 0; - Py_ssize_t __pyx_bshape_0_x_b = 0; - Py_buffer __pyx_bstruct_x_a; - Py_ssize_t __pyx_bstride_0_x_a = 0; - Py_ssize_t __pyx_bshape_0_x_a = 0; - Py_buffer __pyx_bstruct_data; - Py_ssize_t __pyx_bstride_0_data = 0; - Py_ssize_t __pyx_bshape_0_data = 0; - Py_buffer __pyx_bstruct_predicted; - Py_ssize_t __pyx_bstride_0_predicted = 0; - Py_ssize_t __pyx_bshape_0_predicted = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyArrayObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *(*__pyx_t_9)(PyObject *); - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_10; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_11; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_12; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_13; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_14; - int __pyx_t_15; - int __pyx_t_16; - int __pyx_t_17; - int __pyx_t_18; - int __pyx_t_19; - int __pyx_t_20; - int __pyx_t_21; - PyObject *__pyx_t_22 = NULL; - PyObject *__pyx_t_23 = NULL; - PyObject *__pyx_t_24 = NULL; - int __pyx_t_25; - int __pyx_t_26; - int __pyx_t_27; - int __pyx_t_28; - int __pyx_t_29; - int __pyx_t_30; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__data,&__pyx_n_s__x_a,&__pyx_n_s__x_b,&__pyx_n_s__N,0}; - __Pyx_RefNannySetupContext("chi2_ellipsoid_aniso2"); - __pyx_self = __pyx_self; - { - PyObject* values[5] = {0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__data); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso2", 1, 5, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 2: - values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_a); - if (likely(values[2])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso2", 1, 5, 5, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 3: - values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_b); - if (likely(values[3])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso2", 1, 5, 5, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 4: - values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__N); - if (likely(values[4])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso2", 1, 5, 5, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "chi2_ellipsoid_aniso2") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - } - __pyx_v_p = values[0]; - __pyx_v_data = ((PyArrayObject *)values[1]); - __pyx_v_x_a = ((PyArrayObject *)values[2]); - __pyx_v_x_b = ((PyArrayObject *)values[3]); - __pyx_v_N = __Pyx_PyInt_AsInt(values[4]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso2", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("voidProject.apTools.chi2.velocityProfileFitNative.chi2_ellipsoid_aniso2", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_bstruct_predicted.buf = NULL; - __pyx_bstruct_data.buf = NULL; - __pyx_bstruct_x_a.buf = NULL; - __pyx_bstruct_x_b.buf = NULL; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_data), __pyx_ptype_5numpy_ndarray, 0, "data", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_a), __pyx_ptype_5numpy_ndarray, 0, "x_a", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_b), __pyx_ptype_5numpy_ndarray, 0, "x_b", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_data, (PyObject*)__pyx_v_data, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_data = __pyx_bstruct_data.strides[0]; - __pyx_bshape_0_data = __pyx_bstruct_data.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_x_a, (PyObject*)__pyx_v_x_a, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_x_a = __pyx_bstruct_x_a.strides[0]; - __pyx_bshape_0_x_a = __pyx_bstruct_x_a.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_x_b, (PyObject*)__pyx_v_x_b, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_x_b = __pyx_bstruct_x_b.strides[0]; - __pyx_bshape_0_x_b = __pyx_bstruct_x_b.shape[0]; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":209 - * cdef DTYPE_t norm_chi2, sloc, sloc2, one_norm - * cdef DTYPE_t one_err, W, Wloc, u, u2 - * cdef np.ndarray[DTYPE_t, ndim=1] predicted = np.empty(N, dtype=DTYPE) # <<<<<<<<<<<<<< - * global sqrt_2pi, sq2, sqrt_pi_2 - * - */ - __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__empty); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyInt_FromLong(__pyx_v_N); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTYPE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_2, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_5 = ((PyArrayObject *)__pyx_t_4); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - __pyx_v_predicted = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_predicted.buf = NULL; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } else {__pyx_bstride_0_predicted = __pyx_bstruct_predicted.strides[0]; - __pyx_bshape_0_predicted = __pyx_bstruct_predicted.shape[0]; - } - } - __pyx_t_5 = 0; - __pyx_v_predicted = ((PyArrayObject *)__pyx_t_4); - __pyx_t_4 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":212 - * global sqrt_2pi, sq2, sqrt_pi_2 - * - * A,a,b,c,sigma,W=p # <<<<<<<<<<<<<< - * - * if A < 0 or a < 0 or b < 0 or sigma < 0 or W < 0: - */ - if ((likely(PyTuple_CheckExact(__pyx_v_p))) || (PyList_CheckExact(__pyx_v_p))) { - PyObject* sequence = __pyx_v_p; - if (likely(PyTuple_CheckExact(sequence))) { - if (unlikely(PyTuple_GET_SIZE(sequence) != 6)) { - if (PyTuple_GET_SIZE(sequence) > 6) __Pyx_RaiseTooManyValuesError(6); - else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2); - __pyx_t_2 = PyTuple_GET_ITEM(sequence, 3); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 4); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 5); - } else { - if (unlikely(PyList_GET_SIZE(sequence) != 6)) { - if (PyList_GET_SIZE(sequence) > 6) __Pyx_RaiseTooManyValuesError(6); - else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_4 = PyList_GET_ITEM(sequence, 0); - __pyx_t_1 = PyList_GET_ITEM(sequence, 1); - __pyx_t_3 = PyList_GET_ITEM(sequence, 2); - __pyx_t_2 = PyList_GET_ITEM(sequence, 3); - __pyx_t_6 = PyList_GET_ITEM(sequence, 4); - __pyx_t_7 = PyList_GET_ITEM(sequence, 5); - } - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx_t_1); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx_t_7); - } else { - Py_ssize_t index = -1; - __pyx_t_8 = PyObject_GetIter(__pyx_v_p); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; - index = 0; __pyx_t_4 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_4); - index = 1; __pyx_t_1 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_1)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - index = 2; __pyx_t_3 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - index = 3; __pyx_t_2 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_2); - index = 4; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - index = 5; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L7_unpacking_done; - __pyx_L6_unpacking_failed:; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); - if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_L7_unpacking_done:; - } - __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_10 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_11 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_12 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_13 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_14 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_A = __pyx_t_10; - __pyx_v_a = __pyx_t_11; - __pyx_v_b = __pyx_t_12; - __pyx_v_c = __pyx_t_2; - __pyx_t_2 = 0; - __pyx_v_sigma = __pyx_t_13; - __pyx_v_W = __pyx_t_14; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":214 - * A,a,b,c,sigma,W=p - * - * if A < 0 or a < 0 or b < 0 or sigma < 0 or W < 0: # <<<<<<<<<<<<<< - * return 0,True - * - */ - __pyx_t_15 = (__pyx_v_A < 0.0); - if (!__pyx_t_15) { - __pyx_t_16 = (__pyx_v_a < 0.0); - if (!__pyx_t_16) { - __pyx_t_17 = (__pyx_v_b < 0.0); - if (!__pyx_t_17) { - __pyx_t_18 = (__pyx_v_sigma < 0.0); - if (!__pyx_t_18) { - __pyx_t_19 = (__pyx_v_W < 0.0); - __pyx_t_20 = __pyx_t_19; - } else { - __pyx_t_20 = __pyx_t_18; - } - __pyx_t_18 = __pyx_t_20; - } else { - __pyx_t_18 = __pyx_t_17; - } - __pyx_t_17 = __pyx_t_18; - } else { - __pyx_t_17 = __pyx_t_16; - } - __pyx_t_16 = __pyx_t_17; - } else { - __pyx_t_16 = __pyx_t_15; - } - if (__pyx_t_16) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":215 - * - * if A < 0 or a < 0 or b < 0 or sigma < 0 or W < 0: - * return 0,True # <<<<<<<<<<<<<< - * - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_6)); - __Pyx_INCREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_7); - __pyx_t_7 = 0; - __pyx_r = ((PyObject *)__pyx_t_6); - __pyx_t_6 = 0; - goto __pyx_L0; - goto __pyx_L8; - } - __pyx_L8:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":217 - * return 0,True - * - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) # <<<<<<<<<<<<<< - * - * chi2 = 0 - */ - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_A); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_a); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_b); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v_c); - PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_c); - __Pyx_GIVEREF(__pyx_v_c); - __pyx_t_6 = 0; - __pyx_t_7 = 0; - __pyx_t_2 = 0; - __pyx_t_2 = __pyx_f_11voidProject_7apTools_4chi2_24velocityProfileFitNative_ellipsoid_fun_internal(((PyObject *)__pyx_t_3), ((PyArrayObject *)__pyx_v_x_a), ((PyArrayObject *)__pyx_v_x_b)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_5 = ((PyArrayObject *)__pyx_t_2); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __pyx_t_21 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); - if (unlikely(__pyx_t_21 < 0)) { - PyErr_Fetch(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_v_predicted, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_24); - __Pyx_RaiseBufferFallbackError(); - } else { - PyErr_Restore(__pyx_t_22, __pyx_t_23, __pyx_t_24); - } - } - __pyx_bstride_0_predicted = __pyx_bstruct_predicted.strides[0]; - __pyx_bshape_0_predicted = __pyx_bstruct_predicted.shape[0]; - if (unlikely(__pyx_t_21 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_5 = 0; - __Pyx_DECREF(((PyObject *)__pyx_v_predicted)); - __pyx_v_predicted = ((PyArrayObject *)__pyx_t_2); - __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":219 - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) - * - * chi2 = 0 # <<<<<<<<<<<<<< - * norm_chi2 = 0 - * - */ - __pyx_v_chi2 = 0.0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":220 - * - * chi2 = 0 - * norm_chi2 = 0 # <<<<<<<<<<<<<< - * - * for i in range(N): - */ - __pyx_v_norm_chi2 = 0.0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":222 - * norm_chi2 = 0 - * - * for i in range(N): # <<<<<<<<<<<<<< - * sloc = sigma*sqrt(1/x_a[i]) - * Wloc = W*predicted[i]/sqrt(x_a[i]) - */ - __pyx_t_21 = __pyx_v_N; - for (__pyx_t_25 = 0; __pyx_t_25 < __pyx_t_21; __pyx_t_25+=1) { - __pyx_v_i = __pyx_t_25; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":223 - * - * for i in range(N): - * sloc = sigma*sqrt(1/x_a[i]) # <<<<<<<<<<<<<< - * Wloc = W*predicted[i]/sqrt(x_a[i]) - * - */ - __pyx_t_26 = __pyx_v_i; - if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_bshape_0_x_a; - __pyx_v_sloc = (__pyx_v_sigma * sqrt((1.0 / (*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_x_a.buf, __pyx_t_26, __pyx_bstride_0_x_a))))); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":224 - * for i in range(N): - * sloc = sigma*sqrt(1/x_a[i]) - * Wloc = W*predicted[i]/sqrt(x_a[i]) # <<<<<<<<<<<<<< - * - * one_err = (data[i]-predicted[i]) - */ - __pyx_t_27 = __pyx_v_i; - if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_bshape_0_predicted; - __pyx_t_28 = __pyx_v_i; - if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_bshape_0_x_a; - __pyx_v_Wloc = ((__pyx_v_W * (*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_predicted.buf, __pyx_t_27, __pyx_bstride_0_predicted))) / sqrt((*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_x_a.buf, __pyx_t_28, __pyx_bstride_0_x_a)))); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":226 - * Wloc = W*predicted[i]/sqrt(x_a[i]) - * - * one_err = (data[i]-predicted[i]) # <<<<<<<<<<<<<< - * - * if (one_err >= 0) and (one_err < Wloc): - */ - __pyx_t_29 = __pyx_v_i; - if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_bshape_0_data; - __pyx_t_30 = __pyx_v_i; - if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_bshape_0_predicted; - __pyx_v_one_err = ((*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_data.buf, __pyx_t_29, __pyx_bstride_0_data)) - (*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_predicted.buf, __pyx_t_30, __pyx_bstride_0_predicted))); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":228 - * one_err = (data[i]-predicted[i]) - * - * if (one_err >= 0) and (one_err < Wloc): # <<<<<<<<<<<<<< - * d = Wloc*Wloc - * elif (one_err < 0): - */ - __pyx_t_16 = (__pyx_v_one_err >= 0.0); - if (__pyx_t_16) { - __pyx_t_15 = (__pyx_v_one_err < __pyx_v_Wloc); - __pyx_t_17 = __pyx_t_15; - } else { - __pyx_t_17 = __pyx_t_16; - } - if (__pyx_t_17) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":229 - * - * if (one_err >= 0) and (one_err < Wloc): - * d = Wloc*Wloc # <<<<<<<<<<<<<< - * elif (one_err < 0): - * d = Wloc*Wloc + one_err*one_err - */ - __pyx_v_d = (__pyx_v_Wloc * __pyx_v_Wloc); - goto __pyx_L11; - } - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":230 - * if (one_err >= 0) and (one_err < Wloc): - * d = Wloc*Wloc - * elif (one_err < 0): # <<<<<<<<<<<<<< - * d = Wloc*Wloc + one_err*one_err - * else: - */ - __pyx_t_17 = (__pyx_v_one_err < 0.0); - if (__pyx_t_17) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":231 - * d = Wloc*Wloc - * elif (one_err < 0): - * d = Wloc*Wloc + one_err*one_err # <<<<<<<<<<<<<< - * else: - * d = one_err*one_err - */ - __pyx_v_d = ((__pyx_v_Wloc * __pyx_v_Wloc) + (__pyx_v_one_err * __pyx_v_one_err)); - goto __pyx_L11; - } - /*else*/ { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":233 - * d = Wloc*Wloc + one_err*one_err - * else: - * d = one_err*one_err # <<<<<<<<<<<<<< - * - * sloc2 = sloc*sloc - */ - __pyx_v_d = (__pyx_v_one_err * __pyx_v_one_err); - } - __pyx_L11:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":235 - * d = one_err*one_err - * - * sloc2 = sloc*sloc # <<<<<<<<<<<<<< - * chi2 = chi2 + d/(sloc2) - * - */ - __pyx_v_sloc2 = (__pyx_v_sloc * __pyx_v_sloc); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":236 - * - * sloc2 = sloc*sloc - * chi2 = chi2 + d/(sloc2) # <<<<<<<<<<<<<< - * - * u = Wloc/sloc - */ - __pyx_v_chi2 = (__pyx_v_chi2 + (__pyx_v_d / __pyx_v_sloc2)); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":238 - * chi2 = chi2 + d/(sloc2) - * - * u = Wloc/sloc # <<<<<<<<<<<<<< - * u2 = u*u - * if u2 > 50: - */ - __pyx_v_u = (__pyx_v_Wloc / __pyx_v_sloc); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":239 - * - * u = Wloc/sloc - * u2 = u*u # <<<<<<<<<<<<<< - * if u2 > 50: - * # We only keep the first term, the second term is totally - */ - __pyx_v_u2 = (__pyx_v_u * __pyx_v_u); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":240 - * u = Wloc/sloc - * u2 = u*u - * if u2 > 50: # <<<<<<<<<<<<<< - * # We only keep the first term, the second term is totally - * # negligible - */ - __pyx_t_17 = (__pyx_v_u2 > 50.0); - if (__pyx_t_17) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":243 - * # We only keep the first term, the second term is totally - * # negligible - * one_norm = -0.5*u2 + log(Wloc + sqrt_pi_2 * sloc) # <<<<<<<<<<<<<< - * else: - * one_norm = -0.5*u2 + log(Wloc + sqrt_pi_2 * sloc * (1 + exp(0.5*u2)*gsl_sf_erfc(u/sq2))) - */ - __pyx_v_one_norm = ((-0.5 * __pyx_v_u2) + log((__pyx_v_Wloc + (__pyx_v_11voidProject_7apTools_4chi2_24velocityProfileFitNative_sqrt_pi_2 * __pyx_v_sloc)))); - goto __pyx_L12; - } - /*else*/ { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":245 - * one_norm = -0.5*u2 + log(Wloc + sqrt_pi_2 * sloc) - * else: - * one_norm = -0.5*u2 + log(Wloc + sqrt_pi_2 * sloc * (1 + exp(0.5*u2)*gsl_sf_erfc(u/sq2))) # <<<<<<<<<<<<<< - * - * # one_norm = log(Wloc*exp(-0.5*u) + \ - */ - __pyx_v_one_norm = ((-0.5 * __pyx_v_u2) + log((__pyx_v_Wloc + ((__pyx_v_11voidProject_7apTools_4chi2_24velocityProfileFitNative_sqrt_pi_2 * __pyx_v_sloc) * (1.0 + (exp((0.5 * __pyx_v_u2)) * gsl_sf_erfc((__pyx_v_u / __pyx_v_11voidProject_7apTools_4chi2_24velocityProfileFitNative_sq2)))))))); - } - __pyx_L12:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":250 - * # 0.5*sqrt_2pi*sloc*(1+exp(-0.5*u))*gsl_sf_erfc(Wloc/(sq2*sloc))) - * - * norm_chi2 = norm_chi2 + one_norm # <<<<<<<<<<<<<< - * - * return chi2 + 2*norm_chi2, False - */ - __pyx_v_norm_chi2 = (__pyx_v_norm_chi2 + __pyx_v_one_norm); - } - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":252 - * norm_chi2 = norm_chi2 + one_norm - * - * return chi2 + 2*norm_chi2, False # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyFloat_FromDouble((__pyx_v_chi2 + (2.0 * __pyx_v_norm_chi2))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_7)); - PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3); - __Pyx_GIVEREF(__pyx_t_3); - __pyx_t_2 = 0; - __pyx_t_3 = 0; - __pyx_r = ((PyObject *)__pyx_t_7); - __pyx_t_7 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_b); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_a); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_data); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("voidProject.apTools.chi2.velocityProfileFitNative.chi2_ellipsoid_aniso2", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_b); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_a); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_data); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_predicted); - __Pyx_XDECREF(__pyx_v_c); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":258 - * @cython.boundscheck(False) - * @cython.cdivision(True) - * def chi2_ellipsoid_aniso3(p, np.ndarray[DTYPE_t,ndim=1] data not None, # <<<<<<<<<<<<<< - * np.ndarray[DTYPE_t,ndim=1] x_a not None, - * np.ndarray[DTYPE_t,ndim=1] x_b not None, - */ - -static PyObject *__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_4chi2_ellipsoid_aniso3(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_11voidProject_7apTools_4chi2_24velocityProfileFitNative_4chi2_ellipsoid_aniso3 = {__Pyx_NAMESTR("chi2_ellipsoid_aniso3"), (PyCFunction)__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_4chi2_ellipsoid_aniso3, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}; -static PyObject *__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_4chi2_ellipsoid_aniso3(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_p = 0; - PyArrayObject *__pyx_v_data = 0; - PyArrayObject *__pyx_v_x_a = 0; - PyArrayObject *__pyx_v_x_b = 0; - int __pyx_v_N; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_A; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_a; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_b; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sigma; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_chi2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_d; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_norm_chi2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sloc; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sloc2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_one_norm; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_one_err; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_W; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_Wloc; - PyArrayObject *__pyx_v_predicted = 0; - PyObject *__pyx_v_c = NULL; - int __pyx_v_i; - PyObject *__pyx_v_u = NULL; - Py_buffer __pyx_bstruct_x_b; - Py_ssize_t __pyx_bstride_0_x_b = 0; - Py_ssize_t __pyx_bshape_0_x_b = 0; - Py_buffer __pyx_bstruct_x_a; - Py_ssize_t __pyx_bstride_0_x_a = 0; - Py_ssize_t __pyx_bshape_0_x_a = 0; - Py_buffer __pyx_bstruct_data; - Py_ssize_t __pyx_bstride_0_data = 0; - Py_ssize_t __pyx_bshape_0_data = 0; - Py_buffer __pyx_bstruct_predicted; - Py_ssize_t __pyx_bstride_0_predicted = 0; - Py_ssize_t __pyx_bshape_0_predicted = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyArrayObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *(*__pyx_t_9)(PyObject *); - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_10; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_11; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_12; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_13; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_14; - int __pyx_t_15; - int __pyx_t_16; - int __pyx_t_17; - int __pyx_t_18; - int __pyx_t_19; - int __pyx_t_20; - int __pyx_t_21; - PyObject *__pyx_t_22 = NULL; - PyObject *__pyx_t_23 = NULL; - PyObject *__pyx_t_24 = NULL; - int __pyx_t_25; - int __pyx_t_26; - int __pyx_t_27; - int __pyx_t_28; - int __pyx_t_29; - int __pyx_t_30; - double __pyx_t_31; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__data,&__pyx_n_s__x_a,&__pyx_n_s__x_b,&__pyx_n_s__N,0}; - __Pyx_RefNannySetupContext("chi2_ellipsoid_aniso3"); - __pyx_self = __pyx_self; - { - PyObject* values[5] = {0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__data); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso3", 1, 5, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 2: - values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_a); - if (likely(values[2])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso3", 1, 5, 5, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 3: - values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_b); - if (likely(values[3])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso3", 1, 5, 5, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 4: - values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__N); - if (likely(values[4])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso3", 1, 5, 5, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "chi2_ellipsoid_aniso3") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - } - __pyx_v_p = values[0]; - __pyx_v_data = ((PyArrayObject *)values[1]); - __pyx_v_x_a = ((PyArrayObject *)values[2]); - __pyx_v_x_b = ((PyArrayObject *)values[3]); - __pyx_v_N = __Pyx_PyInt_AsInt(values[4]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso3", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("voidProject.apTools.chi2.velocityProfileFitNative.chi2_ellipsoid_aniso3", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_bstruct_predicted.buf = NULL; - __pyx_bstruct_data.buf = NULL; - __pyx_bstruct_x_a.buf = NULL; - __pyx_bstruct_x_b.buf = NULL; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_data), __pyx_ptype_5numpy_ndarray, 0, "data", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_a), __pyx_ptype_5numpy_ndarray, 0, "x_a", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_b), __pyx_ptype_5numpy_ndarray, 0, "x_b", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_data, (PyObject*)__pyx_v_data, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_data = __pyx_bstruct_data.strides[0]; - __pyx_bshape_0_data = __pyx_bstruct_data.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_x_a, (PyObject*)__pyx_v_x_a, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_x_a = __pyx_bstruct_x_a.strides[0]; - __pyx_bshape_0_x_a = __pyx_bstruct_x_a.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_x_b, (PyObject*)__pyx_v_x_b, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_x_b = __pyx_bstruct_x_b.strides[0]; - __pyx_bshape_0_x_b = __pyx_bstruct_x_b.shape[0]; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":266 - * cdef DTYPE_t norm_chi2, sloc, sloc2, one_norm - * cdef DTYPE_t one_err, W, Wloc - * cdef np.ndarray[DTYPE_t, ndim=1] predicted = np.empty(N, dtype=DTYPE) # <<<<<<<<<<<<<< - * global sqrt_2pi, sq2 - * - */ - __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__empty); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyInt_FromLong(__pyx_v_N); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTYPE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_2, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_5 = ((PyArrayObject *)__pyx_t_4); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - __pyx_v_predicted = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_predicted.buf = NULL; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } else {__pyx_bstride_0_predicted = __pyx_bstruct_predicted.strides[0]; - __pyx_bshape_0_predicted = __pyx_bstruct_predicted.shape[0]; - } - } - __pyx_t_5 = 0; - __pyx_v_predicted = ((PyArrayObject *)__pyx_t_4); - __pyx_t_4 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":269 - * global sqrt_2pi, sq2 - * - * A,a,b,c,sigma,W=p # <<<<<<<<<<<<<< - * - * if A < 0 or a < 0 or b < 0 or sigma < 0 or W < 0: - */ - if ((likely(PyTuple_CheckExact(__pyx_v_p))) || (PyList_CheckExact(__pyx_v_p))) { - PyObject* sequence = __pyx_v_p; - if (likely(PyTuple_CheckExact(sequence))) { - if (unlikely(PyTuple_GET_SIZE(sequence) != 6)) { - if (PyTuple_GET_SIZE(sequence) > 6) __Pyx_RaiseTooManyValuesError(6); - else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2); - __pyx_t_2 = PyTuple_GET_ITEM(sequence, 3); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 4); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 5); - } else { - if (unlikely(PyList_GET_SIZE(sequence) != 6)) { - if (PyList_GET_SIZE(sequence) > 6) __Pyx_RaiseTooManyValuesError(6); - else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_4 = PyList_GET_ITEM(sequence, 0); - __pyx_t_1 = PyList_GET_ITEM(sequence, 1); - __pyx_t_3 = PyList_GET_ITEM(sequence, 2); - __pyx_t_2 = PyList_GET_ITEM(sequence, 3); - __pyx_t_6 = PyList_GET_ITEM(sequence, 4); - __pyx_t_7 = PyList_GET_ITEM(sequence, 5); - } - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx_t_1); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx_t_7); - } else { - Py_ssize_t index = -1; - __pyx_t_8 = PyObject_GetIter(__pyx_v_p); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; - index = 0; __pyx_t_4 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_4); - index = 1; __pyx_t_1 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_1)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - index = 2; __pyx_t_3 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - index = 3; __pyx_t_2 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_2); - index = 4; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - index = 5; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L7_unpacking_done; - __pyx_L6_unpacking_failed:; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); - if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_L7_unpacking_done:; - } - __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_10 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_11 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_12 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_13 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_14 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_A = __pyx_t_10; - __pyx_v_a = __pyx_t_11; - __pyx_v_b = __pyx_t_12; - __pyx_v_c = __pyx_t_2; - __pyx_t_2 = 0; - __pyx_v_sigma = __pyx_t_13; - __pyx_v_W = __pyx_t_14; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":271 - * A,a,b,c,sigma,W=p - * - * if A < 0 or a < 0 or b < 0 or sigma < 0 or W < 0: # <<<<<<<<<<<<<< - * return 0,True - * - */ - __pyx_t_15 = (__pyx_v_A < 0.0); - if (!__pyx_t_15) { - __pyx_t_16 = (__pyx_v_a < 0.0); - if (!__pyx_t_16) { - __pyx_t_17 = (__pyx_v_b < 0.0); - if (!__pyx_t_17) { - __pyx_t_18 = (__pyx_v_sigma < 0.0); - if (!__pyx_t_18) { - __pyx_t_19 = (__pyx_v_W < 0.0); - __pyx_t_20 = __pyx_t_19; - } else { - __pyx_t_20 = __pyx_t_18; - } - __pyx_t_18 = __pyx_t_20; - } else { - __pyx_t_18 = __pyx_t_17; - } - __pyx_t_17 = __pyx_t_18; - } else { - __pyx_t_17 = __pyx_t_16; - } - __pyx_t_16 = __pyx_t_17; - } else { - __pyx_t_16 = __pyx_t_15; - } - if (__pyx_t_16) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":272 - * - * if A < 0 or a < 0 or b < 0 or sigma < 0 or W < 0: - * return 0,True # <<<<<<<<<<<<<< - * - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_6)); - __Pyx_INCREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_7); - __pyx_t_7 = 0; - __pyx_r = ((PyObject *)__pyx_t_6); - __pyx_t_6 = 0; - goto __pyx_L0; - goto __pyx_L8; - } - __pyx_L8:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":274 - * return 0,True - * - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) # <<<<<<<<<<<<<< - * - * chi2 = 0 - */ - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_A); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_a); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_b); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v_c); - PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_c); - __Pyx_GIVEREF(__pyx_v_c); - __pyx_t_6 = 0; - __pyx_t_7 = 0; - __pyx_t_2 = 0; - __pyx_t_2 = __pyx_f_11voidProject_7apTools_4chi2_24velocityProfileFitNative_ellipsoid_fun_internal(((PyObject *)__pyx_t_3), ((PyArrayObject *)__pyx_v_x_a), ((PyArrayObject *)__pyx_v_x_b)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_5 = ((PyArrayObject *)__pyx_t_2); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __pyx_t_21 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); - if (unlikely(__pyx_t_21 < 0)) { - PyErr_Fetch(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_v_predicted, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_24); - __Pyx_RaiseBufferFallbackError(); - } else { - PyErr_Restore(__pyx_t_22, __pyx_t_23, __pyx_t_24); - } - } - __pyx_bstride_0_predicted = __pyx_bstruct_predicted.strides[0]; - __pyx_bshape_0_predicted = __pyx_bstruct_predicted.shape[0]; - if (unlikely(__pyx_t_21 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_5 = 0; - __Pyx_DECREF(((PyObject *)__pyx_v_predicted)); - __pyx_v_predicted = ((PyArrayObject *)__pyx_t_2); - __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":276 - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) - * - * chi2 = 0 # <<<<<<<<<<<<<< - * norm_chi2 = 0 - * - */ - __pyx_v_chi2 = 0.0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":277 - * - * chi2 = 0 - * norm_chi2 = 0 # <<<<<<<<<<<<<< - * - * for i in range(N): - */ - __pyx_v_norm_chi2 = 0.0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":279 - * norm_chi2 = 0 - * - * for i in range(N): # <<<<<<<<<<<<<< - * sloc = sigma*sqrt(1/x_a[i]) - * Wloc = W*predicted[i]/sqrt(x_a[i]) - */ - __pyx_t_21 = __pyx_v_N; - for (__pyx_t_25 = 0; __pyx_t_25 < __pyx_t_21; __pyx_t_25+=1) { - __pyx_v_i = __pyx_t_25; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":280 - * - * for i in range(N): - * sloc = sigma*sqrt(1/x_a[i]) # <<<<<<<<<<<<<< - * Wloc = W*predicted[i]/sqrt(x_a[i]) - * # Wloc = W*predicted[i]/sqrt(x_a[i]) - */ - __pyx_t_26 = __pyx_v_i; - if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_bshape_0_x_a; - __pyx_v_sloc = (__pyx_v_sigma * sqrt((1.0 / (*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_x_a.buf, __pyx_t_26, __pyx_bstride_0_x_a))))); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":281 - * for i in range(N): - * sloc = sigma*sqrt(1/x_a[i]) - * Wloc = W*predicted[i]/sqrt(x_a[i]) # <<<<<<<<<<<<<< - * # Wloc = W*predicted[i]/sqrt(x_a[i]) - * - */ - __pyx_t_27 = __pyx_v_i; - if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_bshape_0_predicted; - __pyx_t_28 = __pyx_v_i; - if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_bshape_0_x_a; - __pyx_v_Wloc = ((__pyx_v_W * (*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_predicted.buf, __pyx_t_27, __pyx_bstride_0_predicted))) / sqrt((*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_x_a.buf, __pyx_t_28, __pyx_bstride_0_x_a)))); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":284 - * # Wloc = W*predicted[i]/sqrt(x_a[i]) - * - * one_err = fabs(data[i]-predicted[i]) # <<<<<<<<<<<<<< - * - * if (one_err < Wloc): - */ - __pyx_t_29 = __pyx_v_i; - if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_bshape_0_data; - __pyx_t_30 = __pyx_v_i; - if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_bshape_0_predicted; - __pyx_v_one_err = fabs(((*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_data.buf, __pyx_t_29, __pyx_bstride_0_data)) - (*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_predicted.buf, __pyx_t_30, __pyx_bstride_0_predicted)))); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":286 - * one_err = fabs(data[i]-predicted[i]) - * - * if (one_err < Wloc): # <<<<<<<<<<<<<< - * d = Wloc*Wloc - * else: - */ - __pyx_t_16 = (__pyx_v_one_err < __pyx_v_Wloc); - if (__pyx_t_16) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":287 - * - * if (one_err < Wloc): - * d = Wloc*Wloc # <<<<<<<<<<<<<< - * else: - * d = one_err*one_err - */ - __pyx_v_d = (__pyx_v_Wloc * __pyx_v_Wloc); - goto __pyx_L11; - } - /*else*/ { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":289 - * d = Wloc*Wloc - * else: - * d = one_err*one_err # <<<<<<<<<<<<<< - * - * sloc2 = sloc*sloc - */ - __pyx_v_d = (__pyx_v_one_err * __pyx_v_one_err); - } - __pyx_L11:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":291 - * d = one_err*one_err - * - * sloc2 = sloc*sloc # <<<<<<<<<<<<<< - * chi2 = chi2 + d/(sloc2) - * - */ - __pyx_v_sloc2 = (__pyx_v_sloc * __pyx_v_sloc); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":292 - * - * sloc2 = sloc*sloc - * chi2 = chi2 + d/(sloc2) # <<<<<<<<<<<<<< - * - * u = Wloc*Wloc/sloc2 - */ - __pyx_v_chi2 = (__pyx_v_chi2 + (__pyx_v_d / __pyx_v_sloc2)); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":294 - * chi2 = chi2 + d/(sloc2) - * - * u = Wloc*Wloc/sloc2 # <<<<<<<<<<<<<< - * if u > 50: - * # We only keep the first term, the second term is totally - */ - __pyx_t_2 = PyFloat_FromDouble(((__pyx_v_Wloc * __pyx_v_Wloc) / __pyx_v_sloc2)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_v_u); - __pyx_v_u = __pyx_t_2; - __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":295 - * - * u = Wloc*Wloc/sloc2 - * if u > 50: # <<<<<<<<<<<<<< - * # We only keep the first term, the second term is totally - * # negligible - */ - __pyx_t_2 = PyObject_RichCompare(__pyx_v_u, __pyx_int_50, Py_GT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_16 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__pyx_t_16) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":298 - * # We only keep the first term, the second term is totally - * # negligible - * one_norm = -0.5*u + log(2*Wloc) # <<<<<<<<<<<<<< - * else: - * one_norm = log(2*Wloc*exp(-0.5*u) + \ - */ - __pyx_t_2 = PyFloat_FromDouble(-0.5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_v_u); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyFloat_FromDouble(log((2.0 * __pyx_v_Wloc))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = PyNumber_Add(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_14 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_one_norm = __pyx_t_14; - goto __pyx_L12; - } - /*else*/ { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":300 - * one_norm = -0.5*u + log(2*Wloc) - * else: - * one_norm = log(2*Wloc*exp(-0.5*u) + \ # <<<<<<<<<<<<<< - * sqrt_2pi*sloc*gsl_sf_erfc(Wloc/(sq2*sloc))) - * - */ - __pyx_t_7 = PyFloat_FromDouble(-0.5); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = PyNumber_Multiply(__pyx_t_7, __pyx_v_u); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_31 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_31 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":301 - * else: - * one_norm = log(2*Wloc*exp(-0.5*u) + \ - * sqrt_2pi*sloc*gsl_sf_erfc(Wloc/(sq2*sloc))) # <<<<<<<<<<<<<< - * - * norm_chi2 = norm_chi2 + one_norm - */ - __pyx_v_one_norm = log((((2.0 * __pyx_v_Wloc) * exp(__pyx_t_31)) + ((__pyx_v_11voidProject_7apTools_4chi2_24velocityProfileFitNative_sqrt_2pi * __pyx_v_sloc) * gsl_sf_erfc((__pyx_v_Wloc / (__pyx_v_11voidProject_7apTools_4chi2_24velocityProfileFitNative_sq2 * __pyx_v_sloc)))))); - } - __pyx_L12:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":303 - * sqrt_2pi*sloc*gsl_sf_erfc(Wloc/(sq2*sloc))) - * - * norm_chi2 = norm_chi2 + one_norm # <<<<<<<<<<<<<< - * - * return chi2 + 2*norm_chi2, False - */ - __pyx_v_norm_chi2 = (__pyx_v_norm_chi2 + __pyx_v_one_norm); - } - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":305 - * norm_chi2 = norm_chi2 + one_norm - * - * return chi2 + 2*norm_chi2, False # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyFloat_FromDouble((__pyx_v_chi2 + (2.0 * __pyx_v_norm_chi2))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_7); - __pyx_t_2 = 0; - __pyx_t_7 = 0; - __pyx_r = ((PyObject *)__pyx_t_3); - __pyx_t_3 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_b); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_a); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_data); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("voidProject.apTools.chi2.velocityProfileFitNative.chi2_ellipsoid_aniso3", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_b); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_a); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_data); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_predicted); - __Pyx_XDECREF(__pyx_v_c); - __Pyx_XDECREF(__pyx_v_u); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":311 - * @cython.boundscheck(False) - * @cython.cdivision(True) - * def chi2_ellipsoid_aniso4(p, np.ndarray[DTYPE_t,ndim=1] data not None, # <<<<<<<<<<<<<< - * np.ndarray[DTYPE_t,ndim=1] x_a not None, - * np.ndarray[DTYPE_t,ndim=1] x_b not None, - */ - -static PyObject *__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_5chi2_ellipsoid_aniso4(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_11voidProject_7apTools_4chi2_24velocityProfileFitNative_5chi2_ellipsoid_aniso4 = {__Pyx_NAMESTR("chi2_ellipsoid_aniso4"), (PyCFunction)__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_5chi2_ellipsoid_aniso4, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}; -static PyObject *__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_5chi2_ellipsoid_aniso4(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_p = 0; - PyArrayObject *__pyx_v_data = 0; - PyArrayObject *__pyx_v_x_a = 0; - PyArrayObject *__pyx_v_x_b = 0; - int __pyx_v_N; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_A; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_a; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_b; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sigma; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_chi2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_d; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_norm_chi2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sloc; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sloc2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_one_norm; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_one_err; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_W; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_Wloc; - PyArrayObject *__pyx_v_predicted = 0; - PyObject *__pyx_v_c = NULL; - int __pyx_v_i; - PyObject *__pyx_v_u = NULL; - Py_buffer __pyx_bstruct_x_b; - Py_ssize_t __pyx_bstride_0_x_b = 0; - Py_ssize_t __pyx_bshape_0_x_b = 0; - Py_buffer __pyx_bstruct_x_a; - Py_ssize_t __pyx_bstride_0_x_a = 0; - Py_ssize_t __pyx_bshape_0_x_a = 0; - Py_buffer __pyx_bstruct_data; - Py_ssize_t __pyx_bstride_0_data = 0; - Py_ssize_t __pyx_bshape_0_data = 0; - Py_buffer __pyx_bstruct_predicted; - Py_ssize_t __pyx_bstride_0_predicted = 0; - Py_ssize_t __pyx_bshape_0_predicted = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyArrayObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *(*__pyx_t_9)(PyObject *); - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_10; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_11; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_12; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_13; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_14; - int __pyx_t_15; - int __pyx_t_16; - int __pyx_t_17; - int __pyx_t_18; - int __pyx_t_19; - int __pyx_t_20; - int __pyx_t_21; - PyObject *__pyx_t_22 = NULL; - PyObject *__pyx_t_23 = NULL; - PyObject *__pyx_t_24 = NULL; - int __pyx_t_25; - int __pyx_t_26; - int __pyx_t_27; - int __pyx_t_28; - int __pyx_t_29; - double __pyx_t_30; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__data,&__pyx_n_s__x_a,&__pyx_n_s__x_b,&__pyx_n_s__N,0}; - __Pyx_RefNannySetupContext("chi2_ellipsoid_aniso4"); - __pyx_self = __pyx_self; - { - PyObject* values[5] = {0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__data); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso4", 1, 5, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 2: - values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_a); - if (likely(values[2])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso4", 1, 5, 5, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 3: - values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_b); - if (likely(values[3])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso4", 1, 5, 5, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 4: - values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__N); - if (likely(values[4])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso4", 1, 5, 5, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "chi2_ellipsoid_aniso4") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - } - __pyx_v_p = values[0]; - __pyx_v_data = ((PyArrayObject *)values[1]); - __pyx_v_x_a = ((PyArrayObject *)values[2]); - __pyx_v_x_b = ((PyArrayObject *)values[3]); - __pyx_v_N = __Pyx_PyInt_AsInt(values[4]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso4", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("voidProject.apTools.chi2.velocityProfileFitNative.chi2_ellipsoid_aniso4", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_bstruct_predicted.buf = NULL; - __pyx_bstruct_data.buf = NULL; - __pyx_bstruct_x_a.buf = NULL; - __pyx_bstruct_x_b.buf = NULL; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_data), __pyx_ptype_5numpy_ndarray, 0, "data", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_a), __pyx_ptype_5numpy_ndarray, 0, "x_a", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_b), __pyx_ptype_5numpy_ndarray, 0, "x_b", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 313; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_data, (PyObject*)__pyx_v_data, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_data = __pyx_bstruct_data.strides[0]; - __pyx_bshape_0_data = __pyx_bstruct_data.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_x_a, (PyObject*)__pyx_v_x_a, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_x_a = __pyx_bstruct_x_a.strides[0]; - __pyx_bshape_0_x_a = __pyx_bstruct_x_a.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_x_b, (PyObject*)__pyx_v_x_b, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_x_b = __pyx_bstruct_x_b.strides[0]; - __pyx_bshape_0_x_b = __pyx_bstruct_x_b.shape[0]; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":319 - * cdef DTYPE_t norm_chi2, sloc, sloc2, one_norm - * cdef DTYPE_t one_err, W, Wloc - * cdef np.ndarray[DTYPE_t, ndim=1] predicted = np.empty(N, dtype=DTYPE) # <<<<<<<<<<<<<< - * global sqrt_2pi, sq2, sqrt_pi_2 - * - */ - __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__empty); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyInt_FromLong(__pyx_v_N); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTYPE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_2, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_5 = ((PyArrayObject *)__pyx_t_4); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - __pyx_v_predicted = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_predicted.buf = NULL; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } else {__pyx_bstride_0_predicted = __pyx_bstruct_predicted.strides[0]; - __pyx_bshape_0_predicted = __pyx_bstruct_predicted.shape[0]; - } - } - __pyx_t_5 = 0; - __pyx_v_predicted = ((PyArrayObject *)__pyx_t_4); - __pyx_t_4 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":322 - * global sqrt_2pi, sq2, sqrt_pi_2 - * - * A,a,b,c,sigma,W=p # <<<<<<<<<<<<<< - * - * if A < 0 or a < 0 or b < 0 or sigma < 0 or W < 0: - */ - if ((likely(PyTuple_CheckExact(__pyx_v_p))) || (PyList_CheckExact(__pyx_v_p))) { - PyObject* sequence = __pyx_v_p; - if (likely(PyTuple_CheckExact(sequence))) { - if (unlikely(PyTuple_GET_SIZE(sequence) != 6)) { - if (PyTuple_GET_SIZE(sequence) > 6) __Pyx_RaiseTooManyValuesError(6); - else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2); - __pyx_t_2 = PyTuple_GET_ITEM(sequence, 3); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 4); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 5); - } else { - if (unlikely(PyList_GET_SIZE(sequence) != 6)) { - if (PyList_GET_SIZE(sequence) > 6) __Pyx_RaiseTooManyValuesError(6); - else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_4 = PyList_GET_ITEM(sequence, 0); - __pyx_t_1 = PyList_GET_ITEM(sequence, 1); - __pyx_t_3 = PyList_GET_ITEM(sequence, 2); - __pyx_t_2 = PyList_GET_ITEM(sequence, 3); - __pyx_t_6 = PyList_GET_ITEM(sequence, 4); - __pyx_t_7 = PyList_GET_ITEM(sequence, 5); - } - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx_t_1); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx_t_7); - } else { - Py_ssize_t index = -1; - __pyx_t_8 = PyObject_GetIter(__pyx_v_p); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; - index = 0; __pyx_t_4 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_4); - index = 1; __pyx_t_1 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_1)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - index = 2; __pyx_t_3 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - index = 3; __pyx_t_2 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_2); - index = 4; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - index = 5; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L7_unpacking_done; - __pyx_L6_unpacking_failed:; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); - if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_L7_unpacking_done:; - } - __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_10 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_11 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_12 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_13 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_14 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_A = __pyx_t_10; - __pyx_v_a = __pyx_t_11; - __pyx_v_b = __pyx_t_12; - __pyx_v_c = __pyx_t_2; - __pyx_t_2 = 0; - __pyx_v_sigma = __pyx_t_13; - __pyx_v_W = __pyx_t_14; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":324 - * A,a,b,c,sigma,W=p - * - * if A < 0 or a < 0 or b < 0 or sigma < 0 or W < 0: # <<<<<<<<<<<<<< - * return 0,True - * - */ - __pyx_t_15 = (__pyx_v_A < 0.0); - if (!__pyx_t_15) { - __pyx_t_16 = (__pyx_v_a < 0.0); - if (!__pyx_t_16) { - __pyx_t_17 = (__pyx_v_b < 0.0); - if (!__pyx_t_17) { - __pyx_t_18 = (__pyx_v_sigma < 0.0); - if (!__pyx_t_18) { - __pyx_t_19 = (__pyx_v_W < 0.0); - __pyx_t_20 = __pyx_t_19; - } else { - __pyx_t_20 = __pyx_t_18; - } - __pyx_t_18 = __pyx_t_20; - } else { - __pyx_t_18 = __pyx_t_17; - } - __pyx_t_17 = __pyx_t_18; - } else { - __pyx_t_17 = __pyx_t_16; - } - __pyx_t_16 = __pyx_t_17; - } else { - __pyx_t_16 = __pyx_t_15; - } - if (__pyx_t_16) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":325 - * - * if A < 0 or a < 0 or b < 0 or sigma < 0 or W < 0: - * return 0,True # <<<<<<<<<<<<<< - * - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_6)); - __Pyx_INCREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_7); - __pyx_t_7 = 0; - __pyx_r = ((PyObject *)__pyx_t_6); - __pyx_t_6 = 0; - goto __pyx_L0; - goto __pyx_L8; - } - __pyx_L8:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":327 - * return 0,True - * - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) # <<<<<<<<<<<<<< - * - * chi2 = 0 - */ - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_A); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_a); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_b); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v_c); - PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_c); - __Pyx_GIVEREF(__pyx_v_c); - __pyx_t_6 = 0; - __pyx_t_7 = 0; - __pyx_t_2 = 0; - __pyx_t_2 = __pyx_f_11voidProject_7apTools_4chi2_24velocityProfileFitNative_ellipsoid_fun_internal(((PyObject *)__pyx_t_3), ((PyArrayObject *)__pyx_v_x_a), ((PyArrayObject *)__pyx_v_x_b)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_5 = ((PyArrayObject *)__pyx_t_2); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __pyx_t_21 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); - if (unlikely(__pyx_t_21 < 0)) { - PyErr_Fetch(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_v_predicted, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_24); - __Pyx_RaiseBufferFallbackError(); - } else { - PyErr_Restore(__pyx_t_22, __pyx_t_23, __pyx_t_24); - } - } - __pyx_bstride_0_predicted = __pyx_bstruct_predicted.strides[0]; - __pyx_bshape_0_predicted = __pyx_bstruct_predicted.shape[0]; - if (unlikely(__pyx_t_21 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_5 = 0; - __Pyx_DECREF(((PyObject *)__pyx_v_predicted)); - __pyx_v_predicted = ((PyArrayObject *)__pyx_t_2); - __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":329 - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) - * - * chi2 = 0 # <<<<<<<<<<<<<< - * norm_chi2 = 0 - * - */ - __pyx_v_chi2 = 0.0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":330 - * - * chi2 = 0 - * norm_chi2 = 0 # <<<<<<<<<<<<<< - * - * for i in range(N): - */ - __pyx_v_norm_chi2 = 0.0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":332 - * norm_chi2 = 0 - * - * for i in range(N): # <<<<<<<<<<<<<< - * sloc = sigma*sqrt(1/x_a[i]) - * Wloc = W*predicted[i] - */ - __pyx_t_21 = __pyx_v_N; - for (__pyx_t_25 = 0; __pyx_t_25 < __pyx_t_21; __pyx_t_25+=1) { - __pyx_v_i = __pyx_t_25; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":333 - * - * for i in range(N): - * sloc = sigma*sqrt(1/x_a[i]) # <<<<<<<<<<<<<< - * Wloc = W*predicted[i] - * - */ - __pyx_t_26 = __pyx_v_i; - if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_bshape_0_x_a; - __pyx_v_sloc = (__pyx_v_sigma * sqrt((1.0 / (*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_x_a.buf, __pyx_t_26, __pyx_bstride_0_x_a))))); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":334 - * for i in range(N): - * sloc = sigma*sqrt(1/x_a[i]) - * Wloc = W*predicted[i] # <<<<<<<<<<<<<< - * - * one_err = (data[i]-predicted[i]) - */ - __pyx_t_27 = __pyx_v_i; - if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_bshape_0_predicted; - __pyx_v_Wloc = (__pyx_v_W * (*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_predicted.buf, __pyx_t_27, __pyx_bstride_0_predicted))); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":336 - * Wloc = W*predicted[i] - * - * one_err = (data[i]-predicted[i]) # <<<<<<<<<<<<<< - * - * if (one_err >= 0) and (one_err < Wloc): - */ - __pyx_t_28 = __pyx_v_i; - if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_bshape_0_data; - __pyx_t_29 = __pyx_v_i; - if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_bshape_0_predicted; - __pyx_v_one_err = ((*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_data.buf, __pyx_t_28, __pyx_bstride_0_data)) - (*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_predicted.buf, __pyx_t_29, __pyx_bstride_0_predicted))); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":338 - * one_err = (data[i]-predicted[i]) - * - * if (one_err >= 0) and (one_err < Wloc): # <<<<<<<<<<<<<< - * d = Wloc*Wloc - * elif (one_err < 0): - */ - __pyx_t_16 = (__pyx_v_one_err >= 0.0); - if (__pyx_t_16) { - __pyx_t_15 = (__pyx_v_one_err < __pyx_v_Wloc); - __pyx_t_17 = __pyx_t_15; - } else { - __pyx_t_17 = __pyx_t_16; - } - if (__pyx_t_17) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":339 - * - * if (one_err >= 0) and (one_err < Wloc): - * d = Wloc*Wloc # <<<<<<<<<<<<<< - * elif (one_err < 0): - * d = Wloc*Wloc + one_err*one_err - */ - __pyx_v_d = (__pyx_v_Wloc * __pyx_v_Wloc); - goto __pyx_L11; - } - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":340 - * if (one_err >= 0) and (one_err < Wloc): - * d = Wloc*Wloc - * elif (one_err < 0): # <<<<<<<<<<<<<< - * d = Wloc*Wloc + one_err*one_err - * else: - */ - __pyx_t_17 = (__pyx_v_one_err < 0.0); - if (__pyx_t_17) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":341 - * d = Wloc*Wloc - * elif (one_err < 0): - * d = Wloc*Wloc + one_err*one_err # <<<<<<<<<<<<<< - * else: - * d = one_err*one_err - */ - __pyx_v_d = ((__pyx_v_Wloc * __pyx_v_Wloc) + (__pyx_v_one_err * __pyx_v_one_err)); - goto __pyx_L11; - } - /*else*/ { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":343 - * d = Wloc*Wloc + one_err*one_err - * else: - * d = one_err*one_err # <<<<<<<<<<<<<< - * - * sloc2 = sloc*sloc - */ - __pyx_v_d = (__pyx_v_one_err * __pyx_v_one_err); - } - __pyx_L11:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":345 - * d = one_err*one_err - * - * sloc2 = sloc*sloc # <<<<<<<<<<<<<< - * chi2 = chi2 + d/(sloc2) - * - */ - __pyx_v_sloc2 = (__pyx_v_sloc * __pyx_v_sloc); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":346 - * - * sloc2 = sloc*sloc - * chi2 = chi2 + d/(sloc2) # <<<<<<<<<<<<<< - * - * u = Wloc*Wloc/sloc2 - */ - __pyx_v_chi2 = (__pyx_v_chi2 + (__pyx_v_d / __pyx_v_sloc2)); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":348 - * chi2 = chi2 + d/(sloc2) - * - * u = Wloc*Wloc/sloc2 # <<<<<<<<<<<<<< - * if u > 50: - * # We only keep the first term, the second term is totally - */ - __pyx_t_2 = PyFloat_FromDouble(((__pyx_v_Wloc * __pyx_v_Wloc) / __pyx_v_sloc2)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_v_u); - __pyx_v_u = __pyx_t_2; - __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":349 - * - * u = Wloc*Wloc/sloc2 - * if u > 50: # <<<<<<<<<<<<<< - * # We only keep the first term, the second term is totally - * # negligible - */ - __pyx_t_2 = PyObject_RichCompare(__pyx_v_u, __pyx_int_50, Py_GT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_17 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__pyx_t_17) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":352 - * # We only keep the first term, the second term is totally - * # negligible - * one_norm = -0.5*u + log(Wloc + sqrt_pi_2 * sloc) # <<<<<<<<<<<<<< - * else: - * one_norm = -0.5*u + log(Wloc + sqrt_pi_2 * sloc * (1 + exp(0.5*u)*gsl_sf_erfc(Wloc/(sq2*sloc)))) - */ - __pyx_t_2 = PyFloat_FromDouble(-0.5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_v_u); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyFloat_FromDouble(log((__pyx_v_Wloc + (__pyx_v_11voidProject_7apTools_4chi2_24velocityProfileFitNative_sqrt_pi_2 * __pyx_v_sloc)))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = PyNumber_Add(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_14 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_one_norm = __pyx_t_14; - goto __pyx_L12; - } - /*else*/ { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":354 - * one_norm = -0.5*u + log(Wloc + sqrt_pi_2 * sloc) - * else: - * one_norm = -0.5*u + log(Wloc + sqrt_pi_2 * sloc * (1 + exp(0.5*u)*gsl_sf_erfc(Wloc/(sq2*sloc)))) # <<<<<<<<<<<<<< - * - * # one_norm = log(Wloc*exp(-0.5*u) + \ - */ - __pyx_t_7 = PyFloat_FromDouble(-0.5); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = PyNumber_Multiply(__pyx_t_7, __pyx_v_u); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyFloat_FromDouble(0.5); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = PyNumber_Multiply(__pyx_t_7, __pyx_v_u); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_30 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_30 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyFloat_FromDouble(log((__pyx_v_Wloc + ((__pyx_v_11voidProject_7apTools_4chi2_24velocityProfileFitNative_sqrt_pi_2 * __pyx_v_sloc) * (1.0 + (exp(__pyx_t_30) * gsl_sf_erfc((__pyx_v_Wloc / (__pyx_v_11voidProject_7apTools_4chi2_24velocityProfileFitNative_sq2 * __pyx_v_sloc))))))))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = PyNumber_Add(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_14 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_one_norm = __pyx_t_14; - } - __pyx_L12:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":359 - * # 0.5*sqrt_2pi*sloc*(1+exp(-0.5*u))*gsl_sf_erfc(Wloc/(sq2*sloc))) - * - * norm_chi2 = norm_chi2 + one_norm # <<<<<<<<<<<<<< - * - * return chi2 + 2*norm_chi2, False - */ - __pyx_v_norm_chi2 = (__pyx_v_norm_chi2 + __pyx_v_one_norm); - } - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":361 - * norm_chi2 = norm_chi2 + one_norm - * - * return chi2 + 2*norm_chi2, False # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = PyFloat_FromDouble((__pyx_v_chi2 + (2.0 * __pyx_v_norm_chi2))); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_2)); - PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); - __Pyx_GIVEREF(__pyx_t_3); - __pyx_t_7 = 0; - __pyx_t_3 = 0; - __pyx_r = ((PyObject *)__pyx_t_2); - __pyx_t_2 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_b); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_a); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_data); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("voidProject.apTools.chi2.velocityProfileFitNative.chi2_ellipsoid_aniso4", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_b); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_a); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_data); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_predicted); - __Pyx_XDECREF(__pyx_v_c); - __Pyx_XDECREF(__pyx_v_u); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":367 - * @cython.boundscheck(False) - * @cython.cdivision(True) - * def chi2_ellipsoid_aniso5(p, np.ndarray[DTYPE_t,ndim=1] data not None, # <<<<<<<<<<<<<< - * np.ndarray[DTYPE_t,ndim=1] x_a not None, - * np.ndarray[DTYPE_t,ndim=1] x_b not None, - */ - -static PyObject *__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_6chi2_ellipsoid_aniso5(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_11voidProject_7apTools_4chi2_24velocityProfileFitNative_6chi2_ellipsoid_aniso5 = {__Pyx_NAMESTR("chi2_ellipsoid_aniso5"), (PyCFunction)__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_6chi2_ellipsoid_aniso5, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}; -static PyObject *__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_6chi2_ellipsoid_aniso5(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_p = 0; - PyArrayObject *__pyx_v_data = 0; - PyArrayObject *__pyx_v_x_a = 0; - PyArrayObject *__pyx_v_x_b = 0; - int __pyx_v_N; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_A; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_a; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_b; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_c; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sigma_in; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sigma_out; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sigma; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_chi2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_d; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_norm_chi2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sloc; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sloc2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_one_norm; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_one_err; - PyArrayObject *__pyx_v_predicted = 0; - int __pyx_v_i; - Py_buffer __pyx_bstruct_x_b; - Py_ssize_t __pyx_bstride_0_x_b = 0; - Py_ssize_t __pyx_bshape_0_x_b = 0; - Py_buffer __pyx_bstruct_x_a; - Py_ssize_t __pyx_bstride_0_x_a = 0; - Py_ssize_t __pyx_bshape_0_x_a = 0; - Py_buffer __pyx_bstruct_data; - Py_ssize_t __pyx_bstride_0_data = 0; - Py_ssize_t __pyx_bshape_0_data = 0; - Py_buffer __pyx_bstruct_predicted; - Py_ssize_t __pyx_bstride_0_predicted = 0; - Py_ssize_t __pyx_bshape_0_predicted = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyArrayObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *(*__pyx_t_9)(PyObject *); - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_10; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_11; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_12; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_13; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_14; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_15; - int __pyx_t_16; - int __pyx_t_17; - int __pyx_t_18; - int __pyx_t_19; - int __pyx_t_20; - int __pyx_t_21; - int __pyx_t_22; - PyObject *__pyx_t_23 = NULL; - PyObject *__pyx_t_24 = NULL; - PyObject *__pyx_t_25 = NULL; - int __pyx_t_26; - int __pyx_t_27; - int __pyx_t_28; - int __pyx_t_29; - int __pyx_t_30; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__data,&__pyx_n_s__x_a,&__pyx_n_s__x_b,&__pyx_n_s__N,0}; - __Pyx_RefNannySetupContext("chi2_ellipsoid_aniso5"); - __pyx_self = __pyx_self; - { - PyObject* values[5] = {0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__data); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso5", 1, 5, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 2: - values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_a); - if (likely(values[2])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso5", 1, 5, 5, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 3: - values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_b); - if (likely(values[3])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso5", 1, 5, 5, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 4: - values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__N); - if (likely(values[4])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso5", 1, 5, 5, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "chi2_ellipsoid_aniso5") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - } - __pyx_v_p = values[0]; - __pyx_v_data = ((PyArrayObject *)values[1]); - __pyx_v_x_a = ((PyArrayObject *)values[2]); - __pyx_v_x_b = ((PyArrayObject *)values[3]); - __pyx_v_N = __Pyx_PyInt_AsInt(values[4]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso5", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("voidProject.apTools.chi2.velocityProfileFitNative.chi2_ellipsoid_aniso5", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_bstruct_predicted.buf = NULL; - __pyx_bstruct_data.buf = NULL; - __pyx_bstruct_x_a.buf = NULL; - __pyx_bstruct_x_b.buf = NULL; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_data), __pyx_ptype_5numpy_ndarray, 0, "data", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_a), __pyx_ptype_5numpy_ndarray, 0, "x_a", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_b), __pyx_ptype_5numpy_ndarray, 0, "x_b", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_data, (PyObject*)__pyx_v_data, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_data = __pyx_bstruct_data.strides[0]; - __pyx_bshape_0_data = __pyx_bstruct_data.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_x_a, (PyObject*)__pyx_v_x_a, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_x_a = __pyx_bstruct_x_a.strides[0]; - __pyx_bshape_0_x_a = __pyx_bstruct_x_a.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_x_b, (PyObject*)__pyx_v_x_b, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_x_b = __pyx_bstruct_x_b.strides[0]; - __pyx_bshape_0_x_b = __pyx_bstruct_x_b.shape[0]; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":375 - * cdef DTYPE_t norm_chi2, sloc, sloc2, one_norm - * cdef DTYPE_t one_err, u, u2 - * cdef np.ndarray[DTYPE_t, ndim=1] predicted = np.empty(N, dtype=DTYPE) # <<<<<<<<<<<<<< - * global sqrt_2pi, sq2, sqrt_pi_2 - * - */ - __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__empty); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyInt_FromLong(__pyx_v_N); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTYPE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_2, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_5 = ((PyArrayObject *)__pyx_t_4); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - __pyx_v_predicted = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_predicted.buf = NULL; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } else {__pyx_bstride_0_predicted = __pyx_bstruct_predicted.strides[0]; - __pyx_bshape_0_predicted = __pyx_bstruct_predicted.shape[0]; - } - } - __pyx_t_5 = 0; - __pyx_v_predicted = ((PyArrayObject *)__pyx_t_4); - __pyx_t_4 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":378 - * global sqrt_2pi, sq2, sqrt_pi_2 - * - * A,a,b,c,sigma_in,sigma_out=p # <<<<<<<<<<<<<< - * - * if A < 0 or a < 0 or b < 0 or sigma_in < 0 or sigma_out < 0: - */ - if ((likely(PyTuple_CheckExact(__pyx_v_p))) || (PyList_CheckExact(__pyx_v_p))) { - PyObject* sequence = __pyx_v_p; - if (likely(PyTuple_CheckExact(sequence))) { - if (unlikely(PyTuple_GET_SIZE(sequence) != 6)) { - if (PyTuple_GET_SIZE(sequence) > 6) __Pyx_RaiseTooManyValuesError(6); - else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2); - __pyx_t_2 = PyTuple_GET_ITEM(sequence, 3); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 4); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 5); - } else { - if (unlikely(PyList_GET_SIZE(sequence) != 6)) { - if (PyList_GET_SIZE(sequence) > 6) __Pyx_RaiseTooManyValuesError(6); - else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_4 = PyList_GET_ITEM(sequence, 0); - __pyx_t_1 = PyList_GET_ITEM(sequence, 1); - __pyx_t_3 = PyList_GET_ITEM(sequence, 2); - __pyx_t_2 = PyList_GET_ITEM(sequence, 3); - __pyx_t_6 = PyList_GET_ITEM(sequence, 4); - __pyx_t_7 = PyList_GET_ITEM(sequence, 5); - } - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx_t_1); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx_t_7); - } else { - Py_ssize_t index = -1; - __pyx_t_8 = PyObject_GetIter(__pyx_v_p); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; - index = 0; __pyx_t_4 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_4); - index = 1; __pyx_t_1 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_1)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - index = 2; __pyx_t_3 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - index = 3; __pyx_t_2 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_2); - index = 4; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - index = 5; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L7_unpacking_done; - __pyx_L6_unpacking_failed:; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); - if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_L7_unpacking_done:; - } - __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_10 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_11 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_12 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_13 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_14 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_15 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_A = __pyx_t_10; - __pyx_v_a = __pyx_t_11; - __pyx_v_b = __pyx_t_12; - __pyx_v_c = __pyx_t_13; - __pyx_v_sigma_in = __pyx_t_14; - __pyx_v_sigma_out = __pyx_t_15; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":380 - * A,a,b,c,sigma_in,sigma_out=p - * - * if A < 0 or a < 0 or b < 0 or sigma_in < 0 or sigma_out < 0: # <<<<<<<<<<<<<< - * return 0,True - * - */ - __pyx_t_16 = (__pyx_v_A < 0.0); - if (!__pyx_t_16) { - __pyx_t_17 = (__pyx_v_a < 0.0); - if (!__pyx_t_17) { - __pyx_t_18 = (__pyx_v_b < 0.0); - if (!__pyx_t_18) { - __pyx_t_19 = (__pyx_v_sigma_in < 0.0); - if (!__pyx_t_19) { - __pyx_t_20 = (__pyx_v_sigma_out < 0.0); - __pyx_t_21 = __pyx_t_20; - } else { - __pyx_t_21 = __pyx_t_19; - } - __pyx_t_19 = __pyx_t_21; - } else { - __pyx_t_19 = __pyx_t_18; - } - __pyx_t_18 = __pyx_t_19; - } else { - __pyx_t_18 = __pyx_t_17; - } - __pyx_t_17 = __pyx_t_18; - } else { - __pyx_t_17 = __pyx_t_16; - } - if (__pyx_t_17) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":381 - * - * if A < 0 or a < 0 or b < 0 or sigma_in < 0 or sigma_out < 0: - * return 0,True # <<<<<<<<<<<<<< - * - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_6)); - __Pyx_INCREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_7); - __pyx_t_7 = 0; - __pyx_r = ((PyObject *)__pyx_t_6); - __pyx_t_6 = 0; - goto __pyx_L0; - goto __pyx_L8; - } - __pyx_L8:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":383 - * return 0,True - * - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) # <<<<<<<<<<<<<< - * - * chi2 = 0 - */ - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_A); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_a); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_b); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_3); - __Pyx_GIVEREF(__pyx_t_3); - __pyx_t_6 = 0; - __pyx_t_7 = 0; - __pyx_t_2 = 0; - __pyx_t_3 = 0; - __pyx_t_3 = __pyx_f_11voidProject_7apTools_4chi2_24velocityProfileFitNative_ellipsoid_fun_internal(((PyObject *)__pyx_t_1), ((PyArrayObject *)__pyx_v_x_a), ((PyArrayObject *)__pyx_v_x_b)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_5 = ((PyArrayObject *)__pyx_t_3); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __pyx_t_22 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); - if (unlikely(__pyx_t_22 < 0)) { - PyErr_Fetch(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_v_predicted, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_24); Py_XDECREF(__pyx_t_25); - __Pyx_RaiseBufferFallbackError(); - } else { - PyErr_Restore(__pyx_t_23, __pyx_t_24, __pyx_t_25); - } - } - __pyx_bstride_0_predicted = __pyx_bstruct_predicted.strides[0]; - __pyx_bshape_0_predicted = __pyx_bstruct_predicted.shape[0]; - if (unlikely(__pyx_t_22 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_5 = 0; - __Pyx_DECREF(((PyObject *)__pyx_v_predicted)); - __pyx_v_predicted = ((PyArrayObject *)__pyx_t_3); - __pyx_t_3 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":385 - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) - * - * chi2 = 0 # <<<<<<<<<<<<<< - * norm_chi2 = 0 - * - */ - __pyx_v_chi2 = 0.0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":386 - * - * chi2 = 0 - * norm_chi2 = 0 # <<<<<<<<<<<<<< - * - * for i in range(N): - */ - __pyx_v_norm_chi2 = 0.0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":388 - * norm_chi2 = 0 - * - * for i in range(N): # <<<<<<<<<<<<<< - * if predicted[i] == c: - * sigma = sigma_out - */ - __pyx_t_22 = __pyx_v_N; - for (__pyx_t_26 = 0; __pyx_t_26 < __pyx_t_22; __pyx_t_26+=1) { - __pyx_v_i = __pyx_t_26; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":389 - * - * for i in range(N): - * if predicted[i] == c: # <<<<<<<<<<<<<< - * sigma = sigma_out - * sloc = sigma - */ - __pyx_t_27 = __pyx_v_i; - if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_bshape_0_predicted; - __pyx_t_17 = ((*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_predicted.buf, __pyx_t_27, __pyx_bstride_0_predicted)) == __pyx_v_c); - if (__pyx_t_17) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":390 - * for i in range(N): - * if predicted[i] == c: - * sigma = sigma_out # <<<<<<<<<<<<<< - * sloc = sigma - * else: - */ - __pyx_v_sigma = __pyx_v_sigma_out; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":391 - * if predicted[i] == c: - * sigma = sigma_out - * sloc = sigma # <<<<<<<<<<<<<< - * else: - * sigma = sigma_in - */ - __pyx_v_sloc = __pyx_v_sigma; - goto __pyx_L11; - } - /*else*/ { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":393 - * sloc = sigma - * else: - * sigma = sigma_in # <<<<<<<<<<<<<< - * sloc = sigma*sqrt(1/x_a[i]) - * - */ - __pyx_v_sigma = __pyx_v_sigma_in; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":394 - * else: - * sigma = sigma_in - * sloc = sigma*sqrt(1/x_a[i]) # <<<<<<<<<<<<<< - * - * one_err = (data[i]-predicted[i]) - */ - __pyx_t_28 = __pyx_v_i; - if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_bshape_0_x_a; - __pyx_v_sloc = (__pyx_v_sigma * sqrt((1.0 / (*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_x_a.buf, __pyx_t_28, __pyx_bstride_0_x_a))))); - } - __pyx_L11:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":396 - * sloc = sigma*sqrt(1/x_a[i]) - * - * one_err = (data[i]-predicted[i]) # <<<<<<<<<<<<<< - * - * d = one_err*one_err - */ - __pyx_t_29 = __pyx_v_i; - if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_bshape_0_data; - __pyx_t_30 = __pyx_v_i; - if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_bshape_0_predicted; - __pyx_v_one_err = ((*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_data.buf, __pyx_t_29, __pyx_bstride_0_data)) - (*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_predicted.buf, __pyx_t_30, __pyx_bstride_0_predicted))); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":398 - * one_err = (data[i]-predicted[i]) - * - * d = one_err*one_err # <<<<<<<<<<<<<< - * - * sloc2 = sloc*sloc - */ - __pyx_v_d = (__pyx_v_one_err * __pyx_v_one_err); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":400 - * d = one_err*one_err - * - * sloc2 = sloc*sloc # <<<<<<<<<<<<<< - * chi2 = chi2 + d/(sloc2) - * - */ - __pyx_v_sloc2 = (__pyx_v_sloc * __pyx_v_sloc); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":401 - * - * sloc2 = sloc*sloc - * chi2 = chi2 + d/(sloc2) # <<<<<<<<<<<<<< - * - * one_norm = log(sloc) - */ - __pyx_v_chi2 = (__pyx_v_chi2 + (__pyx_v_d / __pyx_v_sloc2)); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":403 - * chi2 = chi2 + d/(sloc2) - * - * one_norm = log(sloc) # <<<<<<<<<<<<<< - * norm_chi2 = norm_chi2 + one_norm - * - */ - __pyx_v_one_norm = log(__pyx_v_sloc); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":404 - * - * one_norm = log(sloc) - * norm_chi2 = norm_chi2 + one_norm # <<<<<<<<<<<<<< - * - * return chi2 + 2*norm_chi2, False - */ - __pyx_v_norm_chi2 = (__pyx_v_norm_chi2 + __pyx_v_one_norm); - } - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":406 - * norm_chi2 = norm_chi2 + one_norm - * - * return chi2 + 2*norm_chi2, False # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = PyFloat_FromDouble((__pyx_v_chi2 + (2.0 * __pyx_v_norm_chi2))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_2)); - PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_3 = 0; - __pyx_t_1 = 0; - __pyx_r = ((PyObject *)__pyx_t_2); - __pyx_t_2 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_b); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_a); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_data); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("voidProject.apTools.chi2.velocityProfileFitNative.chi2_ellipsoid_aniso5", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_b); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_a); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_data); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_predicted); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":411 - * @cython.boundscheck(False) - * @cython.cdivision(True) - * def chi2_ellipsoid_aniso6(p, np.ndarray[DTYPE_t,ndim=1] data not None, # <<<<<<<<<<<<<< - * np.ndarray[DTYPE_t,ndim=1] x_a not None, - * np.ndarray[DTYPE_t,ndim=1] x_b not None, - */ - -static PyObject *__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_7chi2_ellipsoid_aniso6(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_11voidProject_7apTools_4chi2_24velocityProfileFitNative_7chi2_ellipsoid_aniso6 = {__Pyx_NAMESTR("chi2_ellipsoid_aniso6"), (PyCFunction)__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_7chi2_ellipsoid_aniso6, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}; -static PyObject *__pyx_pf_11voidProject_7apTools_4chi2_24velocityProfileFitNative_7chi2_ellipsoid_aniso6(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_p = 0; - PyArrayObject *__pyx_v_data = 0; - PyArrayObject *__pyx_v_x_a = 0; - PyArrayObject *__pyx_v_x_b = 0; - int __pyx_v_N; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_A; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_a; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_b; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_c; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sigma_in; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sigma_out; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sigma; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_chi2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_d; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_norm_chi2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sloc; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_sloc2; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_one_norm; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_v_one_err; - PyArrayObject *__pyx_v_predicted = 0; - int __pyx_v_i; - Py_buffer __pyx_bstruct_x_b; - Py_ssize_t __pyx_bstride_0_x_b = 0; - Py_ssize_t __pyx_bshape_0_x_b = 0; - Py_buffer __pyx_bstruct_x_a; - Py_ssize_t __pyx_bstride_0_x_a = 0; - Py_ssize_t __pyx_bshape_0_x_a = 0; - Py_buffer __pyx_bstruct_data; - Py_ssize_t __pyx_bstride_0_data = 0; - Py_ssize_t __pyx_bshape_0_data = 0; - Py_buffer __pyx_bstruct_predicted; - Py_ssize_t __pyx_bstride_0_predicted = 0; - Py_ssize_t __pyx_bshape_0_predicted = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyArrayObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *(*__pyx_t_9)(PyObject *); - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_10; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_11; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_12; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_13; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_14; - __pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t __pyx_t_15; - int __pyx_t_16; - int __pyx_t_17; - int __pyx_t_18; - int __pyx_t_19; - int __pyx_t_20; - int __pyx_t_21; - int __pyx_t_22; - PyObject *__pyx_t_23 = NULL; - PyObject *__pyx_t_24 = NULL; - PyObject *__pyx_t_25 = NULL; - int __pyx_t_26; - int __pyx_t_27; - int __pyx_t_28; - int __pyx_t_29; - int __pyx_t_30; - int __pyx_t_31; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__data,&__pyx_n_s__x_a,&__pyx_n_s__x_b,&__pyx_n_s__N,0}; - __Pyx_RefNannySetupContext("chi2_ellipsoid_aniso6"); - __pyx_self = __pyx_self; - { - PyObject* values[5] = {0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__data); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso6", 1, 5, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 2: - values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_a); - if (likely(values[2])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso6", 1, 5, 5, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 3: - values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_b); - if (likely(values[3])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso6", 1, 5, 5, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 4: - values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__N); - if (likely(values[4])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso6", 1, 5, 5, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "chi2_ellipsoid_aniso6") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - } - __pyx_v_p = values[0]; - __pyx_v_data = ((PyArrayObject *)values[1]); - __pyx_v_x_a = ((PyArrayObject *)values[2]); - __pyx_v_x_b = ((PyArrayObject *)values[3]); - __pyx_v_N = __Pyx_PyInt_AsInt(values[4]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("chi2_ellipsoid_aniso6", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("voidProject.apTools.chi2.velocityProfileFitNative.chi2_ellipsoid_aniso6", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_bstruct_predicted.buf = NULL; - __pyx_bstruct_data.buf = NULL; - __pyx_bstruct_x_a.buf = NULL; - __pyx_bstruct_x_b.buf = NULL; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_data), __pyx_ptype_5numpy_ndarray, 0, "data", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_a), __pyx_ptype_5numpy_ndarray, 0, "x_a", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_b), __pyx_ptype_5numpy_ndarray, 0, "x_b", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_data, (PyObject*)__pyx_v_data, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_data = __pyx_bstruct_data.strides[0]; - __pyx_bshape_0_data = __pyx_bstruct_data.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_x_a, (PyObject*)__pyx_v_x_a, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_x_a = __pyx_bstruct_x_a.strides[0]; - __pyx_bshape_0_x_a = __pyx_bstruct_x_a.shape[0]; - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_x_b, (PyObject*)__pyx_v_x_b, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_bstride_0_x_b = __pyx_bstruct_x_b.strides[0]; - __pyx_bshape_0_x_b = __pyx_bstruct_x_b.shape[0]; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":419 - * cdef DTYPE_t norm_chi2, sloc, sloc2, one_norm - * cdef DTYPE_t one_err, u, u2 - * cdef np.ndarray[DTYPE_t, ndim=1] predicted = np.empty(N, dtype=DTYPE) # <<<<<<<<<<<<<< - * global sqrt_2pi, sq2, sqrt_pi_2 - * - */ - __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__empty); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyInt_FromLong(__pyx_v_N); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__DTYPE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_2, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_5 = ((PyArrayObject *)__pyx_t_4); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - __pyx_v_predicted = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_predicted.buf = NULL; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } else {__pyx_bstride_0_predicted = __pyx_bstruct_predicted.strides[0]; - __pyx_bshape_0_predicted = __pyx_bstruct_predicted.shape[0]; - } - } - __pyx_t_5 = 0; - __pyx_v_predicted = ((PyArrayObject *)__pyx_t_4); - __pyx_t_4 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":422 - * global sqrt_2pi, sq2, sqrt_pi_2 - * - * A,a,b,c,sigma_in,sigma_out=p # <<<<<<<<<<<<<< - * - * if A < 0 or a < 0 or b < 0 or sigma_in < 0 or sigma_out < 0: - */ - if ((likely(PyTuple_CheckExact(__pyx_v_p))) || (PyList_CheckExact(__pyx_v_p))) { - PyObject* sequence = __pyx_v_p; - if (likely(PyTuple_CheckExact(sequence))) { - if (unlikely(PyTuple_GET_SIZE(sequence) != 6)) { - if (PyTuple_GET_SIZE(sequence) > 6) __Pyx_RaiseTooManyValuesError(6); - else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2); - __pyx_t_2 = PyTuple_GET_ITEM(sequence, 3); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 4); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 5); - } else { - if (unlikely(PyList_GET_SIZE(sequence) != 6)) { - if (PyList_GET_SIZE(sequence) > 6) __Pyx_RaiseTooManyValuesError(6); - else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_4 = PyList_GET_ITEM(sequence, 0); - __pyx_t_1 = PyList_GET_ITEM(sequence, 1); - __pyx_t_3 = PyList_GET_ITEM(sequence, 2); - __pyx_t_2 = PyList_GET_ITEM(sequence, 3); - __pyx_t_6 = PyList_GET_ITEM(sequence, 4); - __pyx_t_7 = PyList_GET_ITEM(sequence, 5); - } - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx_t_1); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx_t_7); - } else { - Py_ssize_t index = -1; - __pyx_t_8 = PyObject_GetIter(__pyx_v_p); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; - index = 0; __pyx_t_4 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_4); - index = 1; __pyx_t_1 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_1)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - index = 2; __pyx_t_3 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - index = 3; __pyx_t_2 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_2); - index = 4; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - index = 5; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L7_unpacking_done; - __pyx_L6_unpacking_failed:; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); - if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_L7_unpacking_done:; - } - __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_10 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_11 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_12 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_13 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_14 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_15 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_A = __pyx_t_10; - __pyx_v_a = __pyx_t_11; - __pyx_v_b = __pyx_t_12; - __pyx_v_c = __pyx_t_13; - __pyx_v_sigma_in = __pyx_t_14; - __pyx_v_sigma_out = __pyx_t_15; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":424 - * A,a,b,c,sigma_in,sigma_out=p - * - * if A < 0 or a < 0 or b < 0 or sigma_in < 0 or sigma_out < 0: # <<<<<<<<<<<<<< - * return 0,True - * - */ - __pyx_t_16 = (__pyx_v_A < 0.0); - if (!__pyx_t_16) { - __pyx_t_17 = (__pyx_v_a < 0.0); - if (!__pyx_t_17) { - __pyx_t_18 = (__pyx_v_b < 0.0); - if (!__pyx_t_18) { - __pyx_t_19 = (__pyx_v_sigma_in < 0.0); - if (!__pyx_t_19) { - __pyx_t_20 = (__pyx_v_sigma_out < 0.0); - __pyx_t_21 = __pyx_t_20; - } else { - __pyx_t_21 = __pyx_t_19; - } - __pyx_t_19 = __pyx_t_21; - } else { - __pyx_t_19 = __pyx_t_18; - } - __pyx_t_18 = __pyx_t_19; - } else { - __pyx_t_18 = __pyx_t_17; - } - __pyx_t_17 = __pyx_t_18; - } else { - __pyx_t_17 = __pyx_t_16; - } - if (__pyx_t_17) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":425 - * - * if A < 0 or a < 0 or b < 0 or sigma_in < 0 or sigma_out < 0: - * return 0,True # <<<<<<<<<<<<<< - * - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_6)); - __Pyx_INCREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_7); - __pyx_t_7 = 0; - __pyx_r = ((PyObject *)__pyx_t_6); - __pyx_t_6 = 0; - goto __pyx_L0; - goto __pyx_L8; - } - __pyx_L8:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":427 - * return 0,True - * - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) # <<<<<<<<<<<<<< - * - * chi2 = 0 - */ - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_A); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_a); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_b); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_3); - __Pyx_GIVEREF(__pyx_t_3); - __pyx_t_6 = 0; - __pyx_t_7 = 0; - __pyx_t_2 = 0; - __pyx_t_3 = 0; - __pyx_t_3 = __pyx_f_11voidProject_7apTools_4chi2_24velocityProfileFitNative_ellipsoid_fun_internal(((PyObject *)__pyx_t_1), ((PyArrayObject *)__pyx_v_x_a), ((PyArrayObject *)__pyx_v_x_b)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_5 = ((PyArrayObject *)__pyx_t_3); - { - __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __pyx_t_22 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); - if (unlikely(__pyx_t_22 < 0)) { - PyErr_Fetch(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_predicted, (PyObject*)__pyx_v_predicted, &__Pyx_TypeInfo_nn___pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { - Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_24); Py_XDECREF(__pyx_t_25); - __Pyx_RaiseBufferFallbackError(); - } else { - PyErr_Restore(__pyx_t_23, __pyx_t_24, __pyx_t_25); - } - } - __pyx_bstride_0_predicted = __pyx_bstruct_predicted.strides[0]; - __pyx_bshape_0_predicted = __pyx_bstruct_predicted.shape[0]; - if (unlikely(__pyx_t_22 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_5 = 0; - __Pyx_DECREF(((PyObject *)__pyx_v_predicted)); - __pyx_v_predicted = ((PyArrayObject *)__pyx_t_3); - __pyx_t_3 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":429 - * predicted = ellipsoid_fun_internal((A,a,b,c), x_a, x_b) - * - * chi2 = 0 # <<<<<<<<<<<<<< - * norm_chi2 = 0 - * - */ - __pyx_v_chi2 = 0.0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":430 - * - * chi2 = 0 - * norm_chi2 = 0 # <<<<<<<<<<<<<< - * - * for i in range(N): - */ - __pyx_v_norm_chi2 = 0.0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":432 - * norm_chi2 = 0 - * - * for i in range(N): # <<<<<<<<<<<<<< - * if predicted[i] == c: - * sigma = sigma_out - */ - __pyx_t_22 = __pyx_v_N; - for (__pyx_t_26 = 0; __pyx_t_26 < __pyx_t_22; __pyx_t_26+=1) { - __pyx_v_i = __pyx_t_26; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":433 - * - * for i in range(N): - * if predicted[i] == c: # <<<<<<<<<<<<<< - * sigma = sigma_out - * sloc = sigma*sqrt(1/x_a[i]) - */ - __pyx_t_27 = __pyx_v_i; - if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_bshape_0_predicted; - __pyx_t_17 = ((*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_predicted.buf, __pyx_t_27, __pyx_bstride_0_predicted)) == __pyx_v_c); - if (__pyx_t_17) { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":434 - * for i in range(N): - * if predicted[i] == c: - * sigma = sigma_out # <<<<<<<<<<<<<< - * sloc = sigma*sqrt(1/x_a[i]) - * else: - */ - __pyx_v_sigma = __pyx_v_sigma_out; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":435 - * if predicted[i] == c: - * sigma = sigma_out - * sloc = sigma*sqrt(1/x_a[i]) # <<<<<<<<<<<<<< - * else: - * sigma = sigma_in - */ - __pyx_t_28 = __pyx_v_i; - if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_bshape_0_x_a; - __pyx_v_sloc = (__pyx_v_sigma * sqrt((1.0 / (*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_x_a.buf, __pyx_t_28, __pyx_bstride_0_x_a))))); - goto __pyx_L11; - } - /*else*/ { - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":437 - * sloc = sigma*sqrt(1/x_a[i]) - * else: - * sigma = sigma_in # <<<<<<<<<<<<<< - * sloc = sigma*sqrt(1/x_a[i]) - * - */ - __pyx_v_sigma = __pyx_v_sigma_in; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":438 - * else: - * sigma = sigma_in - * sloc = sigma*sqrt(1/x_a[i]) # <<<<<<<<<<<<<< - * - * one_err = (data[i]-predicted[i]) - */ - __pyx_t_29 = __pyx_v_i; - if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_bshape_0_x_a; - __pyx_v_sloc = (__pyx_v_sigma * sqrt((1.0 / (*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_x_a.buf, __pyx_t_29, __pyx_bstride_0_x_a))))); - } - __pyx_L11:; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":440 - * sloc = sigma*sqrt(1/x_a[i]) - * - * one_err = (data[i]-predicted[i]) # <<<<<<<<<<<<<< - * - * d = one_err*one_err - */ - __pyx_t_30 = __pyx_v_i; - if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_bshape_0_data; - __pyx_t_31 = __pyx_v_i; - if (__pyx_t_31 < 0) __pyx_t_31 += __pyx_bshape_0_predicted; - __pyx_v_one_err = ((*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_data.buf, __pyx_t_30, __pyx_bstride_0_data)) - (*__Pyx_BufPtrStrided1d(__pyx_t_11voidProject_7apTools_4chi2_24velocityProfileFitNative_DTYPE_t *, __pyx_bstruct_predicted.buf, __pyx_t_31, __pyx_bstride_0_predicted))); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":442 - * one_err = (data[i]-predicted[i]) - * - * d = one_err*one_err # <<<<<<<<<<<<<< - * - * sloc2 = sloc*sloc - */ - __pyx_v_d = (__pyx_v_one_err * __pyx_v_one_err); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":444 - * d = one_err*one_err - * - * sloc2 = sloc*sloc # <<<<<<<<<<<<<< - * chi2 = chi2 + d/(sloc2) - * - */ - __pyx_v_sloc2 = (__pyx_v_sloc * __pyx_v_sloc); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":445 - * - * sloc2 = sloc*sloc - * chi2 = chi2 + d/(sloc2) # <<<<<<<<<<<<<< - * - * one_norm = log(sloc) - */ - __pyx_v_chi2 = (__pyx_v_chi2 + (__pyx_v_d / __pyx_v_sloc2)); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":447 - * chi2 = chi2 + d/(sloc2) - * - * one_norm = log(sloc) # <<<<<<<<<<<<<< - * norm_chi2 = norm_chi2 + one_norm - * - */ - __pyx_v_one_norm = log(__pyx_v_sloc); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":448 - * - * one_norm = log(sloc) - * norm_chi2 = norm_chi2 + one_norm # <<<<<<<<<<<<<< - * - * return chi2 + 2*norm_chi2, False - */ - __pyx_v_norm_chi2 = (__pyx_v_norm_chi2 + __pyx_v_one_norm); - } - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":450 - * norm_chi2 = norm_chi2 + one_norm - * - * return chi2 + 2*norm_chi2, False # <<<<<<<<<<<<<< - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = PyFloat_FromDouble((__pyx_v_chi2 + (2.0 * __pyx_v_norm_chi2))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_2)); - PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_3 = 0; - __pyx_t_1 = 0; - __pyx_r = ((PyObject *)__pyx_t_2); - __pyx_t_2 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; - __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_b); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_a); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_data); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} - __Pyx_AddTraceback("voidProject.apTools.chi2.velocityProfileFitNative.chi2_ellipsoid_aniso6", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - goto __pyx_L2; - __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_b); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_x_a); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_data); - __Pyx_SafeReleaseBuffer(&__pyx_bstruct_predicted); - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_predicted); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "numpy.pxd":190 - * # experimental exception made for __getbuffer__ and __releasebuffer__ - * # -- the details of this may change. - * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< - * # This implementation of getbuffer is geared towards Cython - * # requirements, and does not yet fullfill the PEP. - */ - -static CYTHON_UNUSED int __pyx_pf_5numpy_7ndarray___getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ -static CYTHON_UNUSED int __pyx_pf_5numpy_7ndarray___getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { - int __pyx_v_copy_shape; - int __pyx_v_i; - int __pyx_v_ndim; - int __pyx_v_endian_detector; - int __pyx_v_little_endian; - int __pyx_v_t; - char *__pyx_v_f; - PyArray_Descr *__pyx_v_descr = 0; - int __pyx_v_offset; - int __pyx_v_hasfields; - int __pyx_r; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - int __pyx_t_6; - int __pyx_t_7; - PyObject *__pyx_t_8 = NULL; - char *__pyx_t_9; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__getbuffer__"); - if (__pyx_v_info != NULL) { - __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(__pyx_v_info->obj); - } - - /* "numpy.pxd":196 - * # of flags - * - * if info == NULL: return # <<<<<<<<<<<<<< - * - * cdef int copy_shape, i, ndim - */ - __pyx_t_1 = (__pyx_v_info == NULL); - if (__pyx_t_1) { - __pyx_r = 0; - goto __pyx_L0; - goto __pyx_L5; - } - __pyx_L5:; - - /* "numpy.pxd":199 - * - * cdef int copy_shape, i, ndim - * cdef int endian_detector = 1 # <<<<<<<<<<<<<< - * cdef bint little_endian = ((&endian_detector)[0] != 0) - * - */ - __pyx_v_endian_detector = 1; - - /* "numpy.pxd":200 - * cdef int copy_shape, i, ndim - * cdef int endian_detector = 1 - * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< - * - * ndim = PyArray_NDIM(self) - */ - __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - - /* "numpy.pxd":202 - * cdef bint little_endian = ((&endian_detector)[0] != 0) - * - * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< - * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - */ - __pyx_v_ndim = PyArray_NDIM(((PyArrayObject *)__pyx_v_self)); - - /* "numpy.pxd":204 - * ndim = PyArray_NDIM(self) - * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< - * copy_shape = 1 - * else: - */ - __pyx_t_1 = ((sizeof(npy_intp)) != (sizeof(Py_ssize_t))); - if (__pyx_t_1) { - - /* "numpy.pxd":205 - * - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - * copy_shape = 1 # <<<<<<<<<<<<<< - * else: - * copy_shape = 0 - */ - __pyx_v_copy_shape = 1; - goto __pyx_L6; - } - /*else*/ { - - /* "numpy.pxd":207 - * copy_shape = 1 - * else: - * copy_shape = 0 # <<<<<<<<<<<<<< - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - */ - __pyx_v_copy_shape = 0; - } - __pyx_L6:; - - /* "numpy.pxd":209 - * copy_shape = 0 - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") - */ - __pyx_t_1 = ((__pyx_v_flags & PyBUF_C_CONTIGUOUS) == PyBUF_C_CONTIGUOUS); - if (__pyx_t_1) { - - /* "numpy.pxd":210 - * - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< - * raise ValueError(u"ndarray is not C contiguous") - * - */ - __pyx_t_2 = (!PyArray_CHKFLAGS(((PyArrayObject *)__pyx_v_self), NPY_C_CONTIGUOUS)); - __pyx_t_3 = __pyx_t_2; - } else { - __pyx_t_3 = __pyx_t_1; - } - if (__pyx_t_3) { - - /* "numpy.pxd":211 - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - */ - __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_4), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_Raise(__pyx_t_4, 0, 0, 0); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - {__pyx_filename = __pyx_f[1]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L7; - } - __pyx_L7:; - - /* "numpy.pxd":213 - * raise ValueError(u"ndarray is not C contiguous") - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") - */ - __pyx_t_3 = ((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS); - if (__pyx_t_3) { - - /* "numpy.pxd":214 - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< - * raise ValueError(u"ndarray is not Fortran contiguous") - * - */ - __pyx_t_1 = (!PyArray_CHKFLAGS(((PyArrayObject *)__pyx_v_self), NPY_F_CONTIGUOUS)); - __pyx_t_2 = __pyx_t_1; - } else { - __pyx_t_2 = __pyx_t_3; - } - if (__pyx_t_2) { - - /* "numpy.pxd":215 - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< - * - * info.buf = PyArray_DATA(self) - */ - __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_6), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_Raise(__pyx_t_4, 0, 0, 0); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - {__pyx_filename = __pyx_f[1]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L8; - } - __pyx_L8:; - - /* "numpy.pxd":217 - * raise ValueError(u"ndarray is not Fortran contiguous") - * - * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< - * info.ndim = ndim - * if copy_shape: - */ - __pyx_v_info->buf = PyArray_DATA(((PyArrayObject *)__pyx_v_self)); - - /* "numpy.pxd":218 - * - * info.buf = PyArray_DATA(self) - * info.ndim = ndim # <<<<<<<<<<<<<< - * if copy_shape: - * # Allocate new buffer for strides and shape info. - */ - __pyx_v_info->ndim = __pyx_v_ndim; - - /* "numpy.pxd":219 - * info.buf = PyArray_DATA(self) - * info.ndim = ndim - * if copy_shape: # <<<<<<<<<<<<<< - * # Allocate new buffer for strides and shape info. - * # This is allocated as one block, strides first. - */ - if (__pyx_v_copy_shape) { - - /* "numpy.pxd":222 - * # Allocate new buffer for strides and shape info. - * # This is allocated as one block, strides first. - * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) # <<<<<<<<<<<<<< - * info.shape = info.strides + ndim - * for i in range(ndim): - */ - __pyx_v_info->strides = ((Py_ssize_t *)malloc((((sizeof(Py_ssize_t)) * ((size_t)__pyx_v_ndim)) * 2))); - - /* "numpy.pxd":223 - * # This is allocated as one block, strides first. - * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) - * info.shape = info.strides + ndim # <<<<<<<<<<<<<< - * for i in range(ndim): - * info.strides[i] = PyArray_STRIDES(self)[i] - */ - __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim); - - /* "numpy.pxd":224 - * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) - * info.shape = info.strides + ndim - * for i in range(ndim): # <<<<<<<<<<<<<< - * info.strides[i] = PyArray_STRIDES(self)[i] - * info.shape[i] = PyArray_DIMS(self)[i] - */ - __pyx_t_5 = __pyx_v_ndim; - for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { - __pyx_v_i = __pyx_t_6; - - /* "numpy.pxd":225 - * info.shape = info.strides + ndim - * for i in range(ndim): - * info.strides[i] = PyArray_STRIDES(self)[i] # <<<<<<<<<<<<<< - * info.shape[i] = PyArray_DIMS(self)[i] - * else: - */ - (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(((PyArrayObject *)__pyx_v_self))[__pyx_v_i]); - - /* "numpy.pxd":226 - * for i in range(ndim): - * info.strides[i] = PyArray_STRIDES(self)[i] - * info.shape[i] = PyArray_DIMS(self)[i] # <<<<<<<<<<<<<< - * else: - * info.strides = PyArray_STRIDES(self) - */ - (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(((PyArrayObject *)__pyx_v_self))[__pyx_v_i]); - } - goto __pyx_L9; - } - /*else*/ { - - /* "numpy.pxd":228 - * info.shape[i] = PyArray_DIMS(self)[i] - * else: - * info.strides = PyArray_STRIDES(self) # <<<<<<<<<<<<<< - * info.shape = PyArray_DIMS(self) - * info.suboffsets = NULL - */ - __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(((PyArrayObject *)__pyx_v_self))); - - /* "numpy.pxd":229 - * else: - * info.strides = PyArray_STRIDES(self) - * info.shape = PyArray_DIMS(self) # <<<<<<<<<<<<<< - * info.suboffsets = NULL - * info.itemsize = PyArray_ITEMSIZE(self) - */ - __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(((PyArrayObject *)__pyx_v_self))); - } - __pyx_L9:; - - /* "numpy.pxd":230 - * info.strides = PyArray_STRIDES(self) - * info.shape = PyArray_DIMS(self) - * info.suboffsets = NULL # <<<<<<<<<<<<<< - * info.itemsize = PyArray_ITEMSIZE(self) - * info.readonly = not PyArray_ISWRITEABLE(self) - */ - __pyx_v_info->suboffsets = NULL; - - /* "numpy.pxd":231 - * info.shape = PyArray_DIMS(self) - * info.suboffsets = NULL - * info.itemsize = PyArray_ITEMSIZE(self) # <<<<<<<<<<<<<< - * info.readonly = not PyArray_ISWRITEABLE(self) - * - */ - __pyx_v_info->itemsize = PyArray_ITEMSIZE(((PyArrayObject *)__pyx_v_self)); - - /* "numpy.pxd":232 - * info.suboffsets = NULL - * info.itemsize = PyArray_ITEMSIZE(self) - * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< - * - * cdef int t - */ - __pyx_v_info->readonly = (!PyArray_ISWRITEABLE(((PyArrayObject *)__pyx_v_self))); - - /* "numpy.pxd":235 - * - * cdef int t - * cdef char* f = NULL # <<<<<<<<<<<<<< - * cdef dtype descr = self.descr - * cdef list stack - */ - __pyx_v_f = NULL; - - /* "numpy.pxd":236 - * cdef int t - * cdef char* f = NULL - * cdef dtype descr = self.descr # <<<<<<<<<<<<<< - * cdef list stack - * cdef int offset - */ - __Pyx_INCREF(((PyObject *)((PyArrayObject *)__pyx_v_self)->descr)); - __pyx_v_descr = ((PyArrayObject *)__pyx_v_self)->descr; - - /* "numpy.pxd":240 - * cdef int offset - * - * cdef bint hasfields = PyDataType_HASFIELDS(descr) # <<<<<<<<<<<<<< - * - * if not hasfields and not copy_shape: - */ - __pyx_v_hasfields = PyDataType_HASFIELDS(__pyx_v_descr); - - /* "numpy.pxd":242 - * cdef bint hasfields = PyDataType_HASFIELDS(descr) - * - * if not hasfields and not copy_shape: # <<<<<<<<<<<<<< - * # do not call releasebuffer - * info.obj = None - */ - __pyx_t_2 = (!__pyx_v_hasfields); - if (__pyx_t_2) { - __pyx_t_3 = (!__pyx_v_copy_shape); - __pyx_t_1 = __pyx_t_3; - } else { - __pyx_t_1 = __pyx_t_2; - } - if (__pyx_t_1) { - - /* "numpy.pxd":244 - * if not hasfields and not copy_shape: - * # do not call releasebuffer - * info.obj = None # <<<<<<<<<<<<<< - * else: - * # need to call releasebuffer - */ - __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(Py_None); - __Pyx_GOTREF(__pyx_v_info->obj); - __Pyx_DECREF(__pyx_v_info->obj); - __pyx_v_info->obj = Py_None; - goto __pyx_L12; - } - /*else*/ { - - /* "numpy.pxd":247 - * else: - * # need to call releasebuffer - * info.obj = self # <<<<<<<<<<<<<< - * - * if not hasfields: - */ - __Pyx_INCREF(__pyx_v_self); - __Pyx_GIVEREF(__pyx_v_self); - __Pyx_GOTREF(__pyx_v_info->obj); - __Pyx_DECREF(__pyx_v_info->obj); - __pyx_v_info->obj = __pyx_v_self; - } - __pyx_L12:; - - /* "numpy.pxd":249 - * info.obj = self - * - * if not hasfields: # <<<<<<<<<<<<<< - * t = descr.type_num - * if ((descr.byteorder == '>' and little_endian) or - */ - __pyx_t_1 = (!__pyx_v_hasfields); - if (__pyx_t_1) { - - /* "numpy.pxd":250 - * - * if not hasfields: - * t = descr.type_num # <<<<<<<<<<<<<< - * if ((descr.byteorder == '>' and little_endian) or - * (descr.byteorder == '<' and not little_endian)): - */ - __pyx_v_t = __pyx_v_descr->type_num; - - /* "numpy.pxd":251 - * if not hasfields: - * t = descr.type_num - * if ((descr.byteorder == '>' and little_endian) or # <<<<<<<<<<<<<< - * (descr.byteorder == '<' and not little_endian)): - * raise ValueError(u"Non-native byte order not supported") - */ - __pyx_t_1 = (__pyx_v_descr->byteorder == '>'); - if (__pyx_t_1) { - __pyx_t_2 = __pyx_v_little_endian; - } else { - __pyx_t_2 = __pyx_t_1; - } - if (!__pyx_t_2) { - - /* "numpy.pxd":252 - * t = descr.type_num - * if ((descr.byteorder == '>' and little_endian) or - * (descr.byteorder == '<' and not little_endian)): # <<<<<<<<<<<<<< - * raise ValueError(u"Non-native byte order not supported") - * if t == NPY_BYTE: f = "b" - */ - __pyx_t_1 = (__pyx_v_descr->byteorder == '<'); - if (__pyx_t_1) { - __pyx_t_3 = (!__pyx_v_little_endian); - __pyx_t_7 = __pyx_t_3; - } else { - __pyx_t_7 = __pyx_t_1; - } - __pyx_t_1 = __pyx_t_7; - } else { - __pyx_t_1 = __pyx_t_2; - } - if (__pyx_t_1) { - - /* "numpy.pxd":253 - * if ((descr.byteorder == '>' and little_endian) or - * (descr.byteorder == '<' and not little_endian)): - * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< - * if t == NPY_BYTE: f = "b" - * elif t == NPY_UBYTE: f = "B" - */ - __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_8), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_Raise(__pyx_t_4, 0, 0, 0); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - {__pyx_filename = __pyx_f[1]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L14; - } - __pyx_L14:; - - /* "numpy.pxd":254 - * (descr.byteorder == '<' and not little_endian)): - * raise ValueError(u"Non-native byte order not supported") - * if t == NPY_BYTE: f = "b" # <<<<<<<<<<<<<< - * elif t == NPY_UBYTE: f = "B" - * elif t == NPY_SHORT: f = "h" - */ - __pyx_t_1 = (__pyx_v_t == NPY_BYTE); - if (__pyx_t_1) { - __pyx_v_f = __pyx_k__b; - goto __pyx_L15; - } - - /* "numpy.pxd":255 - * raise ValueError(u"Non-native byte order not supported") - * if t == NPY_BYTE: f = "b" - * elif t == NPY_UBYTE: f = "B" # <<<<<<<<<<<<<< - * elif t == NPY_SHORT: f = "h" - * elif t == NPY_USHORT: f = "H" - */ - __pyx_t_1 = (__pyx_v_t == NPY_UBYTE); - if (__pyx_t_1) { - __pyx_v_f = __pyx_k__B; - goto __pyx_L15; - } - - /* "numpy.pxd":256 - * if t == NPY_BYTE: f = "b" - * elif t == NPY_UBYTE: f = "B" - * elif t == NPY_SHORT: f = "h" # <<<<<<<<<<<<<< - * elif t == NPY_USHORT: f = "H" - * elif t == NPY_INT: f = "i" - */ - __pyx_t_1 = (__pyx_v_t == NPY_SHORT); - if (__pyx_t_1) { - __pyx_v_f = __pyx_k__h; - goto __pyx_L15; - } - - /* "numpy.pxd":257 - * elif t == NPY_UBYTE: f = "B" - * elif t == NPY_SHORT: f = "h" - * elif t == NPY_USHORT: f = "H" # <<<<<<<<<<<<<< - * elif t == NPY_INT: f = "i" - * elif t == NPY_UINT: f = "I" - */ - __pyx_t_1 = (__pyx_v_t == NPY_USHORT); - if (__pyx_t_1) { - __pyx_v_f = __pyx_k__H; - goto __pyx_L15; - } - - /* "numpy.pxd":258 - * elif t == NPY_SHORT: f = "h" - * elif t == NPY_USHORT: f = "H" - * elif t == NPY_INT: f = "i" # <<<<<<<<<<<<<< - * elif t == NPY_UINT: f = "I" - * elif t == NPY_LONG: f = "l" - */ - __pyx_t_1 = (__pyx_v_t == NPY_INT); - if (__pyx_t_1) { - __pyx_v_f = __pyx_k__i; - goto __pyx_L15; - } - - /* "numpy.pxd":259 - * elif t == NPY_USHORT: f = "H" - * elif t == NPY_INT: f = "i" - * elif t == NPY_UINT: f = "I" # <<<<<<<<<<<<<< - * elif t == NPY_LONG: f = "l" - * elif t == NPY_ULONG: f = "L" - */ - __pyx_t_1 = (__pyx_v_t == NPY_UINT); - if (__pyx_t_1) { - __pyx_v_f = __pyx_k__I; - goto __pyx_L15; - } - - /* "numpy.pxd":260 - * elif t == NPY_INT: f = "i" - * elif t == NPY_UINT: f = "I" - * elif t == NPY_LONG: f = "l" # <<<<<<<<<<<<<< - * elif t == NPY_ULONG: f = "L" - * elif t == NPY_LONGLONG: f = "q" - */ - __pyx_t_1 = (__pyx_v_t == NPY_LONG); - if (__pyx_t_1) { - __pyx_v_f = __pyx_k__l; - goto __pyx_L15; - } - - /* "numpy.pxd":261 - * elif t == NPY_UINT: f = "I" - * elif t == NPY_LONG: f = "l" - * elif t == NPY_ULONG: f = "L" # <<<<<<<<<<<<<< - * elif t == NPY_LONGLONG: f = "q" - * elif t == NPY_ULONGLONG: f = "Q" - */ - __pyx_t_1 = (__pyx_v_t == NPY_ULONG); - if (__pyx_t_1) { - __pyx_v_f = __pyx_k__L; - goto __pyx_L15; - } - - /* "numpy.pxd":262 - * elif t == NPY_LONG: f = "l" - * elif t == NPY_ULONG: f = "L" - * elif t == NPY_LONGLONG: f = "q" # <<<<<<<<<<<<<< - * elif t == NPY_ULONGLONG: f = "Q" - * elif t == NPY_FLOAT: f = "f" - */ - __pyx_t_1 = (__pyx_v_t == NPY_LONGLONG); - if (__pyx_t_1) { - __pyx_v_f = __pyx_k__q; - goto __pyx_L15; - } - - /* "numpy.pxd":263 - * elif t == NPY_ULONG: f = "L" - * elif t == NPY_LONGLONG: f = "q" - * elif t == NPY_ULONGLONG: f = "Q" # <<<<<<<<<<<<<< - * elif t == NPY_FLOAT: f = "f" - * elif t == NPY_DOUBLE: f = "d" - */ - __pyx_t_1 = (__pyx_v_t == NPY_ULONGLONG); - if (__pyx_t_1) { - __pyx_v_f = __pyx_k__Q; - goto __pyx_L15; - } - - /* "numpy.pxd":264 - * elif t == NPY_LONGLONG: f = "q" - * elif t == NPY_ULONGLONG: f = "Q" - * elif t == NPY_FLOAT: f = "f" # <<<<<<<<<<<<<< - * elif t == NPY_DOUBLE: f = "d" - * elif t == NPY_LONGDOUBLE: f = "g" - */ - __pyx_t_1 = (__pyx_v_t == NPY_FLOAT); - if (__pyx_t_1) { - __pyx_v_f = __pyx_k__f; - goto __pyx_L15; - } - - /* "numpy.pxd":265 - * elif t == NPY_ULONGLONG: f = "Q" - * elif t == NPY_FLOAT: f = "f" - * elif t == NPY_DOUBLE: f = "d" # <<<<<<<<<<<<<< - * elif t == NPY_LONGDOUBLE: f = "g" - * elif t == NPY_CFLOAT: f = "Zf" - */ - __pyx_t_1 = (__pyx_v_t == NPY_DOUBLE); - if (__pyx_t_1) { - __pyx_v_f = __pyx_k__d; - goto __pyx_L15; - } - - /* "numpy.pxd":266 - * elif t == NPY_FLOAT: f = "f" - * elif t == NPY_DOUBLE: f = "d" - * elif t == NPY_LONGDOUBLE: f = "g" # <<<<<<<<<<<<<< - * elif t == NPY_CFLOAT: f = "Zf" - * elif t == NPY_CDOUBLE: f = "Zd" - */ - __pyx_t_1 = (__pyx_v_t == NPY_LONGDOUBLE); - if (__pyx_t_1) { - __pyx_v_f = __pyx_k__g; - goto __pyx_L15; - } - - /* "numpy.pxd":267 - * elif t == NPY_DOUBLE: f = "d" - * elif t == NPY_LONGDOUBLE: f = "g" - * elif t == NPY_CFLOAT: f = "Zf" # <<<<<<<<<<<<<< - * elif t == NPY_CDOUBLE: f = "Zd" - * elif t == NPY_CLONGDOUBLE: f = "Zg" - */ - __pyx_t_1 = (__pyx_v_t == NPY_CFLOAT); - if (__pyx_t_1) { - __pyx_v_f = __pyx_k__Zf; - goto __pyx_L15; - } - - /* "numpy.pxd":268 - * elif t == NPY_LONGDOUBLE: f = "g" - * elif t == NPY_CFLOAT: f = "Zf" - * elif t == NPY_CDOUBLE: f = "Zd" # <<<<<<<<<<<<<< - * elif t == NPY_CLONGDOUBLE: f = "Zg" - * elif t == NPY_OBJECT: f = "O" - */ - __pyx_t_1 = (__pyx_v_t == NPY_CDOUBLE); - if (__pyx_t_1) { - __pyx_v_f = __pyx_k__Zd; - goto __pyx_L15; - } - - /* "numpy.pxd":269 - * elif t == NPY_CFLOAT: f = "Zf" - * elif t == NPY_CDOUBLE: f = "Zd" - * elif t == NPY_CLONGDOUBLE: f = "Zg" # <<<<<<<<<<<<<< - * elif t == NPY_OBJECT: f = "O" - * else: - */ - __pyx_t_1 = (__pyx_v_t == NPY_CLONGDOUBLE); - if (__pyx_t_1) { - __pyx_v_f = __pyx_k__Zg; - goto __pyx_L15; - } - - /* "numpy.pxd":270 - * elif t == NPY_CDOUBLE: f = "Zd" - * elif t == NPY_CLONGDOUBLE: f = "Zg" - * elif t == NPY_OBJECT: f = "O" # <<<<<<<<<<<<<< - * else: - * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) - */ - __pyx_t_1 = (__pyx_v_t == NPY_OBJECT); - if (__pyx_t_1) { - __pyx_v_f = __pyx_k__O; - goto __pyx_L15; - } - /*else*/ { - - /* "numpy.pxd":272 - * elif t == NPY_OBJECT: f = "O" - * else: - * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< - * info.format = f - * return - */ - __pyx_t_4 = PyInt_FromLong(__pyx_v_t); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_9), __pyx_t_4); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_8)); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_4)); - PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_8)); - __Pyx_GIVEREF(((PyObject *)__pyx_t_8)); - __pyx_t_8 = 0; - __pyx_t_8 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - {__pyx_filename = __pyx_f[1]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_L15:; - - /* "numpy.pxd":273 - * else: - * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) - * info.format = f # <<<<<<<<<<<<<< - * return - * else: - */ - __pyx_v_info->format = __pyx_v_f; - - /* "numpy.pxd":274 - * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) - * info.format = f - * return # <<<<<<<<<<<<<< - * else: - * info.format = stdlib.malloc(_buffer_format_string_len) - */ - __pyx_r = 0; - goto __pyx_L0; - goto __pyx_L13; - } - /*else*/ { - - /* "numpy.pxd":276 - * return - * else: - * info.format = stdlib.malloc(_buffer_format_string_len) # <<<<<<<<<<<<<< - * info.format[0] = '^' # Native data types, manual alignment - * offset = 0 - */ - __pyx_v_info->format = ((char *)malloc(255)); - - /* "numpy.pxd":277 - * else: - * info.format = stdlib.malloc(_buffer_format_string_len) - * info.format[0] = '^' # Native data types, manual alignment # <<<<<<<<<<<<<< - * offset = 0 - * f = _util_dtypestring(descr, info.format + 1, - */ - (__pyx_v_info->format[0]) = '^'; - - /* "numpy.pxd":278 - * info.format = stdlib.malloc(_buffer_format_string_len) - * info.format[0] = '^' # Native data types, manual alignment - * offset = 0 # <<<<<<<<<<<<<< - * f = _util_dtypestring(descr, info.format + 1, - * info.format + _buffer_format_string_len, - */ - __pyx_v_offset = 0; - - /* "numpy.pxd":281 - * f = _util_dtypestring(descr, info.format + 1, - * info.format + _buffer_format_string_len, - * &offset) # <<<<<<<<<<<<<< - * f[0] = 0 # Terminate format string - * - */ - __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_descr, (__pyx_v_info->format + 1), (__pyx_v_info->format + 255), (&__pyx_v_offset)); if (unlikely(__pyx_t_9 == NULL)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_v_f = __pyx_t_9; - - /* "numpy.pxd":282 - * info.format + _buffer_format_string_len, - * &offset) - * f[0] = 0 # Terminate format string # <<<<<<<<<<<<<< - * - * def __releasebuffer__(ndarray self, Py_buffer* info): - */ - (__pyx_v_f[0]) = 0; - } - __pyx_L13:; - - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("numpy.ndarray.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - if (__pyx_v_info != NULL && __pyx_v_info->obj != NULL) { - __Pyx_GOTREF(__pyx_v_info->obj); - __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = NULL; - } - goto __pyx_L2; - __pyx_L0:; - if (__pyx_v_info != NULL && __pyx_v_info->obj == Py_None) { - __Pyx_GOTREF(Py_None); - __Pyx_DECREF(Py_None); __pyx_v_info->obj = NULL; - } - __pyx_L2:; - __Pyx_XDECREF((PyObject *)__pyx_v_descr); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "numpy.pxd":284 - * f[0] = 0 # Terminate format string - * - * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< - * if PyArray_HASFIELDS(self): - * stdlib.free(info.format) - */ - -static CYTHON_UNUSED void __pyx_pf_5numpy_7ndarray_1__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info); /*proto*/ -static CYTHON_UNUSED void __pyx_pf_5numpy_7ndarray_1__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info) { - __Pyx_RefNannyDeclarations - int __pyx_t_1; - __Pyx_RefNannySetupContext("__releasebuffer__"); - - /* "numpy.pxd":285 - * - * def __releasebuffer__(ndarray self, Py_buffer* info): - * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< - * stdlib.free(info.format) - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - */ - __pyx_t_1 = PyArray_HASFIELDS(((PyArrayObject *)__pyx_v_self)); - if (__pyx_t_1) { - - /* "numpy.pxd":286 - * def __releasebuffer__(ndarray self, Py_buffer* info): - * if PyArray_HASFIELDS(self): - * stdlib.free(info.format) # <<<<<<<<<<<<<< - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - * stdlib.free(info.strides) - */ - free(__pyx_v_info->format); - goto __pyx_L5; - } - __pyx_L5:; - - /* "numpy.pxd":287 - * if PyArray_HASFIELDS(self): - * stdlib.free(info.format) - * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< - * stdlib.free(info.strides) - * # info.shape was stored after info.strides in the same block - */ - __pyx_t_1 = ((sizeof(npy_intp)) != (sizeof(Py_ssize_t))); - if (__pyx_t_1) { - - /* "numpy.pxd":288 - * stdlib.free(info.format) - * if sizeof(npy_intp) != sizeof(Py_ssize_t): - * stdlib.free(info.strides) # <<<<<<<<<<<<<< - * # info.shape was stored after info.strides in the same block - * - */ - free(__pyx_v_info->strides); - goto __pyx_L6; - } - __pyx_L6:; - - __Pyx_RefNannyFinishContext(); -} - -/* "numpy.pxd":764 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< - * return PyArray_MultiIterNew(1, a) - * - */ - -static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew1"); - - /* "numpy.pxd":765 - * - * cdef inline object PyArray_MultiIterNew1(a): - * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< - * - * cdef inline object PyArray_MultiIterNew2(a, b): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 765; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "numpy.pxd":767 - * return PyArray_MultiIterNew(1, a) - * - * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< - * return PyArray_MultiIterNew(2, a, b) - * - */ - -static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew2"); - - /* "numpy.pxd":768 - * - * cdef inline object PyArray_MultiIterNew2(a, b): - * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 768; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "numpy.pxd":770 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< - * return PyArray_MultiIterNew(3, a, b, c) - * - */ - -static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew3"); - - /* "numpy.pxd":771 - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): - * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< - * - * cdef inline object PyArray_MultiIterNew4(a, b, c, d): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "numpy.pxd":773 - * return PyArray_MultiIterNew(3, a, b, c) - * - * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< - * return PyArray_MultiIterNew(4, a, b, c, d) - * - */ - -static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew4"); - - /* "numpy.pxd":774 - * - * cdef inline object PyArray_MultiIterNew4(a, b, c, d): - * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 774; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "numpy.pxd":776 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - */ - -static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew5"); - - /* "numpy.pxd":777 - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): - * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< - * - * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 777; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "numpy.pxd":779 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< - * # Recursive utility function used in __getbuffer__ to get format - * # string. The new location in the format string is returned. - */ - -static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { - PyArray_Descr *__pyx_v_child = 0; - int __pyx_v_endian_detector; - int __pyx_v_little_endian; - PyObject *__pyx_v_fields = 0; - PyObject *__pyx_v_childname = NULL; - PyObject *__pyx_v_new_offset = NULL; - PyObject *__pyx_v_t = NULL; - char *__pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; - int __pyx_t_8; - int __pyx_t_9; - long __pyx_t_10; - char *__pyx_t_11; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_util_dtypestring"); - - /* "numpy.pxd":786 - * cdef int delta_offset - * cdef tuple i - * cdef int endian_detector = 1 # <<<<<<<<<<<<<< - * cdef bint little_endian = ((&endian_detector)[0] != 0) - * cdef tuple fields - */ - __pyx_v_endian_detector = 1; - - /* "numpy.pxd":787 - * cdef tuple i - * cdef int endian_detector = 1 - * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< - * cdef tuple fields - * - */ - __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - - /* "numpy.pxd":790 - * cdef tuple fields - * - * for childname in descr.names: # <<<<<<<<<<<<<< - * fields = descr.fields[childname] - * child, new_offset = fields - */ - if (unlikely(((PyObject *)__pyx_v_descr->names) == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 790; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_1 = ((PyObject *)__pyx_v_descr->names); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; - for (;;) { - if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; - __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; - __Pyx_XDECREF(__pyx_v_childname); - __pyx_v_childname = __pyx_t_3; - __pyx_t_3 = 0; - - /* "numpy.pxd":791 - * - * for childname in descr.names: - * fields = descr.fields[childname] # <<<<<<<<<<<<<< - * child, new_offset = fields - * - */ - __pyx_t_3 = PyObject_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (!__pyx_t_3) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected tuple, got %.200s", Py_TYPE(__pyx_t_3)->tp_name), 0))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_XDECREF(((PyObject *)__pyx_v_fields)); - __pyx_v_fields = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - /* "numpy.pxd":792 - * for childname in descr.names: - * fields = descr.fields[childname] - * child, new_offset = fields # <<<<<<<<<<<<<< - * - * if (end - f) - (new_offset - offset[0]) < 15: - */ - if (likely(PyTuple_CheckExact(((PyObject *)__pyx_v_fields)))) { - PyObject* sequence = ((PyObject *)__pyx_v_fields); - if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { - if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); - else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); - {__pyx_filename = __pyx_f[1]; __pyx_lineno = 792; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - } else { - __Pyx_UnpackTupleError(((PyObject *)__pyx_v_fields), 2); - {__pyx_filename = __pyx_f[1]; __pyx_lineno = 792; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 792; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_XDECREF(((PyObject *)__pyx_v_child)); - __pyx_v_child = ((PyArray_Descr *)__pyx_t_3); - __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_v_new_offset); - __pyx_v_new_offset = __pyx_t_4; - __pyx_t_4 = 0; - - /* "numpy.pxd":794 - * child, new_offset = fields - * - * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< - * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") - * - */ - __pyx_t_4 = PyInt_FromLong((__pyx_v_end - __pyx_v_f)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyInt_FromLong((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyNumber_Subtract(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_int_15, Py_LT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_6) { - - /* "numpy.pxd":795 - * - * if (end - f) - (new_offset - offset[0]) < 15: - * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< - * - * if ((child.byteorder == '>' and little_endian) or - */ - __pyx_t_5 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_k_tuple_11), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_Raise(__pyx_t_5, 0, 0, 0); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - {__pyx_filename = __pyx_f[1]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L5; - } - __pyx_L5:; - - /* "numpy.pxd":797 - * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") - * - * if ((child.byteorder == '>' and little_endian) or # <<<<<<<<<<<<<< - * (child.byteorder == '<' and not little_endian)): - * raise ValueError(u"Non-native byte order not supported") - */ - __pyx_t_6 = (__pyx_v_child->byteorder == '>'); - if (__pyx_t_6) { - __pyx_t_7 = __pyx_v_little_endian; - } else { - __pyx_t_7 = __pyx_t_6; - } - if (!__pyx_t_7) { - - /* "numpy.pxd":798 - * - * if ((child.byteorder == '>' and little_endian) or - * (child.byteorder == '<' and not little_endian)): # <<<<<<<<<<<<<< - * raise ValueError(u"Non-native byte order not supported") - * # One could encode it in the format string and have Cython - */ - __pyx_t_6 = (__pyx_v_child->byteorder == '<'); - if (__pyx_t_6) { - __pyx_t_8 = (!__pyx_v_little_endian); - __pyx_t_9 = __pyx_t_8; - } else { - __pyx_t_9 = __pyx_t_6; - } - __pyx_t_6 = __pyx_t_9; - } else { - __pyx_t_6 = __pyx_t_7; - } - if (__pyx_t_6) { - - /* "numpy.pxd":799 - * if ((child.byteorder == '>' and little_endian) or - * (child.byteorder == '<' and not little_endian)): - * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< - * # One could encode it in the format string and have Cython - * # complain instead, BUT: < and > in format strings also imply - */ - __pyx_t_5 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_12), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_Raise(__pyx_t_5, 0, 0, 0); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - {__pyx_filename = __pyx_f[1]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L6; - } - __pyx_L6:; - - /* "numpy.pxd":809 - * - * # Output padding bytes - * while offset[0] < new_offset: # <<<<<<<<<<<<<< - * f[0] = 120 # "x"; pad byte - * f += 1 - */ - while (1) { - __pyx_t_5 = PyInt_FromLong((__pyx_v_offset[0])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 809; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = PyObject_RichCompare(__pyx_t_5, __pyx_v_new_offset, Py_LT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 809; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 809; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (!__pyx_t_6) break; - - /* "numpy.pxd":810 - * # Output padding bytes - * while offset[0] < new_offset: - * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< - * f += 1 - * offset[0] += 1 - */ - (__pyx_v_f[0]) = 120; - - /* "numpy.pxd":811 - * while offset[0] < new_offset: - * f[0] = 120 # "x"; pad byte - * f += 1 # <<<<<<<<<<<<<< - * offset[0] += 1 - * - */ - __pyx_v_f = (__pyx_v_f + 1); - - /* "numpy.pxd":812 - * f[0] = 120 # "x"; pad byte - * f += 1 - * offset[0] += 1 # <<<<<<<<<<<<<< - * - * offset[0] += child.itemsize - */ - __pyx_t_10 = 0; - (__pyx_v_offset[__pyx_t_10]) = ((__pyx_v_offset[__pyx_t_10]) + 1); - } - - /* "numpy.pxd":814 - * offset[0] += 1 - * - * offset[0] += child.itemsize # <<<<<<<<<<<<<< - * - * if not PyDataType_HASFIELDS(child): - */ - __pyx_t_10 = 0; - (__pyx_v_offset[__pyx_t_10]) = ((__pyx_v_offset[__pyx_t_10]) + __pyx_v_child->elsize); - - /* "numpy.pxd":816 - * offset[0] += child.itemsize - * - * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< - * t = child.type_num - * if end - f < 5: - */ - __pyx_t_6 = (!PyDataType_HASFIELDS(__pyx_v_child)); - if (__pyx_t_6) { - - /* "numpy.pxd":817 - * - * if not PyDataType_HASFIELDS(child): - * t = child.type_num # <<<<<<<<<<<<<< - * if end - f < 5: - * raise RuntimeError(u"Format string allocated too short.") - */ - __pyx_t_3 = PyInt_FromLong(__pyx_v_child->type_num); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 817; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_v_t); - __pyx_v_t = __pyx_t_3; - __pyx_t_3 = 0; - - /* "numpy.pxd":818 - * if not PyDataType_HASFIELDS(child): - * t = child.type_num - * if end - f < 5: # <<<<<<<<<<<<<< - * raise RuntimeError(u"Format string allocated too short.") - * - */ - __pyx_t_6 = ((__pyx_v_end - __pyx_v_f) < 5); - if (__pyx_t_6) { - - /* "numpy.pxd":819 - * t = child.type_num - * if end - f < 5: - * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< - * - * # Until ticket #99 is fixed, use integers to avoid warnings - */ - __pyx_t_3 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_k_tuple_14), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 819; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - {__pyx_filename = __pyx_f[1]; __pyx_lineno = 819; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L10; - } - __pyx_L10:; - - /* "numpy.pxd":822 - * - * # Until ticket #99 is fixed, use integers to avoid warnings - * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< - * elif t == NPY_UBYTE: f[0] = 66 #"B" - * elif t == NPY_SHORT: f[0] = 104 #"h" - */ - __pyx_t_3 = PyInt_FromLong(NPY_BYTE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 98; - goto __pyx_L11; - } - - /* "numpy.pxd":823 - * # Until ticket #99 is fixed, use integers to avoid warnings - * if t == NPY_BYTE: f[0] = 98 #"b" - * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< - * elif t == NPY_SHORT: f[0] = 104 #"h" - * elif t == NPY_USHORT: f[0] = 72 #"H" - */ - __pyx_t_5 = PyInt_FromLong(NPY_UBYTE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 66; - goto __pyx_L11; - } - - /* "numpy.pxd":824 - * if t == NPY_BYTE: f[0] = 98 #"b" - * elif t == NPY_UBYTE: f[0] = 66 #"B" - * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< - * elif t == NPY_USHORT: f[0] = 72 #"H" - * elif t == NPY_INT: f[0] = 105 #"i" - */ - __pyx_t_3 = PyInt_FromLong(NPY_SHORT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 104; - goto __pyx_L11; - } - - /* "numpy.pxd":825 - * elif t == NPY_UBYTE: f[0] = 66 #"B" - * elif t == NPY_SHORT: f[0] = 104 #"h" - * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< - * elif t == NPY_INT: f[0] = 105 #"i" - * elif t == NPY_UINT: f[0] = 73 #"I" - */ - __pyx_t_5 = PyInt_FromLong(NPY_USHORT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 72; - goto __pyx_L11; - } - - /* "numpy.pxd":826 - * elif t == NPY_SHORT: f[0] = 104 #"h" - * elif t == NPY_USHORT: f[0] = 72 #"H" - * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< - * elif t == NPY_UINT: f[0] = 73 #"I" - * elif t == NPY_LONG: f[0] = 108 #"l" - */ - __pyx_t_3 = PyInt_FromLong(NPY_INT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 105; - goto __pyx_L11; - } - - /* "numpy.pxd":827 - * elif t == NPY_USHORT: f[0] = 72 #"H" - * elif t == NPY_INT: f[0] = 105 #"i" - * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< - * elif t == NPY_LONG: f[0] = 108 #"l" - * elif t == NPY_ULONG: f[0] = 76 #"L" - */ - __pyx_t_5 = PyInt_FromLong(NPY_UINT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 73; - goto __pyx_L11; - } - - /* "numpy.pxd":828 - * elif t == NPY_INT: f[0] = 105 #"i" - * elif t == NPY_UINT: f[0] = 73 #"I" - * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< - * elif t == NPY_ULONG: f[0] = 76 #"L" - * elif t == NPY_LONGLONG: f[0] = 113 #"q" - */ - __pyx_t_3 = PyInt_FromLong(NPY_LONG); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 108; - goto __pyx_L11; - } - - /* "numpy.pxd":829 - * elif t == NPY_UINT: f[0] = 73 #"I" - * elif t == NPY_LONG: f[0] = 108 #"l" - * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< - * elif t == NPY_LONGLONG: f[0] = 113 #"q" - * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" - */ - __pyx_t_5 = PyInt_FromLong(NPY_ULONG); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 76; - goto __pyx_L11; - } - - /* "numpy.pxd":830 - * elif t == NPY_LONG: f[0] = 108 #"l" - * elif t == NPY_ULONG: f[0] = 76 #"L" - * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< - * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" - * elif t == NPY_FLOAT: f[0] = 102 #"f" - */ - __pyx_t_3 = PyInt_FromLong(NPY_LONGLONG); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 113; - goto __pyx_L11; - } - - /* "numpy.pxd":831 - * elif t == NPY_ULONG: f[0] = 76 #"L" - * elif t == NPY_LONGLONG: f[0] = 113 #"q" - * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< - * elif t == NPY_FLOAT: f[0] = 102 #"f" - * elif t == NPY_DOUBLE: f[0] = 100 #"d" - */ - __pyx_t_5 = PyInt_FromLong(NPY_ULONGLONG); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 831; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 831; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 831; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 81; - goto __pyx_L11; - } - - /* "numpy.pxd":832 - * elif t == NPY_LONGLONG: f[0] = 113 #"q" - * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" - * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< - * elif t == NPY_DOUBLE: f[0] = 100 #"d" - * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" - */ - __pyx_t_3 = PyInt_FromLong(NPY_FLOAT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 102; - goto __pyx_L11; - } - - /* "numpy.pxd":833 - * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" - * elif t == NPY_FLOAT: f[0] = 102 #"f" - * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< - * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" - * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf - */ - __pyx_t_5 = PyInt_FromLong(NPY_DOUBLE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 100; - goto __pyx_L11; - } - - /* "numpy.pxd":834 - * elif t == NPY_FLOAT: f[0] = 102 #"f" - * elif t == NPY_DOUBLE: f[0] = 100 #"d" - * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< - * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf - * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd - */ - __pyx_t_3 = PyInt_FromLong(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 103; - goto __pyx_L11; - } - - /* "numpy.pxd":835 - * elif t == NPY_DOUBLE: f[0] = 100 #"d" - * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" - * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< - * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd - * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg - */ - __pyx_t_5 = PyInt_FromLong(NPY_CFLOAT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 90; - (__pyx_v_f[1]) = 102; - __pyx_v_f = (__pyx_v_f + 1); - goto __pyx_L11; - } - - /* "numpy.pxd":836 - * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" - * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf - * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< - * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg - * elif t == NPY_OBJECT: f[0] = 79 #"O" - */ - __pyx_t_3 = PyInt_FromLong(NPY_CDOUBLE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 90; - (__pyx_v_f[1]) = 100; - __pyx_v_f = (__pyx_v_f + 1); - goto __pyx_L11; - } - - /* "numpy.pxd":837 - * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf - * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd - * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< - * elif t == NPY_OBJECT: f[0] = 79 #"O" - * else: - */ - __pyx_t_5 = PyInt_FromLong(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 90; - (__pyx_v_f[1]) = 103; - __pyx_v_f = (__pyx_v_f + 1); - goto __pyx_L11; - } - - /* "numpy.pxd":838 - * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd - * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg - * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< - * else: - * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) - */ - __pyx_t_3 = PyInt_FromLong(NPY_OBJECT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_6) { - (__pyx_v_f[0]) = 79; - goto __pyx_L11; - } - /*else*/ { - - /* "numpy.pxd":840 - * elif t == NPY_OBJECT: f[0] = 79 #"O" - * else: - * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< - * f += 1 - * else: - */ - __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_9), __pyx_v_t); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_5)); - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_5)); - __Pyx_GIVEREF(((PyObject *)__pyx_t_5)); - __pyx_t_5 = 0; - __pyx_t_5 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; - __Pyx_Raise(__pyx_t_5, 0, 0, 0); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - {__pyx_filename = __pyx_f[1]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - __pyx_L11:; - - /* "numpy.pxd":841 - * else: - * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) - * f += 1 # <<<<<<<<<<<<<< - * else: - * # Cython ignores struct boundary information ("T{...}"), - */ - __pyx_v_f = (__pyx_v_f + 1); - goto __pyx_L9; - } - /*else*/ { - - /* "numpy.pxd":845 - * # Cython ignores struct boundary information ("T{...}"), - * # so don't output it - * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< - * return f - * - */ - __pyx_t_11 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_v_f = __pyx_t_11; - } - __pyx_L9:; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "numpy.pxd":846 - * # so don't output it - * f = _util_dtypestring(child, f, end, offset) - * return f # <<<<<<<<<<<<<< - * - * - */ - __pyx_r = __pyx_v_f; - goto __pyx_L0; - - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_child); - __Pyx_XDECREF(__pyx_v_fields); - __Pyx_XDECREF(__pyx_v_childname); - __Pyx_XDECREF(__pyx_v_new_offset); - __Pyx_XDECREF(__pyx_v_t); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "numpy.pxd":961 - * - * - * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< - * cdef PyObject* baseptr - * if base is None: - */ - -static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { - PyObject *__pyx_v_baseptr; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - __Pyx_RefNannySetupContext("set_array_base"); - - /* "numpy.pxd":963 - * cdef inline void set_array_base(ndarray arr, object base): - * cdef PyObject* baseptr - * if base is None: # <<<<<<<<<<<<<< - * baseptr = NULL - * else: - */ - __pyx_t_1 = (__pyx_v_base == Py_None); - if (__pyx_t_1) { - - /* "numpy.pxd":964 - * cdef PyObject* baseptr - * if base is None: - * baseptr = NULL # <<<<<<<<<<<<<< - * else: - * Py_INCREF(base) # important to do this before decref below! - */ - __pyx_v_baseptr = NULL; - goto __pyx_L3; - } - /*else*/ { - - /* "numpy.pxd":966 - * baseptr = NULL - * else: - * Py_INCREF(base) # important to do this before decref below! # <<<<<<<<<<<<<< - * baseptr = base - * Py_XDECREF(arr.base) - */ - Py_INCREF(__pyx_v_base); - - /* "numpy.pxd":967 - * else: - * Py_INCREF(base) # important to do this before decref below! - * baseptr = base # <<<<<<<<<<<<<< - * Py_XDECREF(arr.base) - * arr.base = baseptr - */ - __pyx_v_baseptr = ((PyObject *)__pyx_v_base); - } - __pyx_L3:; - - /* "numpy.pxd":968 - * Py_INCREF(base) # important to do this before decref below! - * baseptr = base - * Py_XDECREF(arr.base) # <<<<<<<<<<<<<< - * arr.base = baseptr - * - */ - Py_XDECREF(__pyx_v_arr->base); - - /* "numpy.pxd":969 - * baseptr = base - * Py_XDECREF(arr.base) - * arr.base = baseptr # <<<<<<<<<<<<<< - * - * cdef inline object get_array_base(ndarray arr): - */ - __pyx_v_arr->base = __pyx_v_baseptr; - - __Pyx_RefNannyFinishContext(); -} - -/* "numpy.pxd":971 - * arr.base = baseptr - * - * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< - * if arr.base is NULL: - * return None - */ - -static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base"); - - /* "numpy.pxd":972 - * - * cdef inline object get_array_base(ndarray arr): - * if arr.base is NULL: # <<<<<<<<<<<<<< - * return None - * else: - */ - __pyx_t_1 = (__pyx_v_arr->base == NULL); - if (__pyx_t_1) { - - /* "numpy.pxd":973 - * cdef inline object get_array_base(ndarray arr): - * if arr.base is NULL: - * return None # <<<<<<<<<<<<<< - * else: - * return arr.base - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; - goto __pyx_L0; - goto __pyx_L3; - } - /*else*/ { - - /* "numpy.pxd":975 - * return None - * else: - * return arr.base # <<<<<<<<<<<<<< - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_arr->base)); - __pyx_r = ((PyObject *)__pyx_v_arr->base); - goto __pyx_L0; - } - __pyx_L3:; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyMethodDef __pyx_methods[] = { - {0, 0, 0, 0} -}; - -#if PY_MAJOR_VERSION >= 3 -static struct PyModuleDef __pyx_moduledef = { - PyModuleDef_HEAD_INIT, - __Pyx_NAMESTR("velocityProfileFitNative"), - 0, /* m_doc */ - -1, /* m_size */ - __pyx_methods /* m_methods */, - NULL, /* m_reload */ - NULL, /* m_traverse */ - NULL, /* m_clear */ - NULL /* m_free */ -}; -#endif - -static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_kp_s_1, __pyx_k_1, sizeof(__pyx_k_1), 0, 0, 1, 0}, - {&__pyx_kp_u_10, __pyx_k_10, sizeof(__pyx_k_10), 0, 1, 0, 0}, - {&__pyx_kp_u_13, __pyx_k_13, sizeof(__pyx_k_13), 0, 1, 0, 0}, - {&__pyx_n_s_15, __pyx_k_15, sizeof(__pyx_k_15), 0, 0, 1, 1}, - {&__pyx_n_s_16, __pyx_k_16, sizeof(__pyx_k_16), 0, 0, 1, 1}, - {&__pyx_n_s_17, __pyx_k_17, sizeof(__pyx_k_17), 0, 0, 1, 1}, - {&__pyx_n_s_18, __pyx_k_18, sizeof(__pyx_k_18), 0, 0, 1, 1}, - {&__pyx_n_s_19, __pyx_k_19, sizeof(__pyx_k_19), 0, 0, 1, 1}, - {&__pyx_n_s_20, __pyx_k_20, sizeof(__pyx_k_20), 0, 0, 1, 1}, - {&__pyx_n_s_21, __pyx_k_21, sizeof(__pyx_k_21), 0, 0, 1, 1}, - {&__pyx_kp_u_3, __pyx_k_3, sizeof(__pyx_k_3), 0, 1, 0, 0}, - {&__pyx_kp_u_5, __pyx_k_5, sizeof(__pyx_k_5), 0, 1, 0, 0}, - {&__pyx_kp_u_7, __pyx_k_7, sizeof(__pyx_k_7), 0, 1, 0, 0}, - {&__pyx_kp_u_9, __pyx_k_9, sizeof(__pyx_k_9), 0, 1, 0, 0}, - {&__pyx_n_s__DTYPE, __pyx_k__DTYPE, sizeof(__pyx_k__DTYPE), 0, 0, 1, 1}, - {&__pyx_n_s__N, __pyx_k__N, sizeof(__pyx_k__N), 0, 0, 1, 1}, - {&__pyx_n_s__RuntimeError, __pyx_k__RuntimeError, sizeof(__pyx_k__RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s__ValueError, __pyx_k__ValueError, sizeof(__pyx_k__ValueError), 0, 0, 1, 1}, - {&__pyx_n_s____all__, __pyx_k____all__, sizeof(__pyx_k____all__), 0, 0, 1, 1}, - {&__pyx_n_s____main__, __pyx_k____main__, sizeof(__pyx_k____main__), 0, 0, 1, 1}, - {&__pyx_n_s____test__, __pyx_k____test__, sizeof(__pyx_k____test__), 0, 0, 1, 1}, - {&__pyx_n_s__array, __pyx_k__array, sizeof(__pyx_k__array), 0, 0, 1, 1}, - {&__pyx_n_s__chi2_ellipsoid, __pyx_k__chi2_ellipsoid, sizeof(__pyx_k__chi2_ellipsoid), 0, 0, 1, 1}, - {&__pyx_n_s__data, __pyx_k__data, sizeof(__pyx_k__data), 0, 0, 1, 1}, - {&__pyx_n_s__double, __pyx_k__double, sizeof(__pyx_k__double), 0, 0, 1, 1}, - {&__pyx_n_s__dtype, __pyx_k__dtype, sizeof(__pyx_k__dtype), 0, 0, 1, 1}, - {&__pyx_n_s__ellipsoid_fun, __pyx_k__ellipsoid_fun, sizeof(__pyx_k__ellipsoid_fun), 0, 0, 1, 1}, - {&__pyx_n_s__empty, __pyx_k__empty, sizeof(__pyx_k__empty), 0, 0, 1, 1}, - {&__pyx_n_s__np, __pyx_k__np, sizeof(__pyx_k__np), 0, 0, 1, 1}, - {&__pyx_n_s__numpy, __pyx_k__numpy, sizeof(__pyx_k__numpy), 0, 0, 1, 1}, - {&__pyx_n_s__p, __pyx_k__p, sizeof(__pyx_k__p), 0, 0, 1, 1}, - {&__pyx_n_s__pi, __pyx_k__pi, sizeof(__pyx_k__pi), 0, 0, 1, 1}, - {&__pyx_n_s__range, __pyx_k__range, sizeof(__pyx_k__range), 0, 0, 1, 1}, - {&__pyx_n_s__reshape, __pyx_k__reshape, sizeof(__pyx_k__reshape), 0, 0, 1, 1}, - {&__pyx_n_s__shape, __pyx_k__shape, sizeof(__pyx_k__shape), 0, 0, 1, 1}, - {&__pyx_n_s__size, __pyx_k__size, sizeof(__pyx_k__size), 0, 0, 1, 1}, - {&__pyx_n_s__x_a, __pyx_k__x_a, sizeof(__pyx_k__x_a), 0, 0, 1, 1}, - {&__pyx_n_s__x_b, __pyx_k__x_b, sizeof(__pyx_k__x_b), 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0} -}; -static int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_range = __Pyx_GetName(__pyx_b, __pyx_n_s__range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_builtin_ValueError = __Pyx_GetName(__pyx_b, __pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_builtin_RuntimeError = __Pyx_GetName(__pyx_b, __pyx_n_s__RuntimeError); if (!__pyx_builtin_RuntimeError) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - return 0; - __pyx_L1_error:; - return -1; -} - -static int __Pyx_InitCachedConstants(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants"); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":70 - * - * if (type(x_a) != np.ndarray) or (type(x_b) != np.ndarray): - * raise ValueError("Invalid type for x_a or x_b"); # <<<<<<<<<<<<<< - * - * if x_a.dtype != DTYPE: - */ - __pyx_k_tuple_2 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_2)); - __Pyx_INCREF(((PyObject *)__pyx_kp_s_1)); - PyTuple_SET_ITEM(__pyx_k_tuple_2, 0, ((PyObject *)__pyx_kp_s_1)); - __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_1)); - __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_2)); - - /* "numpy.pxd":211 - * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): - * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< - * - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - */ - __pyx_k_tuple_4 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_4)); - __Pyx_INCREF(((PyObject *)__pyx_kp_u_3)); - PyTuple_SET_ITEM(__pyx_k_tuple_4, 0, ((PyObject *)__pyx_kp_u_3)); - __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_3)); - __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_4)); - - /* "numpy.pxd":215 - * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): - * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< - * - * info.buf = PyArray_DATA(self) - */ - __pyx_k_tuple_6 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_6)); - __Pyx_INCREF(((PyObject *)__pyx_kp_u_5)); - PyTuple_SET_ITEM(__pyx_k_tuple_6, 0, ((PyObject *)__pyx_kp_u_5)); - __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_5)); - __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_6)); - - /* "numpy.pxd":253 - * if ((descr.byteorder == '>' and little_endian) or - * (descr.byteorder == '<' and not little_endian)): - * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< - * if t == NPY_BYTE: f = "b" - * elif t == NPY_UBYTE: f = "B" - */ - __pyx_k_tuple_8 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_8)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_8)); - __Pyx_INCREF(((PyObject *)__pyx_kp_u_7)); - PyTuple_SET_ITEM(__pyx_k_tuple_8, 0, ((PyObject *)__pyx_kp_u_7)); - __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_7)); - __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_8)); - - /* "numpy.pxd":795 - * - * if (end - f) - (new_offset - offset[0]) < 15: - * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< - * - * if ((child.byteorder == '>' and little_endian) or - */ - __pyx_k_tuple_11 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_11)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_11)); - __Pyx_INCREF(((PyObject *)__pyx_kp_u_10)); - PyTuple_SET_ITEM(__pyx_k_tuple_11, 0, ((PyObject *)__pyx_kp_u_10)); - __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_10)); - __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_11)); - - /* "numpy.pxd":799 - * if ((child.byteorder == '>' and little_endian) or - * (child.byteorder == '<' and not little_endian)): - * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< - * # One could encode it in the format string and have Cython - * # complain instead, BUT: < and > in format strings also imply - */ - __pyx_k_tuple_12 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_12)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_12)); - __Pyx_INCREF(((PyObject *)__pyx_kp_u_7)); - PyTuple_SET_ITEM(__pyx_k_tuple_12, 0, ((PyObject *)__pyx_kp_u_7)); - __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_7)); - __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_12)); - - /* "numpy.pxd":819 - * t = child.type_num - * if end - f < 5: - * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< - * - * # Until ticket #99 is fixed, use integers to avoid warnings - */ - __pyx_k_tuple_14 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_14)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 819; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_14)); - __Pyx_INCREF(((PyObject *)__pyx_kp_u_13)); - PyTuple_SET_ITEM(__pyx_k_tuple_14, 0, ((PyObject *)__pyx_kp_u_13)); - __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_13)); - __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_14)); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_RefNannyFinishContext(); - return -1; -} - -static int __Pyx_InitGlobals(void) { - if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; - __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; - __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; - __pyx_int_15 = PyInt_FromLong(15); if (unlikely(!__pyx_int_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; - __pyx_int_50 = PyInt_FromLong(50); if (unlikely(!__pyx_int_50)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; - return 0; - __pyx_L1_error:; - return -1; -} - -#if PY_MAJOR_VERSION < 3 -PyMODINIT_FUNC initvelocityProfileFitNative(void); /*proto*/ -PyMODINIT_FUNC initvelocityProfileFitNative(void) -#else -PyMODINIT_FUNC PyInit_velocityProfileFitNative(void); /*proto*/ -PyMODINIT_FUNC PyInit_velocityProfileFitNative(void) -#endif -{ - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - double __pyx_t_3; - __Pyx_RefNannyDeclarations - #if CYTHON_REFNANNY - __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); - if (!__Pyx_RefNanny) { - PyErr_Clear(); - __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); - if (!__Pyx_RefNanny) - Py_FatalError("failed to import 'refnanny' module"); - } - #endif - __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit_velocityProfileFitNative(void)"); - if ( __Pyx_check_binary_version() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - #ifdef __pyx_binding_PyCFunctionType_USED - if (__pyx_binding_PyCFunctionType_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ - #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - #ifdef WITH_THREAD /* Python build with threading support? */ - PyEval_InitThreads(); - #endif - #endif - /*--- Module creation code ---*/ - #if PY_MAJOR_VERSION < 3 - __pyx_m = Py_InitModule4(__Pyx_NAMESTR("velocityProfileFitNative"), __pyx_methods, 0, 0, PYTHON_API_VERSION); - #else - __pyx_m = PyModule_Create(&__pyx_moduledef); - #endif - if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; - #if PY_MAJOR_VERSION < 3 - Py_INCREF(__pyx_m); - #endif - __pyx_b = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME)); - if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; - if (__Pyx_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; - /*--- Initialize various global constants etc. ---*/ - if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__pyx_module_is_main_voidProject__apTools__chi2__velocityProfileFitNative) { - if (__Pyx_SetAttrString(__pyx_m, "__name__", __pyx_n_s____main__) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; - } - /*--- Builtin init code ---*/ - if (unlikely(__Pyx_InitCachedBuiltins() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - /*--- Constants init code ---*/ - if (unlikely(__Pyx_InitCachedConstants() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - /*--- Global init code ---*/ - /*--- Variable export code ---*/ - /*--- Function export code ---*/ - /*--- Type init code ---*/ - /*--- Type import code ---*/ - __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - /*--- Variable import code ---*/ - /*--- Function import code ---*/ - /*--- Execution code ---*/ - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":2 - * cimport cython - * import numpy as np # <<<<<<<<<<<<<< - * cimport numpy as np - * - */ - __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__numpy), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyObject_SetAttr(__pyx_m, __pyx_n_s__np, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":5 - * cimport numpy as np - * - * np.import_array() # <<<<<<<<<<<<<< - * - * DTYPE = np.double - */ - import_array(); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":7 - * np.import_array() - * - * DTYPE = np.double # <<<<<<<<<<<<<< - * ctypedef np.double_t DTYPE_t - * - */ - __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__double); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (PyObject_SetAttr(__pyx_m, __pyx_n_s__DTYPE, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":25 - * cdef DTYPE_t sqrt_2pi, sq2, sqrt_pi_2 - * - * sqrt_pi_2 = sqrt(np.pi/2) # <<<<<<<<<<<<<< - * sqrt_2pi = sqrt(2*np.pi) - * sq2 = sqrt(2.0) - */ - __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__pi); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_int_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_3 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_11voidProject_7apTools_4chi2_24velocityProfileFitNative_sqrt_pi_2 = sqrt(__pyx_t_3); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":26 - * - * sqrt_pi_2 = sqrt(np.pi/2) - * sqrt_2pi = sqrt(2*np.pi) # <<<<<<<<<<<<<< - * sq2 = sqrt(2.0) - * - */ - __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__pi); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyNumber_Multiply(__pyx_int_2, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_3 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_11voidProject_7apTools_4chi2_24velocityProfileFitNative_sqrt_2pi = sqrt(__pyx_t_3); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":27 - * sqrt_pi_2 = sqrt(np.pi/2) - * sqrt_2pi = sqrt(2*np.pi) - * sq2 = sqrt(2.0) # <<<<<<<<<<<<<< - * - * __all__=["chi2_ellipsoid", - */ - __pyx_v_11voidProject_7apTools_4chi2_24velocityProfileFitNative_sq2 = sqrt(2.0); - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":29 - * sq2 = sqrt(2.0) - * - * __all__=["chi2_ellipsoid", # <<<<<<<<<<<<<< - * "chi2_ellipsoid_aniso","chi2_ellipsoid_aniso2", - * "chi2_ellipsoid_aniso3","chi2_ellipsoid_aniso4", - */ - __pyx_t_2 = PyList_New(8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_2)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__chi2_ellipsoid)); - PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_n_s__chi2_ellipsoid)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__chi2_ellipsoid)); - __Pyx_INCREF(((PyObject *)__pyx_n_s_15)); - PyList_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_n_s_15)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s_15)); - __Pyx_INCREF(((PyObject *)__pyx_n_s_16)); - PyList_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_n_s_16)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s_16)); - __Pyx_INCREF(((PyObject *)__pyx_n_s_17)); - PyList_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_n_s_17)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s_17)); - __Pyx_INCREF(((PyObject *)__pyx_n_s_18)); - PyList_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_n_s_18)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s_18)); - __Pyx_INCREF(((PyObject *)__pyx_n_s_19)); - PyList_SET_ITEM(__pyx_t_2, 5, ((PyObject *)__pyx_n_s_19)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s_19)); - __Pyx_INCREF(((PyObject *)__pyx_n_s_20)); - PyList_SET_ITEM(__pyx_t_2, 6, ((PyObject *)__pyx_n_s_20)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s_20)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__ellipsoid_fun)); - PyList_SET_ITEM(__pyx_t_2, 7, ((PyObject *)__pyx_n_s__ellipsoid_fun)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__ellipsoid_fun)); - if (PyObject_SetAttr(__pyx_m, __pyx_n_s____all__, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":65 - * return out_a - * - * def ellipsoid_fun(p, # <<<<<<<<<<<<<< - * x_a, - * x_b): - */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_11voidProject_7apTools_4chi2_24velocityProfileFitNative_ellipsoid_fun, NULL, __pyx_n_s_21); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ellipsoid_fun, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":94 - * @cython.boundscheck(False) - * @cython.cdivision(True) - * def chi2_ellipsoid(p, np.ndarray[DTYPE_t,ndim=1] data not None, # <<<<<<<<<<<<<< - * np.ndarray[DTYPE_t,ndim=1] x_a not None, - * np.ndarray[DTYPE_t,ndim=1] x_b not None, - */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_11voidProject_7apTools_4chi2_24velocityProfileFitNative_1chi2_ellipsoid, NULL, __pyx_n_s_21); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - if (PyObject_SetAttr(__pyx_m, __pyx_n_s__chi2_ellipsoid, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":146 - * @cython.boundscheck(False) - * @cython.cdivision(True) - * def chi2_ellipsoid_aniso(p, np.ndarray[DTYPE_t,ndim=1] data not None, # <<<<<<<<<<<<<< - * np.ndarray[DTYPE_t,ndim=1] x_a not None, - * np.ndarray[DTYPE_t,ndim=1] x_b not None, - */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_11voidProject_7apTools_4chi2_24velocityProfileFitNative_2chi2_ellipsoid_aniso, NULL, __pyx_n_s_21); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_15, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":201 - * @cython.boundscheck(False) - * @cython.cdivision(True) - * def chi2_ellipsoid_aniso2(p, np.ndarray[DTYPE_t,ndim=1] data not None, # <<<<<<<<<<<<<< - * np.ndarray[DTYPE_t,ndim=1] x_a not None, - * np.ndarray[DTYPE_t,ndim=1] x_b not None, - */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_11voidProject_7apTools_4chi2_24velocityProfileFitNative_3chi2_ellipsoid_aniso2, NULL, __pyx_n_s_21); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_16, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":258 - * @cython.boundscheck(False) - * @cython.cdivision(True) - * def chi2_ellipsoid_aniso3(p, np.ndarray[DTYPE_t,ndim=1] data not None, # <<<<<<<<<<<<<< - * np.ndarray[DTYPE_t,ndim=1] x_a not None, - * np.ndarray[DTYPE_t,ndim=1] x_b not None, - */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_11voidProject_7apTools_4chi2_24velocityProfileFitNative_4chi2_ellipsoid_aniso3, NULL, __pyx_n_s_21); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_17, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":311 - * @cython.boundscheck(False) - * @cython.cdivision(True) - * def chi2_ellipsoid_aniso4(p, np.ndarray[DTYPE_t,ndim=1] data not None, # <<<<<<<<<<<<<< - * np.ndarray[DTYPE_t,ndim=1] x_a not None, - * np.ndarray[DTYPE_t,ndim=1] x_b not None, - */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_11voidProject_7apTools_4chi2_24velocityProfileFitNative_5chi2_ellipsoid_aniso4, NULL, __pyx_n_s_21); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_18, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":367 - * @cython.boundscheck(False) - * @cython.cdivision(True) - * def chi2_ellipsoid_aniso5(p, np.ndarray[DTYPE_t,ndim=1] data not None, # <<<<<<<<<<<<<< - * np.ndarray[DTYPE_t,ndim=1] x_a not None, - * np.ndarray[DTYPE_t,ndim=1] x_b not None, - */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_11voidProject_7apTools_4chi2_24velocityProfileFitNative_6chi2_ellipsoid_aniso5, NULL, __pyx_n_s_21); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_19, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":411 - * @cython.boundscheck(False) - * @cython.cdivision(True) - * def chi2_ellipsoid_aniso6(p, np.ndarray[DTYPE_t,ndim=1] data not None, # <<<<<<<<<<<<<< - * np.ndarray[DTYPE_t,ndim=1] x_a not None, - * np.ndarray[DTYPE_t,ndim=1] x_b not None, - */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_11voidProject_7apTools_4chi2_24velocityProfileFitNative_7chi2_ellipsoid_aniso6, NULL, __pyx_n_s_21); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_20, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "voidProject/apTools/chi2/velocityProfileFitNative.pyx":1 - * cimport cython # <<<<<<<<<<<<<< - * import numpy as np - * cimport numpy as np - */ - __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_2)); - if (PyObject_SetAttr(__pyx_m, __pyx_n_s____test__, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; - - /* "numpy.pxd":971 - * arr.base = baseptr - * - * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< - * if arr.base is NULL: - * return None - */ - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - if (__pyx_m) { - __Pyx_AddTraceback("init voidProject.apTools.chi2.velocityProfileFitNative", __pyx_clineno, __pyx_lineno, __pyx_filename); - Py_DECREF(__pyx_m); __pyx_m = 0; - } else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_ImportError, "init voidProject.apTools.chi2.velocityProfileFitNative"); - } - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - #if PY_MAJOR_VERSION < 3 - return; - #else - return __pyx_m; - #endif -} - -/* Runtime support code */ - -#if CYTHON_REFNANNY -static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { - PyObject *m = NULL, *p = NULL; - void *r = NULL; - m = PyImport_ImportModule((char *)modname); - if (!m) goto end; - p = PyObject_GetAttrString(m, (char *)"RefNannyAPI"); - if (!p) goto end; - r = PyLong_AsVoidPtr(p); -end: - Py_XDECREF(p); - Py_XDECREF(m); - return (__Pyx_RefNannyAPIStruct *)r; -} -#endif /* CYTHON_REFNANNY */ - -static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) { - PyObject *result; - result = PyObject_GetAttr(dict, name); - if (!result) { - if (dict != __pyx_b) { - PyErr_Clear(); - result = PyObject_GetAttr(__pyx_b, name); - } - if (!result) { - PyErr_SetObject(PyExc_NameError, name); - } - } - return result; -} - -static CYTHON_INLINE int __Pyx_IsLittleEndian(void) { - unsigned int n = 1; - return *(unsigned char*)(&n) != 0; -} - -typedef struct { - __Pyx_StructField root; - __Pyx_BufFmt_StackElem* head; - size_t fmt_offset; - size_t new_count, enc_count; - int is_complex; - char enc_type; - char new_packmode; - char enc_packmode; -} __Pyx_BufFmt_Context; - -static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, - __Pyx_BufFmt_StackElem* stack, - __Pyx_TypeInfo* type) { - stack[0].field = &ctx->root; - stack[0].parent_offset = 0; - ctx->root.type = type; - ctx->root.name = "buffer dtype"; - ctx->root.offset = 0; - ctx->head = stack; - ctx->head->field = &ctx->root; - ctx->fmt_offset = 0; - ctx->head->parent_offset = 0; - ctx->new_packmode = '@'; - ctx->enc_packmode = '@'; - ctx->new_count = 1; - ctx->enc_count = 0; - ctx->enc_type = 0; - ctx->is_complex = 0; - while (type->typegroup == 'S') { - ++ctx->head; - ctx->head->field = type->fields; - ctx->head->parent_offset = 0; - type = type->fields->type; - } -} - -static int __Pyx_BufFmt_ParseNumber(const char** ts) { - int count; - const char* t = *ts; - if (*t < '0' || *t > '9') { - return -1; - } else { - count = *t++ - '0'; - while (*t >= '0' && *t < '9') { - count *= 10; - count += *t++ - '0'; - } - } - *ts = t; - return count; -} - -static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) { - PyErr_Format(PyExc_ValueError, - "Unexpected format string character: '%c'", ch); -} - -static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) { - switch (ch) { - case 'b': return "'char'"; - case 'B': return "'unsigned char'"; - case 'h': return "'short'"; - case 'H': return "'unsigned short'"; - case 'i': return "'int'"; - case 'I': return "'unsigned int'"; - case 'l': return "'long'"; - case 'L': return "'unsigned long'"; - case 'q': return "'long long'"; - case 'Q': return "'unsigned long long'"; - case 'f': return (is_complex ? "'complex float'" : "'float'"); - case 'd': return (is_complex ? "'complex double'" : "'double'"); - case 'g': return (is_complex ? "'complex long double'" : "'long double'"); - case 'T': return "a struct"; - case 'O': return "Python object"; - case 'P': return "a pointer"; - case 0: return "end"; - default: return "unparseable format string"; - } -} - -static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) { - switch (ch) { - case '?': case 'c': case 'b': case 'B': return 1; - case 'h': case 'H': return 2; - case 'i': case 'I': case 'l': case 'L': return 4; - case 'q': case 'Q': return 8; - case 'f': return (is_complex ? 8 : 4); - case 'd': return (is_complex ? 16 : 8); - case 'g': { - PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g').."); - return 0; - } - case 'O': case 'P': return sizeof(void*); - default: - __Pyx_BufFmt_RaiseUnexpectedChar(ch); - return 0; - } -} - -static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) { - switch (ch) { - case 'c': case 'b': case 'B': return 1; - case 'h': case 'H': return sizeof(short); - case 'i': case 'I': return sizeof(int); - case 'l': case 'L': return sizeof(long); - #ifdef HAVE_LONG_LONG - case 'q': case 'Q': return sizeof(PY_LONG_LONG); - #endif - case 'f': return sizeof(float) * (is_complex ? 2 : 1); - case 'd': return sizeof(double) * (is_complex ? 2 : 1); - case 'g': return sizeof(long double) * (is_complex ? 2 : 1); - case 'O': case 'P': return sizeof(void*); - default: { - __Pyx_BufFmt_RaiseUnexpectedChar(ch); - return 0; - } - } -} - -typedef struct { char c; short x; } __Pyx_st_short; -typedef struct { char c; int x; } __Pyx_st_int; -typedef struct { char c; long x; } __Pyx_st_long; -typedef struct { char c; float x; } __Pyx_st_float; -typedef struct { char c; double x; } __Pyx_st_double; -typedef struct { char c; long double x; } __Pyx_st_longdouble; -typedef struct { char c; void *x; } __Pyx_st_void_p; -#ifdef HAVE_LONG_LONG -typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong; -#endif - -static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, int is_complex) { - switch (ch) { - case '?': case 'c': case 'b': case 'B': return 1; - case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short); - case 'i': case 'I': return sizeof(__Pyx_st_int) - sizeof(int); - case 'l': case 'L': return sizeof(__Pyx_st_long) - sizeof(long); -#ifdef HAVE_LONG_LONG - case 'q': case 'Q': return sizeof(__Pyx_st_longlong) - sizeof(PY_LONG_LONG); -#endif - case 'f': return sizeof(__Pyx_st_float) - sizeof(float); - case 'd': return sizeof(__Pyx_st_double) - sizeof(double); - case 'g': return sizeof(__Pyx_st_longdouble) - sizeof(long double); - case 'P': case 'O': return sizeof(__Pyx_st_void_p) - sizeof(void*); - default: - __Pyx_BufFmt_RaiseUnexpectedChar(ch); - return 0; - } -} - -static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) { - switch (ch) { - case 'c': case 'b': case 'h': case 'i': case 'l': case 'q': return 'I'; - case 'B': case 'H': case 'I': case 'L': case 'Q': return 'U'; - case 'f': case 'd': case 'g': return (is_complex ? 'C' : 'R'); - case 'O': return 'O'; - case 'P': return 'P'; - default: { - __Pyx_BufFmt_RaiseUnexpectedChar(ch); - return 0; - } - } -} - -static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) { - if (ctx->head == NULL || ctx->head->field == &ctx->root) { - const char* expected; - const char* quote; - if (ctx->head == NULL) { - expected = "end"; - quote = ""; - } else { - expected = ctx->head->field->type->name; - quote = "'"; - } - PyErr_Format(PyExc_ValueError, - "Buffer dtype mismatch, expected %s%s%s but got %s", - quote, expected, quote, - __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex)); - } else { - __Pyx_StructField* field = ctx->head->field; - __Pyx_StructField* parent = (ctx->head - 1)->field; - PyErr_Format(PyExc_ValueError, - "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'", - field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex), - parent->type->name, field->name); - } -} - -static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) { - char group; - size_t size, offset; - if (ctx->enc_type == 0) return 0; - group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex); - do { - __Pyx_StructField* field = ctx->head->field; - __Pyx_TypeInfo* type = field->type; - - if (ctx->enc_packmode == '@' || ctx->enc_packmode == '^') { - size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex); - } else { - size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex); - } - if (ctx->enc_packmode == '@') { - size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex); - size_t align_mod_offset; - if (align_at == 0) return -1; - align_mod_offset = ctx->fmt_offset % align_at; - if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset; - } - - if (type->size != size || type->typegroup != group) { - if (type->typegroup == 'C' && type->fields != NULL) { - /* special case -- treat as struct rather than complex number */ - size_t parent_offset = ctx->head->parent_offset + field->offset; - ++ctx->head; - ctx->head->field = type->fields; - ctx->head->parent_offset = parent_offset; - continue; - } - - __Pyx_BufFmt_RaiseExpected(ctx); - return -1; - } - - offset = ctx->head->parent_offset + field->offset; - if (ctx->fmt_offset != offset) { - PyErr_Format(PyExc_ValueError, - "Buffer dtype mismatch; next field is at offset %"PY_FORMAT_SIZE_T"d but %"PY_FORMAT_SIZE_T"d expected", - (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset); - return -1; - } - - ctx->fmt_offset += size; - - --ctx->enc_count; /* Consume from buffer string */ - - /* Done checking, move to next field, pushing or popping struct stack if needed */ - while (1) { - if (field == &ctx->root) { - ctx->head = NULL; - if (ctx->enc_count != 0) { - __Pyx_BufFmt_RaiseExpected(ctx); - return -1; - } - break; /* breaks both loops as ctx->enc_count == 0 */ - } - ctx->head->field = ++field; - if (field->type == NULL) { - --ctx->head; - field = ctx->head->field; - continue; - } else if (field->type->typegroup == 'S') { - size_t parent_offset = ctx->head->parent_offset + field->offset; - if (field->type->fields->type == NULL) continue; /* empty struct */ - field = field->type->fields; - ++ctx->head; - ctx->head->field = field; - ctx->head->parent_offset = parent_offset; - break; - } else { - break; - } - } - } while (ctx->enc_count); - ctx->enc_type = 0; - ctx->is_complex = 0; - return 0; -} - -static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts) { - int got_Z = 0; - while (1) { - switch(*ts) { - case 0: - if (ctx->enc_type != 0 && ctx->head == NULL) { - __Pyx_BufFmt_RaiseExpected(ctx); - return NULL; - } - if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; - if (ctx->head != NULL) { - __Pyx_BufFmt_RaiseExpected(ctx); - return NULL; - } - return ts; - case ' ': - case 10: - case 13: - ++ts; - break; - case '<': - if (!__Pyx_IsLittleEndian()) { - PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler"); - return NULL; - } - ctx->new_packmode = '='; - ++ts; - break; - case '>': - case '!': - if (__Pyx_IsLittleEndian()) { - PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler"); - return NULL; - } - ctx->new_packmode = '='; - ++ts; - break; - case '=': - case '@': - case '^': - ctx->new_packmode = *ts++; - break; - case 'T': /* substruct */ - { - const char* ts_after_sub; - size_t i, struct_count = ctx->new_count; - ctx->new_count = 1; - ++ts; - if (*ts != '{') { - PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '{' after 'T'"); - return NULL; - } - ++ts; - ts_after_sub = ts; - for (i = 0; i != struct_count; ++i) { - ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts); - if (!ts_after_sub) return NULL; - } - ts = ts_after_sub; - } - break; - case '}': /* end of substruct; either repeat or move on */ - ++ts; - return ts; - case 'x': - if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; - ctx->fmt_offset += ctx->new_count; - ctx->new_count = 1; - ctx->enc_count = 0; - ctx->enc_type = 0; - ctx->enc_packmode = ctx->new_packmode; - ++ts; - break; - case 'Z': - got_Z = 1; - ++ts; - if (*ts != 'f' && *ts != 'd' && *ts != 'g') { - __Pyx_BufFmt_RaiseUnexpectedChar('Z'); - return NULL; - } /* fall through */ - case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': - case 'l': case 'L': case 'q': case 'Q': - case 'f': case 'd': case 'g': - case 'O': - if (ctx->enc_type == *ts && got_Z == ctx->is_complex && - ctx->enc_packmode == ctx->new_packmode) { - /* Continue pooling same type */ - ctx->enc_count += ctx->new_count; - } else { - /* New type */ - if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; - ctx->enc_count = ctx->new_count; - ctx->enc_packmode = ctx->new_packmode; - ctx->enc_type = *ts; - ctx->is_complex = got_Z; - } - ++ts; - ctx->new_count = 1; - got_Z = 0; - break; - case ':': - ++ts; - while(*ts != ':') ++ts; - ++ts; - break; - default: - { - int number = __Pyx_BufFmt_ParseNumber(&ts); - if (number == -1) { /* First char was not a digit */ - PyErr_Format(PyExc_ValueError, - "Does not understand character buffer dtype format string ('%c')", *ts); - return NULL; - } - ctx->new_count = (size_t)number; - } - } - } -} - -static CYTHON_INLINE void __Pyx_ZeroBuffer(Py_buffer* buf) { - buf->buf = NULL; - buf->obj = NULL; - buf->strides = __Pyx_zeros; - buf->shape = __Pyx_zeros; - buf->suboffsets = __Pyx_minusones; -} - -static CYTHON_INLINE int __Pyx_GetBufferAndValidate(Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack) { - if (obj == Py_None || obj == NULL) { - __Pyx_ZeroBuffer(buf); - return 0; - } - buf->buf = NULL; - if (__Pyx_GetBuffer(obj, buf, flags) == -1) goto fail; - if (buf->ndim != nd) { - PyErr_Format(PyExc_ValueError, - "Buffer has wrong number of dimensions (expected %d, got %d)", - nd, buf->ndim); - goto fail; - } - if (!cast) { - __Pyx_BufFmt_Context ctx; - __Pyx_BufFmt_Init(&ctx, stack, dtype); - if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail; - } - if ((unsigned)buf->itemsize != dtype->size) { - PyErr_Format(PyExc_ValueError, - "Item size of buffer (%"PY_FORMAT_SIZE_T"d byte%s) does not match size of '%s' (%"PY_FORMAT_SIZE_T"d byte%s)", - buf->itemsize, (buf->itemsize > 1) ? "s" : "", - dtype->name, (Py_ssize_t)dtype->size, (dtype->size > 1) ? "s" : ""); - goto fail; - } - if (buf->suboffsets == NULL) buf->suboffsets = __Pyx_minusones; - return 0; -fail:; - __Pyx_ZeroBuffer(buf); - return -1; -} - -static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) { - if (info->buf == NULL) return; - if (info->suboffsets == __Pyx_minusones) info->suboffsets = NULL; - __Pyx_ReleaseBuffer(info); -} - -static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { - if (unlikely(!type)) { - PyErr_Format(PyExc_SystemError, "Missing type object"); - return 0; - } - if (likely(PyObject_TypeCheck(obj, type))) - return 1; - PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", - Py_TYPE(obj)->tp_name, type->tp_name); - return 0; -} - -static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { - PyErr_Format(PyExc_ValueError, - "need more than %"PY_FORMAT_SIZE_T"d value%s to unpack", - index, (index == 1) ? "" : "s"); -} - -static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { - PyErr_Format(PyExc_ValueError, - "too many values to unpack (expected %"PY_FORMAT_SIZE_T"d)", expected); -} - -static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { - if (unlikely(retval)) { - Py_DECREF(retval); - __Pyx_RaiseTooManyValuesError(expected); - return -1; - } else if (PyErr_Occurred()) { - if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) { - PyErr_Clear(); - return 0; - } else { - return -1; - } - } - return 0; -} - -static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) { - PyObject *tmp_type, *tmp_value, *tmp_tb; - PyThreadState *tstate = PyThreadState_GET(); - - tmp_type = tstate->curexc_type; - tmp_value = tstate->curexc_value; - tmp_tb = tstate->curexc_traceback; - tstate->curexc_type = type; - tstate->curexc_value = value; - tstate->curexc_traceback = tb; - Py_XDECREF(tmp_type); - Py_XDECREF(tmp_value); - Py_XDECREF(tmp_tb); -} - -static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) { - PyThreadState *tstate = PyThreadState_GET(); - *type = tstate->curexc_type; - *value = tstate->curexc_value; - *tb = tstate->curexc_traceback; - - tstate->curexc_type = 0; - tstate->curexc_value = 0; - tstate->curexc_traceback = 0; -} - - -static void __Pyx_RaiseArgtupleInvalid( - const char* func_name, - int exact, - Py_ssize_t num_min, - Py_ssize_t num_max, - Py_ssize_t num_found) -{ - Py_ssize_t num_expected; - const char *more_or_less; - - if (num_found < num_min) { - num_expected = num_min; - more_or_less = "at least"; - } else { - num_expected = num_max; - more_or_less = "at most"; - } - if (exact) { - more_or_less = "exactly"; - } - PyErr_Format(PyExc_TypeError, - "%s() takes %s %"PY_FORMAT_SIZE_T"d positional argument%s (%"PY_FORMAT_SIZE_T"d given)", - func_name, more_or_less, num_expected, - (num_expected == 1) ? "" : "s", num_found); -} - -static void __Pyx_RaiseDoubleKeywordsError( - const char* func_name, - PyObject* kw_name) -{ - PyErr_Format(PyExc_TypeError, - #if PY_MAJOR_VERSION >= 3 - "%s() got multiple values for keyword argument '%U'", func_name, kw_name); - #else - "%s() got multiple values for keyword argument '%s'", func_name, - PyString_AS_STRING(kw_name)); - #endif -} - -static int __Pyx_ParseOptionalKeywords( - PyObject *kwds, - PyObject **argnames[], - PyObject *kwds2, - PyObject *values[], - Py_ssize_t num_pos_args, - const char* function_name) -{ - PyObject *key = 0, *value = 0; - Py_ssize_t pos = 0; - PyObject*** name; - PyObject*** first_kw_arg = argnames + num_pos_args; - - while (PyDict_Next(kwds, &pos, &key, &value)) { - name = first_kw_arg; - while (*name && (**name != key)) name++; - if (*name) { - values[name-argnames] = value; - } else { - #if PY_MAJOR_VERSION < 3 - if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key))) { - #else - if (unlikely(!PyUnicode_CheckExact(key)) && unlikely(!PyUnicode_Check(key))) { - #endif - goto invalid_keyword_type; - } else { - for (name = first_kw_arg; *name; name++) { - #if PY_MAJOR_VERSION >= 3 - if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) && - PyUnicode_Compare(**name, key) == 0) break; - #else - if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) && - _PyString_Eq(**name, key)) break; - #endif - } - if (*name) { - values[name-argnames] = value; - } else { - /* unexpected keyword found */ - for (name=argnames; name != first_kw_arg; name++) { - if (**name == key) goto arg_passed_twice; - #if PY_MAJOR_VERSION >= 3 - if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) && - PyUnicode_Compare(**name, key) == 0) goto arg_passed_twice; - #else - if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) && - _PyString_Eq(**name, key)) goto arg_passed_twice; - #endif - } - if (kwds2) { - if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; - } else { - goto invalid_keyword; - } - } - } - } - } - return 0; -arg_passed_twice: - __Pyx_RaiseDoubleKeywordsError(function_name, **name); - goto bad; -invalid_keyword_type: - PyErr_Format(PyExc_TypeError, - "%s() keywords must be strings", function_name); - goto bad; -invalid_keyword: - PyErr_Format(PyExc_TypeError, - #if PY_MAJOR_VERSION < 3 - "%s() got an unexpected keyword argument '%s'", - function_name, PyString_AsString(key)); - #else - "%s() got an unexpected keyword argument '%U'", - function_name, key); - #endif -bad: - return -1; -} - -#if PY_MAJOR_VERSION < 3 -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { - /* cause is unused */ - Py_XINCREF(type); - Py_XINCREF(value); - Py_XINCREF(tb); - /* First, check the traceback argument, replacing None with NULL. */ - if (tb == Py_None) { - Py_DECREF(tb); - tb = 0; - } - else if (tb != NULL && !PyTraceBack_Check(tb)) { - PyErr_SetString(PyExc_TypeError, - "raise: arg 3 must be a traceback or None"); - goto raise_error; - } - /* Next, replace a missing value with None */ - if (value == NULL) { - value = Py_None; - Py_INCREF(value); - } - #if PY_VERSION_HEX < 0x02050000 - if (!PyClass_Check(type)) - #else - if (!PyType_Check(type)) - #endif - { - /* Raising an instance. The value should be a dummy. */ - if (value != Py_None) { - PyErr_SetString(PyExc_TypeError, - "instance exception may not have a separate value"); - goto raise_error; - } - /* Normalize to raise , */ - Py_DECREF(value); - value = type; - #if PY_VERSION_HEX < 0x02050000 - if (PyInstance_Check(type)) { - type = (PyObject*) ((PyInstanceObject*)type)->in_class; - Py_INCREF(type); - } - else { - type = 0; - PyErr_SetString(PyExc_TypeError, - "raise: exception must be an old-style class or instance"); - goto raise_error; - } - #else - type = (PyObject*) Py_TYPE(type); - Py_INCREF(type); - if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { - PyErr_SetString(PyExc_TypeError, - "raise: exception class must be a subclass of BaseException"); - goto raise_error; - } - #endif - } - - __Pyx_ErrRestore(type, value, tb); - return; -raise_error: - Py_XDECREF(value); - Py_XDECREF(type); - Py_XDECREF(tb); - return; -} - -#else /* Python 3+ */ - -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { - if (tb == Py_None) { - tb = 0; - } else if (tb && !PyTraceBack_Check(tb)) { - PyErr_SetString(PyExc_TypeError, - "raise: arg 3 must be a traceback or None"); - goto bad; - } - if (value == Py_None) - value = 0; - - if (PyExceptionInstance_Check(type)) { - if (value) { - PyErr_SetString(PyExc_TypeError, - "instance exception may not have a separate value"); - goto bad; - } - value = type; - type = (PyObject*) Py_TYPE(value); - } else if (!PyExceptionClass_Check(type)) { - PyErr_SetString(PyExc_TypeError, - "raise: exception class must be a subclass of BaseException"); - goto bad; - } - - if (cause) { - PyObject *fixed_cause; - if (PyExceptionClass_Check(cause)) { - fixed_cause = PyObject_CallObject(cause, NULL); - if (fixed_cause == NULL) - goto bad; - } - else if (PyExceptionInstance_Check(cause)) { - fixed_cause = cause; - Py_INCREF(fixed_cause); - } - else { - PyErr_SetString(PyExc_TypeError, - "exception causes must derive from " - "BaseException"); - goto bad; - } - if (!value) { - value = PyObject_CallObject(type, NULL); - } - PyException_SetCause(value, fixed_cause); - } - - PyErr_SetObject(type, value); - - if (tb) { - PyThreadState *tstate = PyThreadState_GET(); - PyObject* tmp_tb = tstate->curexc_traceback; - if (tb != tmp_tb) { - Py_INCREF(tb); - tstate->curexc_traceback = tb; - Py_XDECREF(tmp_tb); - } - } - -bad: - return; -} -#endif - -static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, - const char *name, int exact) -{ - if (!type) { - PyErr_Format(PyExc_SystemError, "Missing type object"); - return 0; - } - if (none_allowed && obj == Py_None) return 1; - else if (exact) { - if (Py_TYPE(obj) == type) return 1; - } - else { - if (PyObject_TypeCheck(obj, type)) return 1; - } - PyErr_Format(PyExc_TypeError, - "Argument '%s' has incorrect type (expected %s, got %s)", - name, type->tp_name, Py_TYPE(obj)->tp_name); - return 0; -} - -static void __Pyx_RaiseBufferFallbackError(void) { - PyErr_Format(PyExc_ValueError, - "Buffer acquisition failed on assignment; and then reacquiring the old buffer failed too!"); -} - - -static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -} - -static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) { - if (t == Py_None) { - __Pyx_RaiseNoneNotIterableError(); - } else if (PyTuple_GET_SIZE(t) < index) { - __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t)); - } else { - __Pyx_RaiseTooManyValuesError(index); - } -} - -#if PY_MAJOR_VERSION < 3 -static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) { - #if PY_VERSION_HEX >= 0x02060000 - if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags); - #endif - if (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pf_5numpy_7ndarray___getbuffer__(obj, view, flags); - else { - PyErr_Format(PyExc_TypeError, "'%100s' does not have the buffer interface", Py_TYPE(obj)->tp_name); - return -1; - } -} - -static void __Pyx_ReleaseBuffer(Py_buffer *view) { - PyObject* obj = view->obj; - if (obj) { - #if PY_VERSION_HEX >= 0x02060000 - if (PyObject_CheckBuffer(obj)) {PyBuffer_Release(view); return;} - #endif - if (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) __pyx_pf_5numpy_7ndarray_1__releasebuffer__(obj, view); - Py_DECREF(obj); - view->obj = NULL; - } -} - -#endif - -static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, long level) { - PyObject *py_import = 0; - PyObject *empty_list = 0; - PyObject *module = 0; - PyObject *global_dict = 0; - PyObject *empty_dict = 0; - PyObject *list; - py_import = __Pyx_GetAttrString(__pyx_b, "__import__"); - if (!py_import) - goto bad; - if (from_list) - list = from_list; - else { - empty_list = PyList_New(0); - if (!empty_list) - goto bad; - list = empty_list; - } - global_dict = PyModule_GetDict(__pyx_m); - if (!global_dict) - goto bad; - empty_dict = PyDict_New(); - if (!empty_dict) - goto bad; - #if PY_VERSION_HEX >= 0x02050000 - { - PyObject *py_level = PyInt_FromLong(level); - if (!py_level) - goto bad; - module = PyObject_CallFunctionObjArgs(py_import, - name, global_dict, empty_dict, list, py_level, NULL); - Py_DECREF(py_level); - } - #else - if (level>0) { - PyErr_SetString(PyExc_RuntimeError, "Relative import is not supported for Python <=2.4."); - goto bad; - } - module = PyObject_CallFunctionObjArgs(py_import, - name, global_dict, empty_dict, list, NULL); - #endif -bad: - Py_XDECREF(empty_list); - Py_XDECREF(py_import); - Py_XDECREF(empty_dict); - return module; -} - -#if CYTHON_CCOMPLEX - #ifdef __cplusplus - static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { - return ::std::complex< float >(x, y); - } - #else - static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { - return x + y*(__pyx_t_float_complex)_Complex_I; - } - #endif -#else - static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { - __pyx_t_float_complex z; - z.real = x; - z.imag = y; - return z; - } -#endif - -#if CYTHON_CCOMPLEX -#else - static CYTHON_INLINE int __Pyx_c_eqf(__pyx_t_float_complex a, __pyx_t_float_complex b) { - return (a.real == b.real) && (a.imag == b.imag); - } - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sumf(__pyx_t_float_complex a, __pyx_t_float_complex b) { - __pyx_t_float_complex z; - z.real = a.real + b.real; - z.imag = a.imag + b.imag; - return z; - } - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_difff(__pyx_t_float_complex a, __pyx_t_float_complex b) { - __pyx_t_float_complex z; - z.real = a.real - b.real; - z.imag = a.imag - b.imag; - return z; - } - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prodf(__pyx_t_float_complex a, __pyx_t_float_complex b) { - __pyx_t_float_complex z; - z.real = a.real * b.real - a.imag * b.imag; - z.imag = a.real * b.imag + a.imag * b.real; - return z; - } - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quotf(__pyx_t_float_complex a, __pyx_t_float_complex b) { - __pyx_t_float_complex z; - float denom = b.real * b.real + b.imag * b.imag; - z.real = (a.real * b.real + a.imag * b.imag) / denom; - z.imag = (a.imag * b.real - a.real * b.imag) / denom; - return z; - } - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_negf(__pyx_t_float_complex a) { - __pyx_t_float_complex z; - z.real = -a.real; - z.imag = -a.imag; - return z; - } - static CYTHON_INLINE int __Pyx_c_is_zerof(__pyx_t_float_complex a) { - return (a.real == 0) && (a.imag == 0); - } - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conjf(__pyx_t_float_complex a) { - __pyx_t_float_complex z; - z.real = a.real; - z.imag = -a.imag; - return z; - } - #if 1 - static CYTHON_INLINE float __Pyx_c_absf(__pyx_t_float_complex z) { - #if !defined(HAVE_HYPOT) || defined(_MSC_VER) - return sqrtf(z.real*z.real + z.imag*z.imag); - #else - return hypotf(z.real, z.imag); - #endif - } - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_powf(__pyx_t_float_complex a, __pyx_t_float_complex b) { - __pyx_t_float_complex z; - float r, lnr, theta, z_r, z_theta; - if (b.imag == 0 && b.real == (int)b.real) { - if (b.real < 0) { - float denom = a.real * a.real + a.imag * a.imag; - a.real = a.real / denom; - a.imag = -a.imag / denom; - b.real = -b.real; - } - switch ((int)b.real) { - case 0: - z.real = 1; - z.imag = 0; - return z; - case 1: - return a; - case 2: - z = __Pyx_c_prodf(a, a); - return __Pyx_c_prodf(a, a); - case 3: - z = __Pyx_c_prodf(a, a); - return __Pyx_c_prodf(z, a); - case 4: - z = __Pyx_c_prodf(a, a); - return __Pyx_c_prodf(z, z); - } - } - if (a.imag == 0) { - if (a.real == 0) { - return a; - } - r = a.real; - theta = 0; - } else { - r = __Pyx_c_absf(a); - theta = atan2f(a.imag, a.real); - } - lnr = logf(r); - z_r = expf(lnr * b.real - theta * b.imag); - z_theta = theta * b.real + lnr * b.imag; - z.real = z_r * cosf(z_theta); - z.imag = z_r * sinf(z_theta); - return z; - } - #endif -#endif - -#if CYTHON_CCOMPLEX - #ifdef __cplusplus - static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { - return ::std::complex< double >(x, y); - } - #else - static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { - return x + y*(__pyx_t_double_complex)_Complex_I; - } - #endif -#else - static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { - __pyx_t_double_complex z; - z.real = x; - z.imag = y; - return z; - } -#endif - -#if CYTHON_CCOMPLEX -#else - static CYTHON_INLINE int __Pyx_c_eq(__pyx_t_double_complex a, __pyx_t_double_complex b) { - return (a.real == b.real) && (a.imag == b.imag); - } - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum(__pyx_t_double_complex a, __pyx_t_double_complex b) { - __pyx_t_double_complex z; - z.real = a.real + b.real; - z.imag = a.imag + b.imag; - return z; - } - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff(__pyx_t_double_complex a, __pyx_t_double_complex b) { - __pyx_t_double_complex z; - z.real = a.real - b.real; - z.imag = a.imag - b.imag; - return z; - } - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod(__pyx_t_double_complex a, __pyx_t_double_complex b) { - __pyx_t_double_complex z; - z.real = a.real * b.real - a.imag * b.imag; - z.imag = a.real * b.imag + a.imag * b.real; - return z; - } - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot(__pyx_t_double_complex a, __pyx_t_double_complex b) { - __pyx_t_double_complex z; - double denom = b.real * b.real + b.imag * b.imag; - z.real = (a.real * b.real + a.imag * b.imag) / denom; - z.imag = (a.imag * b.real - a.real * b.imag) / denom; - return z; - } - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg(__pyx_t_double_complex a) { - __pyx_t_double_complex z; - z.real = -a.real; - z.imag = -a.imag; - return z; - } - static CYTHON_INLINE int __Pyx_c_is_zero(__pyx_t_double_complex a) { - return (a.real == 0) && (a.imag == 0); - } - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj(__pyx_t_double_complex a) { - __pyx_t_double_complex z; - z.real = a.real; - z.imag = -a.imag; - return z; - } - #if 1 - static CYTHON_INLINE double __Pyx_c_abs(__pyx_t_double_complex z) { - #if !defined(HAVE_HYPOT) || defined(_MSC_VER) - return sqrt(z.real*z.real + z.imag*z.imag); - #else - return hypot(z.real, z.imag); - #endif - } - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow(__pyx_t_double_complex a, __pyx_t_double_complex b) { - __pyx_t_double_complex z; - double r, lnr, theta, z_r, z_theta; - if (b.imag == 0 && b.real == (int)b.real) { - if (b.real < 0) { - double denom = a.real * a.real + a.imag * a.imag; - a.real = a.real / denom; - a.imag = -a.imag / denom; - b.real = -b.real; - } - switch ((int)b.real) { - case 0: - z.real = 1; - z.imag = 0; - return z; - case 1: - return a; - case 2: - z = __Pyx_c_prod(a, a); - return __Pyx_c_prod(a, a); - case 3: - z = __Pyx_c_prod(a, a); - return __Pyx_c_prod(z, a); - case 4: - z = __Pyx_c_prod(a, a); - return __Pyx_c_prod(z, z); - } - } - if (a.imag == 0) { - if (a.real == 0) { - return a; - } - r = a.real; - theta = 0; - } else { - r = __Pyx_c_abs(a); - theta = atan2(a.imag, a.real); - } - lnr = log(r); - z_r = exp(lnr * b.real - theta * b.imag); - z_theta = theta * b.real + lnr * b.imag; - z.real = z_r * cos(z_theta); - z.imag = z_r * sin(z_theta); - return z; - } - #endif -#endif - -static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject* x) { - const unsigned char neg_one = (unsigned char)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(unsigned char) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(unsigned char)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to unsigned char" : - "value too large to convert to unsigned char"); - } - return (unsigned char)-1; - } - return (unsigned char)val; - } - return (unsigned char)__Pyx_PyInt_AsUnsignedLong(x); -} - -static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject* x) { - const unsigned short neg_one = (unsigned short)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(unsigned short) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(unsigned short)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to unsigned short" : - "value too large to convert to unsigned short"); - } - return (unsigned short)-1; - } - return (unsigned short)val; - } - return (unsigned short)__Pyx_PyInt_AsUnsignedLong(x); -} - -static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject* x) { - const unsigned int neg_one = (unsigned int)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(unsigned int) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(unsigned int)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to unsigned int" : - "value too large to convert to unsigned int"); - } - return (unsigned int)-1; - } - return (unsigned int)val; - } - return (unsigned int)__Pyx_PyInt_AsUnsignedLong(x); -} - -static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject* x) { - const char neg_one = (char)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(char) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(char)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to char" : - "value too large to convert to char"); - } - return (char)-1; - } - return (char)val; - } - return (char)__Pyx_PyInt_AsLong(x); -} - -static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject* x) { - const short neg_one = (short)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(short) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(short)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to short" : - "value too large to convert to short"); - } - return (short)-1; - } - return (short)val; - } - return (short)__Pyx_PyInt_AsLong(x); -} - -static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject* x) { - const int neg_one = (int)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(int) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(int)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to int" : - "value too large to convert to int"); - } - return (int)-1; - } - return (int)val; - } - return (int)__Pyx_PyInt_AsLong(x); -} - -static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject* x) { - const signed char neg_one = (signed char)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(signed char) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(signed char)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to signed char" : - "value too large to convert to signed char"); - } - return (signed char)-1; - } - return (signed char)val; - } - return (signed char)__Pyx_PyInt_AsSignedLong(x); -} - -static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject* x) { - const signed short neg_one = (signed short)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(signed short) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(signed short)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to signed short" : - "value too large to convert to signed short"); - } - return (signed short)-1; - } - return (signed short)val; - } - return (signed short)__Pyx_PyInt_AsSignedLong(x); -} - -static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject* x) { - const signed int neg_one = (signed int)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(signed int) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(signed int)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to signed int" : - "value too large to convert to signed int"); - } - return (signed int)-1; - } - return (signed int)val; - } - return (signed int)__Pyx_PyInt_AsSignedLong(x); -} - -static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject* x) { - const int neg_one = (int)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(int) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(int)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to int" : - "value too large to convert to int"); - } - return (int)-1; - } - return (int)val; - } - return (int)__Pyx_PyInt_AsLong(x); -} - -static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject* x) { - const unsigned long neg_one = (unsigned long)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; -#if PY_VERSION_HEX < 0x03000000 - if (likely(PyInt_Check(x))) { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to unsigned long"); - return (unsigned long)-1; - } - return (unsigned long)val; - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { - if (unlikely(Py_SIZE(x) < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to unsigned long"); - return (unsigned long)-1; - } - return (unsigned long)PyLong_AsUnsignedLong(x); - } else { - return (unsigned long)PyLong_AsLong(x); - } - } else { - unsigned long val; - PyObject *tmp = __Pyx_PyNumber_Int(x); - if (!tmp) return (unsigned long)-1; - val = __Pyx_PyInt_AsUnsignedLong(tmp); - Py_DECREF(tmp); - return val; - } -} - -static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject* x) { - const unsigned PY_LONG_LONG neg_one = (unsigned PY_LONG_LONG)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; -#if PY_VERSION_HEX < 0x03000000 - if (likely(PyInt_Check(x))) { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to unsigned PY_LONG_LONG"); - return (unsigned PY_LONG_LONG)-1; - } - return (unsigned PY_LONG_LONG)val; - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { - if (unlikely(Py_SIZE(x) < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to unsigned PY_LONG_LONG"); - return (unsigned PY_LONG_LONG)-1; - } - return (unsigned PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); - } else { - return (unsigned PY_LONG_LONG)PyLong_AsLongLong(x); - } - } else { - unsigned PY_LONG_LONG val; - PyObject *tmp = __Pyx_PyNumber_Int(x); - if (!tmp) return (unsigned PY_LONG_LONG)-1; - val = __Pyx_PyInt_AsUnsignedLongLong(tmp); - Py_DECREF(tmp); - return val; - } -} - -static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject* x) { - const long neg_one = (long)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; -#if PY_VERSION_HEX < 0x03000000 - if (likely(PyInt_Check(x))) { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to long"); - return (long)-1; - } - return (long)val; - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { - if (unlikely(Py_SIZE(x) < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to long"); - return (long)-1; - } - return (long)PyLong_AsUnsignedLong(x); - } else { - return (long)PyLong_AsLong(x); - } - } else { - long val; - PyObject *tmp = __Pyx_PyNumber_Int(x); - if (!tmp) return (long)-1; - val = __Pyx_PyInt_AsLong(tmp); - Py_DECREF(tmp); - return val; - } -} - -static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject* x) { - const PY_LONG_LONG neg_one = (PY_LONG_LONG)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; -#if PY_VERSION_HEX < 0x03000000 - if (likely(PyInt_Check(x))) { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to PY_LONG_LONG"); - return (PY_LONG_LONG)-1; - } - return (PY_LONG_LONG)val; - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { - if (unlikely(Py_SIZE(x) < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to PY_LONG_LONG"); - return (PY_LONG_LONG)-1; - } - return (PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); - } else { - return (PY_LONG_LONG)PyLong_AsLongLong(x); - } - } else { - PY_LONG_LONG val; - PyObject *tmp = __Pyx_PyNumber_Int(x); - if (!tmp) return (PY_LONG_LONG)-1; - val = __Pyx_PyInt_AsLongLong(tmp); - Py_DECREF(tmp); - return val; - } -} - -static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject* x) { - const signed long neg_one = (signed long)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; -#if PY_VERSION_HEX < 0x03000000 - if (likely(PyInt_Check(x))) { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to signed long"); - return (signed long)-1; - } - return (signed long)val; - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { - if (unlikely(Py_SIZE(x) < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to signed long"); - return (signed long)-1; - } - return (signed long)PyLong_AsUnsignedLong(x); - } else { - return (signed long)PyLong_AsLong(x); - } - } else { - signed long val; - PyObject *tmp = __Pyx_PyNumber_Int(x); - if (!tmp) return (signed long)-1; - val = __Pyx_PyInt_AsSignedLong(tmp); - Py_DECREF(tmp); - return val; - } -} - -static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject* x) { - const signed PY_LONG_LONG neg_one = (signed PY_LONG_LONG)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; -#if PY_VERSION_HEX < 0x03000000 - if (likely(PyInt_Check(x))) { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to signed PY_LONG_LONG"); - return (signed PY_LONG_LONG)-1; - } - return (signed PY_LONG_LONG)val; - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { - if (unlikely(Py_SIZE(x) < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to signed PY_LONG_LONG"); - return (signed PY_LONG_LONG)-1; - } - return (signed PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); - } else { - return (signed PY_LONG_LONG)PyLong_AsLongLong(x); - } - } else { - signed PY_LONG_LONG val; - PyObject *tmp = __Pyx_PyNumber_Int(x); - if (!tmp) return (signed PY_LONG_LONG)-1; - val = __Pyx_PyInt_AsSignedLongLong(tmp); - Py_DECREF(tmp); - return val; - } -} - -static int __Pyx_check_binary_version(void) { - char ctversion[4], rtversion[4]; - PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); - PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); - if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { - char message[200]; - PyOS_snprintf(message, sizeof(message), - "compiletime version %s of module '%.100s' " - "does not match runtime version %s", - ctversion, __Pyx_MODULE_NAME, rtversion); - #if PY_VERSION_HEX < 0x02050000 - return PyErr_Warn(NULL, message); - #else - return PyErr_WarnEx(NULL, message, 1); - #endif - } - return 0; -} - -#ifndef __PYX_HAVE_RT_ImportType -#define __PYX_HAVE_RT_ImportType -static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, - size_t size, int strict) -{ - PyObject *py_module = 0; - PyObject *result = 0; - PyObject *py_name = 0; - char warning[200]; - - py_module = __Pyx_ImportModule(module_name); - if (!py_module) - goto bad; - #if PY_MAJOR_VERSION < 3 - py_name = PyString_FromString(class_name); - #else - py_name = PyUnicode_FromString(class_name); - #endif - if (!py_name) - goto bad; - result = PyObject_GetAttr(py_module, py_name); - Py_DECREF(py_name); - py_name = 0; - Py_DECREF(py_module); - py_module = 0; - if (!result) - goto bad; - if (!PyType_Check(result)) { - PyErr_Format(PyExc_TypeError, - "%s.%s is not a type object", - module_name, class_name); - goto bad; - } - if (!strict && ((PyTypeObject *)result)->tp_basicsize > (Py_ssize_t)size) { - PyOS_snprintf(warning, sizeof(warning), - "%s.%s size changed, may indicate binary incompatibility", - module_name, class_name); - #if PY_VERSION_HEX < 0x02050000 - if (PyErr_Warn(NULL, warning) < 0) goto bad; - #else - if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; - #endif - } - else if (((PyTypeObject *)result)->tp_basicsize != (Py_ssize_t)size) { - PyErr_Format(PyExc_ValueError, - "%s.%s has the wrong size, try recompiling", - module_name, class_name); - goto bad; - } - return (PyTypeObject *)result; -bad: - Py_XDECREF(py_module); - Py_XDECREF(result); - return NULL; -} -#endif - -#ifndef __PYX_HAVE_RT_ImportModule -#define __PYX_HAVE_RT_ImportModule -static PyObject *__Pyx_ImportModule(const char *name) { - PyObject *py_name = 0; - PyObject *py_module = 0; - - #if PY_MAJOR_VERSION < 3 - py_name = PyString_FromString(name); - #else - py_name = PyUnicode_FromString(name); - #endif - if (!py_name) - goto bad; - py_module = PyImport_Import(py_name); - Py_DECREF(py_name); - return py_module; -bad: - Py_XDECREF(py_name); - return 0; -} -#endif - -#include "compile.h" -#include "frameobject.h" -#include "traceback.h" - -static void __Pyx_AddTraceback(const char *funcname, int __pyx_clineno, - int __pyx_lineno, const char *__pyx_filename) { - PyObject *py_srcfile = 0; - PyObject *py_funcname = 0; - PyObject *py_globals = 0; - PyCodeObject *py_code = 0; - PyFrameObject *py_frame = 0; - - #if PY_MAJOR_VERSION < 3 - py_srcfile = PyString_FromString(__pyx_filename); - #else - py_srcfile = PyUnicode_FromString(__pyx_filename); - #endif - if (!py_srcfile) goto bad; - if (__pyx_clineno) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno); - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno); - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); - #else - py_funcname = PyUnicode_FromString(funcname); - #endif - } - if (!py_funcname) goto bad; - py_globals = PyModule_GetDict(__pyx_m); - if (!py_globals) goto bad; - py_code = PyCode_New( - 0, /*int argcount,*/ - #if PY_MAJOR_VERSION >= 3 - 0, /*int kwonlyargcount,*/ - #endif - 0, /*int nlocals,*/ - 0, /*int stacksize,*/ - 0, /*int flags,*/ - __pyx_empty_bytes, /*PyObject *code,*/ - __pyx_empty_tuple, /*PyObject *consts,*/ - __pyx_empty_tuple, /*PyObject *names,*/ - __pyx_empty_tuple, /*PyObject *varnames,*/ - __pyx_empty_tuple, /*PyObject *freevars,*/ - __pyx_empty_tuple, /*PyObject *cellvars,*/ - py_srcfile, /*PyObject *filename,*/ - py_funcname, /*PyObject *name,*/ - __pyx_lineno, /*int firstlineno,*/ - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - if (!py_code) goto bad; - py_frame = PyFrame_New( - PyThreadState_GET(), /*PyThreadState *tstate,*/ - py_code, /*PyCodeObject *code,*/ - py_globals, /*PyObject *globals,*/ - 0 /*PyObject *locals*/ - ); - if (!py_frame) goto bad; - py_frame->f_lineno = __pyx_lineno; - PyTraceBack_Here(py_frame); -bad: - Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); - Py_XDECREF(py_code); - Py_XDECREF(py_frame); -} - -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { - while (t->p) { - #if PY_MAJOR_VERSION < 3 - if (t->is_unicode) { - *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); - } else if (t->intern) { - *t->p = PyString_InternFromString(t->s); - } else { - *t->p = PyString_FromStringAndSize(t->s, t->n - 1); - } - #else /* Python 3+ has unicode identifiers */ - if (t->is_unicode | t->is_str) { - if (t->intern) { - *t->p = PyUnicode_InternFromString(t->s); - } else if (t->encoding) { - *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); - } else { - *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); - } - } else { - *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); - } - #endif - if (!*t->p) - return -1; - ++t; - } - return 0; -} - -/* Type Conversion Functions */ - -static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { - int is_true = x == Py_True; - if (is_true | (x == Py_False) | (x == Py_None)) return is_true; - else return PyObject_IsTrue(x); -} - -static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x) { - PyNumberMethods *m; - const char *name = NULL; - PyObject *res = NULL; -#if PY_VERSION_HEX < 0x03000000 - if (PyInt_Check(x) || PyLong_Check(x)) -#else - if (PyLong_Check(x)) -#endif - return Py_INCREF(x), x; - m = Py_TYPE(x)->tp_as_number; -#if PY_VERSION_HEX < 0x03000000 - if (m && m->nb_int) { - name = "int"; - res = PyNumber_Int(x); - } - else if (m && m->nb_long) { - name = "long"; - res = PyNumber_Long(x); - } -#else - if (m && m->nb_int) { - name = "int"; - res = PyNumber_Long(x); - } -#endif - if (res) { -#if PY_VERSION_HEX < 0x03000000 - if (!PyInt_Check(res) && !PyLong_Check(res)) { -#else - if (!PyLong_Check(res)) { -#endif - PyErr_Format(PyExc_TypeError, - "__%s__ returned non-%s (type %.200s)", - name, name, Py_TYPE(res)->tp_name); - Py_DECREF(res); - return NULL; - } - } - else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError, - "an integer is required"); - } - return res; -} - -static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_ssize_t ival; - PyObject* x = PyNumber_Index(b); - if (!x) return -1; - ival = PyInt_AsSsize_t(x); - Py_DECREF(x); - return ival; -} - -static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { -#if PY_VERSION_HEX < 0x02050000 - if (ival <= LONG_MAX) - return PyInt_FromLong((long)ival); - else { - unsigned char *bytes = (unsigned char *) &ival; - int one = 1; int little = (int)*(unsigned char*)&one; - return _PyLong_FromByteArray(bytes, sizeof(size_t), little, 0); - } -#else - return PyInt_FromSize_t(ival); -#endif -} - -static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject* x) { - unsigned PY_LONG_LONG val = __Pyx_PyInt_AsUnsignedLongLong(x); - if (unlikely(val == (unsigned PY_LONG_LONG)-1 && PyErr_Occurred())) { - return (size_t)-1; - } else if (unlikely(val != (unsigned PY_LONG_LONG)(size_t)val)) { - PyErr_SetString(PyExc_OverflowError, - "value too large to convert to size_t"); - return (size_t)-1; - } - return (size_t)val; -} - - -#endif /* Py_PYTHON_H */ diff --git a/python_tools/void_python_tools/backend/launchers.py b/python_tools/void_python_tools/backend/launchers.py index 53fb81c..6a2833d 100755 --- a/python_tools/void_python_tools/backend/launchers.py +++ b/python_tools/void_python_tools/backend/launchers.py @@ -60,7 +60,7 @@ def launchGenerate(sample, binPath, workDir=None, inputDataDir=None, file(parmFile, mode="w").write(conf) if not (continueRun and jobSuccessful(logFile, "Done!\n")): - cmd = "%s --configFile=%s >& %s" % (binPath,parmFile,logFile) + cmd = "%s --configFile=%s &> %s" % (binPath,parmFile,logFile) os.system(cmd) if jobSuccessful(logFile, "Done!\n"): print "done" @@ -148,7 +148,7 @@ def launchGenerate(sample, binPath, workDir=None, inputDataDir=None, file(parmFile, mode="w").write(conf) if not (continueRun and jobSuccessful(logFile, "Done!\n")): - cmd = "%s --configFile=%s >& %s" % (binPath,parmFile,logFile) + cmd = "%s --configFile=%s &> %s" % (binPath,parmFile,logFile) os.system(cmd) if jobSuccessful(logFile, "Done!\n"): print "done" @@ -199,7 +199,7 @@ def launchZobov(sample, binPath, zobovDir=None, logDir=None, continueRun=None, if os.access(zobovDir+"/voidDesc_"+sampleName+".out", os.F_OK): os.unlink(zobovDir+"/voidDesc_"+sampleName+".out") - cmd = "%s/vozinit %s 0.1 1.0 %g %s %g %s %s %s >& %s" % \ + cmd = "%s/vozinit %s 0.1 1.0 %g %s %g %s %s %s &> %s" % \ (binPath, datafile, numZobovDivisions, \ "_"+sampleName, numZobovThreads, \ binPath, zobovDir, maskIndex, logFile) @@ -295,7 +295,7 @@ def launchPrune(sample, binPath, thisDataPortion=None, cmd += " --outDistances=" + zobovDir+"/boundaryDistances_"+\ str(thisDataPortion)+"_"+\ str(sampleName)+".out" - cmd += " >& " + logFile + cmd += " &> " + logFile os.system(cmd) if jobSuccessful(logFile, "NetCDF: Not a valid ID\n") or \ @@ -423,7 +423,7 @@ def launchStack(sample, stack, binPath, thisDataPortion=None, logDir=None, fp.close() if not (continueRun and jobSuccessful(logFile, "Done!\n")): - cmd = "%s --configFile=%s >& %s" % \ + cmd = "%s --configFile=%s &> %s" % \ (binPath, parmFile, logFile) os.system(cmd)