Changeset 952ea1f in sasview for src/sas/sascalc/pr
- Timestamp:
- Oct 11, 2018 1:33:22 PM (6 years ago)
- Branches:
- master, magnetic_scatt, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249
- Children:
- 7ba6470
- Parents:
- 67ed543
- git-author:
- Paul Kienzle <pkienzle@…> (10/11/18 13:22:07)
- git-committer:
- Paul Kienzle <pkienzle@…> (10/11/18 13:33:22)
- Location:
- src/sas/sascalc/pr
- Files:
-
- 1 deleted
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/sascalc/pr/c_extensions/Cinvertor.c
ra52f32f r952ea1f 5 5 * 6 6 */ 7 #include <Python.h>8 #include "structmember.h"9 7 #include <stdio.h> 10 8 #include <stdlib.h> … … 12 10 #include <time.h> 13 11 12 //#define Py_LIMITED_API 0x03050000 13 #include <Python.h> 14 #include <structmember.h> 15 14 16 #include "invertor.h" 15 16 17 17 18 /// Error object for raised exceptions … … 1121 1122 1122 1123 #define MODULE_DOC "C extension module for inversion to P(r)." 1123 #define MODULE_NAME " pr_inversion"1124 #define MODULE_INIT2 init pr_inversion1125 #define MODULE_INIT3 PyInit_ pr_inversion1124 #define MODULE_NAME "_pr_inversion" 1125 #define MODULE_INIT2 init_pr_inversion 1126 #define MODULE_INIT3 PyInit__pr_inversion 1126 1127 #define MODULE_METHODS module_methods 1127 1128 -
src/sas/sascalc/pr/invertor.py
r2469df7 r952ea1f 17 17 from numpy.linalg import lstsq 18 18 from scipy import optimize 19 from sas.sascalc.pr. core.pr_inversion import Cinvertor19 from sas.sascalc.pr._pr_inversion import Cinvertor 20 20 21 21 logger = logging.getLogger(__name__) … … 71 71 A[j][i] = (Fourier transformed base function for point j) 72 72 73 We the mchoose a number of r-points, n_r, to evaluate the second73 We then choose a number of r-points, n_r, to evaluate the second 74 74 derivative of P(r) at. This is used as our regularization term. 75 75 For a vector r of length n_r, the following n_r rows are set to :: … … 144 144 x, y, err, d_max, q_min, q_max and alpha 145 145 """ 146 if 146 if name == 'x': 147 147 if 0.0 in value: 148 148 msg = "Invertor: one of your q-values is zero. " … … 268 268 A[i][j] = (Fourier transformed base function for point j) 269 269 270 We the mchoose a number of r-points, n_r, to evaluate the second270 We then choose a number of r-points, n_r, to evaluate the second 271 271 derivative of P(r) at. This is used as our regularization term. 272 272 For a vector r of length n_r, the following n_r rows are set to :: … … 416 416 A[i][j] = (Fourier transformed base function for point j) 417 417 418 We the mchoose a number of r-points, n_r, to evaluate the second418 We then choose a number of r-points, n_r, to evaluate the second 419 419 derivative of P(r) at. This is used as our regularization term. 420 420 For a vector r of length n_r, the following n_r rows are set to :: … … 473 473 474 474 # Perform the inversion (least square fit) 475 c, chi2, _, _ = lstsq(a, b )475 c, chi2, _, _ = lstsq(a, b, rcond=None) 476 476 # Sanity check 477 477 try: … … 497 497 cov = np.linalg.pinv(inv_cov) 498 498 err = math.fabs(chi2 / float(npts - nfunc)) * cov 499 except :499 except Exception as exc: 500 500 # We were not able to estimate the errors 501 501 # Return an empty error matrix 502 logger.error( sys.exc_value)502 logger.error(exc) 503 503 504 504 # Keep a copy of the last output … … 537 537 538 538 """ 539 from num_term import NTermEstimator539 from .num_term import NTermEstimator 540 540 estimator = NTermEstimator(self.clone()) 541 541 try: 542 542 return estimator.num_terms(isquit_func) 543 except :543 except Exception as exc: 544 544 # If we fail, estimate alpha and return the default 545 545 # number of terms 546 546 best_alpha, _, _ = self.estimate_alpha(self.nfunc) 547 logger.warning("Invertor.estimate_numterms: %s" % sys.exc_value)547 logger.warning("Invertor.estimate_numterms: %s" % exc) 548 548 return self.nfunc, best_alpha, "Could not estimate number of terms" 549 549 … … 631 631 return best_alpha, message, elapsed 632 632 633 except :634 message = "Invertor.estimate_alpha: %s" % sys.exc_value633 except Exception as exc: 634 message = "Invertor.estimate_alpha: %s" % exc 635 635 return 0, message, elapsed 636 636 … … 748 748 self.cov[i][i] = float(toks2[1]) 749 749 750 except :751 msg = "Invertor.from_file: corrupted file\n%s" % sys.exc_value750 except Exception as exc: 751 msg = "Invertor.from_file: corrupted file\n%s" % exc 752 752 raise RuntimeError(msg) 753 753 else:
Note: See TracChangeset
for help on using the changeset viewer.