Changeset 19532 for trunk/ppStack/src/ppStackLoop.c
- Timestamp:
- Sep 11, 2008, 6:12:42 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/ppStack/src/ppStackLoop.c (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ppStack/src/ppStackLoop.c
r19505 r19532 390 390 psVector *inputMask = psVectorAlloc(num, PS_TYPE_U8); // Mask for inputs 391 391 psVectorInit(inputMask, 0); 392 psVector *matchChi2 = psVectorAlloc(num, PS_TYPE_F32); // chi^2 for stamps when matching 393 psVectorInit(matchChi2, NAN); 392 394 for (int i = 0; i < num; i++) { 393 395 psTrace("ppStack", 2, "Convolving input %d of %d to target PSF....\n", i, num); … … 402 404 psFree(rng); 403 405 psFree(inputMask); 406 psFree(matchChi2); 404 407 return false; 405 408 } … … 419 422 psFree(rng); 420 423 psFree(inputMask); 424 psFree(matchChi2); 421 425 return false; 422 426 } … … 425 429 psArray *regions = NULL, *kernels = NULL; // Regions and kernels used in subtraction 426 430 psArray *sources = haveSources ? globalSources : indSources->data[i]; // Sources for matching 427 if (!ppStackMatch(readout, ®ions, &kernels, sources, targetPSF, rng, config)) { 431 if (!ppStackMatch(readout, ®ions, &kernels, &matchChi2->data.F32[i], 432 sources, targetPSF, rng, config)) { 428 433 psErrorStackPrint(stderr, "Unable to match image %d --- ignoring.", i); 429 434 inputMask->data.U8[i] = PPSTACK_MASK_MATCH; … … 459 464 psFree(cells); 460 465 psFree(inputMask); 466 psFree(inputMask); 467 psFree(matchChi2); 461 468 return false; 462 469 } … … 473 480 memDump("preinitial"); 474 481 475 // Stack the convolv d files482 // Stack the convolved files 476 483 psTrace("ppStack", 1, "Initial stack of convolved images....\n"); 477 484 pmReadout *outRO = NULL; // Output readout … … 489 496 psFree(stack); 490 497 psFree(inputMask); 498 psFree(matchChi2); 491 499 psFree(exptimes); 492 500 psFree(cells); … … 502 510 psFree(stack); 503 511 psFree(inputMask); 512 psFree(matchChi2); 504 513 psFree(exptimes); 505 514 psFree(cells); … … 518 527 psFree(stack); 519 528 psFree(inputMask); 529 psFree(matchChi2); 520 530 psFree(view); 521 531 psFree(outRO); … … 546 556 psFree(cellList); 547 557 548 psFree(cells);558 psFree(cells); 549 559 550 560 bool status; // Status of read … … 559 569 psFree(stack); 560 570 psFree(inputMask); 571 psFree(matchChi2); 561 572 psFree(view); 562 573 psFree(outRO); … … 576 587 psArrayAdd(job->args, 1, subRegions); 577 588 psArrayAdd(job->args, 1, subKernels); 589 psArrayAdd(job->args, 1, matchChi2); 578 590 if (!psThreadJobAddPending(job)) { 579 591 psFree(job); … … 582 594 psFree(stack); 583 595 psFree(inputMask); 596 psFree(matchChi2); 584 597 psFree(view); 585 598 psFree(outRO); … … 596 609 psFree(stack); 597 610 psFree(inputMask); 611 psFree(matchChi2); 598 612 psFree(view); 599 613 psFree(outRO); … … 601 615 return false; 602 616 } 617 psFree(matchChi2); 603 618 604 619 // Harvest the jobs, gathering the inspection lists
Note:
See TracChangeset
for help on using the changeset viewer.
