| 448 | | sum1 = 0.; |
| | 459 | double beta; |
| | 460 | valarray<double> x(mole.num_calc-nelem), |
| | 461 | y(mole.num_calc-nelem), |
| | 462 | v(mole.num_calc-nelem), |
| | 463 | p(mole.num_calc-nelem); |
| | 464 | for(i=0;i<mole.num_calc-nelem;i++) |
| | 465 | { |
| | 466 | x[i] = u[i+nelem][nelem]; |
| | 467 | } |
| | 468 | householder(x,v,beta); |
| | 469 | betah[nelem] = beta; |
| | 470 | for(i=0;i<mole.num_calc-nelem;i++) |
| | 471 | { |
| | 472 | u[i+nelem][nelem] = v[i]; |
| | 473 | } |
| | 474 | for(long nother=nelem+1;nother<LIMELM;nother++) |
| | 475 | { |
| | 476 | for (i=0;i<mole.num_calc-nelem;i++) |
| | 477 | { |
| | 478 | y[i] = u[i+nelem][nother]; |
| | 479 | } |
| | 480 | p = project(y,v,beta); |
| | 481 | for (i=0;i<mole.num_calc-nelem;i++) |
| | 482 | { |
| | 483 | u[i+nelem][nother] = p[i]; |
| | 484 | } |
| | 485 | } |
| | 486 | } |
| | 487 | valarray<double> b2(mole.num_calc); |
| | 488 | for(i=0;i<mole.num_calc;i++) |
| | 489 | { |
| | 490 | b2[i] = b[i]; |
| | 491 | } |
| | 492 | for (nelem=ipHYDROGEN;nelem<LIMELM;nelem++) |
| | 493 | { |
| | 494 | valarray<double> v(mole.num_calc-nelem), |
| | 495 | c(mole.num_calc-nelem), |
| | 496 | p(mole.num_calc-nelem); |
| | 497 | for(i=0;i<mole.num_calc-nelem;i++) |
| | 498 | { |
| | 499 | v[i] = u[i+nelem][nelem]; |
| | 500 | c[i] = b2[i+nelem]; |
| | 501 | } |
| | 502 | p = project(c,v,betah[nelem]); |
| | 503 | for (i=0;i<mole.num_calc-nelem;i++) |
| | 504 | { |
| | 505 | b2[i+nelem] = p[i]; |
| | 506 | } |
| | 507 | } |
| | 508 | for (nelem=ipHYDROGEN;nelem<LIMELM;nelem++) |
| | 509 | { |
| | 510 | fprintf(ioQQQ,"Elem %ld proj %g %g\n",nelem,b2[nelem],dense.gas_phase[nelem]); |
| | 511 | } |
| | 512 | for (;nelem<mole.num_calc;nelem++) |
| | 513 | { |
| | 514 | fprintf(ioQQQ,"Remain %ld proj %g\n",nelem,b2[nelem]); |
| | 515 | } |
| | 516 | } |
| | 517 | if (0) |
| | 518 | { |
| | 519 | for (nelem=ipHYDROGEN;nelem<LIMELM;nelem++) |
| | 520 | { |
| | 521 | double sum1 = 0.; |