Mercurial > forge
comparison extra/NaN/src/covm_mex.cpp @ 12685:f26b1170ea90 octave-forge
resulting values should be really converted to output data type
author | schloegl |
---|---|
date | Sat, 12 Sep 2015 07:15:01 +0000 |
parents | de98e4cb9248 |
children | 6d6285a2a633 |
comparison
equal
deleted
inserted
replaced
12684:29631e455f62 | 12685:f26b1170ea90 |
---|---|
360 continue; | 360 continue; |
361 } | 361 } |
362 cc += z*W[k]; | 362 cc += z*W[k]; |
363 nn += W[k]; | 363 nn += W[k]; |
364 } | 364 } |
365 CC[i] = cc; | 365 CC[i] = (typeof(*CC))cc; |
366 if (NN != NULL) | 366 if (NN != NULL) |
367 NN[i] = nn; | 367 NN[i] = (typeof(*NN))nn; |
368 } | 368 } |
369 else /* no weights, all weights are 1 */ | 369 else /* no weights, all weights are 1 */ |
370 #pragma omp for schedule(dynamic) nowait | 370 #pragma omp for schedule(dynamic) nowait |
371 for (i = 0; i < cX * cY; i++) | 371 for (i = 0; i < cX * cY; i++) |
372 { | 372 { |
384 continue; | 384 continue; |
385 } | 385 } |
386 cc += z; | 386 cc += z; |
387 nn++; | 387 nn++; |
388 } | 388 } |
389 CC[i] = cc; | 389 CC[i] = (typeof(*CC))cc; |
390 if (NN != NULL) | 390 if (NN != NULL) |
391 NN[i] = (double)nn; | 391 NN[i] = (typeof(*NN))nn; |
392 } | 392 } |
393 else // if (X0==Y0) && (cX==cY) | 393 else // if (X0==Y0) && (cX==cY) |
394 /******** X==Y, output is symetric *******/ | 394 /******** X==Y, output is symetric *******/ |
395 if (W) /* weighted version */ | 395 if (W) /* weighted version */ |
396 #pragma omp for schedule(dynamic) nowait | 396 #pragma omp for schedule(dynamic) nowait |
414 } | 414 } |
415 cc += z*W[k]; | 415 cc += z*W[k]; |
416 nn += W[k]; | 416 nn += W[k]; |
417 } | 417 } |
418 size_t j = jj + ii*cX; | 418 size_t j = jj + ii*cX; |
419 CC[i] = cc; | 419 CC[i] = (typeof(*CC))cc; |
420 CC[j] = cc; | 420 CC[j] = (typeof(*CC))cc; |
421 if (NN != NULL) { | 421 if (NN != NULL) { |
422 NN[i] = nn; | 422 NN[i] = (typeof(*NN))nn; |
423 NN[j] = nn; | 423 NN[j] = (typeof(*NN))nn; |
424 } | 424 } |
425 } | 425 } |
426 else /* no weights, all weights are 1 */ | 426 else /* no weights, all weights are 1 */ |
427 #pragma omp for schedule(dynamic) nowait | 427 #pragma omp for schedule(dynamic) nowait |
428 for (i = 0; i < cX * cY; i++) | 428 for (i = 0; i < cX * cY; i++) |
445 } | 445 } |
446 cc += z; | 446 cc += z; |
447 nn++; | 447 nn++; |
448 } | 448 } |
449 size_t j = jj + ii*cX; | 449 size_t j = jj + ii*cX; |
450 CC[i] = cc; | 450 CC[i] = (typeof(*CC))cc; |
451 CC[j] = cc; | 451 CC[j] = (typeof(*CC))cc; |
452 if (NN != NULL) { | 452 if (NN != NULL) { |
453 NN[i] = (double)nn; | 453 NN[i] = (typeof(*NN))nn; |
454 NN[j] = (double)nn; | 454 NN[j] = (typeof(*NN))nn; |
455 } | 455 } |
456 } | 456 } |
457 | 457 |
458 } | 458 } |
459 else if (ACC_LEVEL == 3) { | 459 else if (ACC_LEVEL == 3) { |
498 y = z*W[k]-rn; | 498 y = z*W[k]-rn; |
499 t = nn+y; | 499 t = nn+y; |
500 rn= (t-nn)-y; | 500 rn= (t-nn)-y; |
501 nn= t; | 501 nn= t; |
502 } | 502 } |
503 CC[i] = cc; | 503 CC[i] = (typeof(*CC))cc; |
504 if (NN != NULL) | 504 if (NN != NULL) |
505 NN[i] = nn; | 505 NN[i] = (typeof(*NN))nn; |
506 } | 506 } |
507 else /* no weights, all weights are 1 */ | 507 else /* no weights, all weights are 1 */ |
508 #pragma omp for schedule(dynamic) nowait | 508 #pragma omp for schedule(dynamic) nowait |
509 for (i = 0; i < cX * cY; i++) | 509 for (i = 0; i < cX * cY; i++) |
510 { | 510 { |
529 rc= (t-cc)-y; | 529 rc= (t-cc)-y; |
530 cc= t; | 530 cc= t; |
531 | 531 |
532 nn++; | 532 nn++; |
533 } | 533 } |
534 CC[i] = cc; | 534 CC[i] = (typeof(*CC))cc; |
535 if (NN != NULL) | 535 if (NN != NULL) |
536 NN[i] = (double)nn; | 536 NN[i] = (typeof(*NN))nn; |
537 } | 537 } |
538 else // if (X0==Y0) && (cX==cY) | 538 else // if (X0==Y0) && (cX==cY) |
539 /******** X==Y, output is symetric *******/ | 539 /******** X==Y, output is symetric *******/ |
540 if (W) /* weighted version */ | 540 if (W) /* weighted version */ |
541 #pragma omp for schedule(dynamic) nowait | 541 #pragma omp for schedule(dynamic) nowait |
571 t = nn+y; | 571 t = nn+y; |
572 rn= (t-nn)-y; | 572 rn= (t-nn)-y; |
573 nn= t; | 573 nn= t; |
574 } | 574 } |
575 size_t j = jj + ii*cX; | 575 size_t j = jj + ii*cX; |
576 CC[i] = cc; | 576 CC[i] = (typeof(*CC))cc; |
577 CC[j] = cc; | 577 CC[j] = (typeof(*CC))cc; |
578 if (NN != NULL) { | 578 if (NN != NULL) { |
579 NN[i] = nn; | 579 NN[i] = (typeof(*NN))nn; |
580 NN[j] = nn; | 580 NN[j] = (typeof(*NN))nn; |
581 } | 581 } |
582 } | 582 } |
583 else /* no weights, all weights are 1 */ | 583 else /* no weights, all weights are 1 */ |
584 #pragma omp for schedule(dynamic) nowait | 584 #pragma omp for schedule(dynamic) nowait |
585 for (i = 0; i < cX * cY; i++) | 585 for (i = 0; i < cX * cY; i++) |
609 cc= t; | 609 cc= t; |
610 | 610 |
611 nn++; | 611 nn++; |
612 } | 612 } |
613 size_t j = jj + ii*cX; | 613 size_t j = jj + ii*cX; |
614 CC[i] = cc; | 614 CC[i] = (typeof(*CC))cc; |
615 CC[j] = cc; | 615 CC[j] = (typeof(*CC))cc; |
616 if (NN != NULL) { | 616 if (NN != NULL) { |
617 NN[i] = (double)nn; | 617 NN[i] = (typeof(*NN))nn; |
618 NN[j] = (double)nn; | 618 NN[j] = (typeof(*NN))nn; |
619 } | 619 } |
620 } | 620 } |
621 } | 621 } |
622 else if (ACC_LEVEL == 2) { | 622 else if (ACC_LEVEL == 2) { |
623 /*------ version 3 --------------------- | 623 /*------ version 3 --------------------- |