| 328 | void egiw::from_setting ( const Setting &set ) { |
| 329 | epdf::from_setting ( set ); |
| 330 | UI::get ( dimx, set, "dimx", UI::compulsory ); |
| 331 | if ( !UI::get ( nu, set, "nu", UI::optional ) ) { |
| 332 | nu = -1; |
| 333 | } |
| 334 | mat V; |
| 335 | if ( !UI::get ( V, set, "V", UI::optional ) ) { |
| 336 | vec dV; |
| 337 | UI::get ( dV, set, "dV", UI::compulsory ); |
| 338 | set_parameters ( dimx, ldmat ( dV ), nu ); |
| 339 | |
| 340 | } else { |
| 341 | set_parameters ( dimx, V, nu ); |
| 342 | } |
| 343 | } |
| 344 | |
| 345 | void egiw::to_setting ( Setting& set ) const { |
| 346 | epdf::to_setting ( set ); |
| 347 | UI::save ( dimx, set, "dimx" ); |
| 348 | UI::save ( V.to_mat(), set, "V" ); |
| 349 | UI::save ( nu, set, "nu" ); |
| 350 | }; |
| 351 | |
| 352 | void egiw::validate() { |
| 353 | eEF::validate(); |
| 354 | dim = dimx * ( dimx + nPsi ); |
| 355 | |
| 356 | // check sizes, rvs etc. |
| 357 | // also check if RV are meaningful!!! |
| 358 | // meaningful = rv for theta and rv for r are split! |
| 359 | } |
| 676 | void eEmp::to_setting ( Setting &set ) const { |
| 677 | epdf::to_setting( set ); |
| 678 | UI::save ( samples, set, "samples" ); |
| 679 | UI::save ( w, set, "w" ); |
| 680 | } |
| 681 | |
| 682 | void eEmp::from_setting ( const Setting &set ) { |
| 683 | epdf::from_setting( set ); |
| 684 | |
| 685 | UI::get( samples, set, "samples", UI::compulsory ); |
| 686 | UI::get ( w, set, "w", UI::compulsory ); |
| 687 | } |
| 688 | |
| 689 | void eEmp::validate (){ |
| 690 | epdf::validate(); |
| 691 | bdm_assert (samples.length()==w.length(),"samples and weigths are of different lengths"); |
| 692 | n = w.length(); |
| 693 | if (n>0) |
| 694 | pdf::dim = samples ( 0 ).length(); |
| 695 | } |
| 696 | |
| 697 | void eDirich::from_setting ( const Setting &set ) { |
| 698 | epdf::from_setting ( set ); |
| 699 | UI::get ( beta, set, "beta", UI::compulsory ); |
| 700 | } |
| 701 | void eDirich::validate() { |
| 702 | //check rv |
| 703 | eEF::validate(); |
| 704 | dim = beta.length(); |
| 705 | } |
| 706 | |
| 707 | void eDirich::to_setting ( Setting &set ) const |
| 708 | { |
| 709 | eEF::to_setting( set ); |
| 710 | UI::save( beta, set, "beta" ); |
| 711 | } |
| 712 | |
| 713 | void euni::from_setting ( const Setting &set ) { |
| 714 | epdf::from_setting ( set ); // reads rv and rvc |
| 715 | |
| 716 | UI::get ( high, set, "high", UI::compulsory ); |
| 717 | UI::get ( low, set, "low", UI::compulsory ); |
| 718 | set_parameters ( low, high ); |
| 719 | |
| 720 | } |
| 721 | |
| 722 | void euni::to_setting (Setting &set) const { |
| 723 | epdf::to_setting ( set ); |
| 724 | UI::save ( high, set, "high" ); |
| 725 | UI::save ( low, set, "low" ); |
| 726 | } |
| 727 | |
| 728 | void euni::validate() { |
| 729 | epdf::validate(); |
| 730 | bdm_assert ( high.length() == low.length(), "Incompatible high and low vectors" ); |
| 731 | dim = high.length(); |
| 732 | bdm_assert ( min ( distance ) > 0.0, "bad support" ); |
| 733 | } |
| 734 | |
| 735 | void mgdirac::from_setting(const Setting& set){ |
| 736 | pdf::from_setting(set); |
| 737 | g=UI::build<fnc>(set,"g",UI::compulsory); |
| 738 | validate(); |
| 739 | } |
| 740 | void mgdirac::to_setting(Setting &set) const{ |
| 741 | pdf::to_setting(set); |
| 742 | UI::save(g.get(), set, "g"); |
| 743 | } |
| 744 | void mgdirac::validate() { |
| 745 | pdf::validate(); |
| 746 | dim = g->dimension(); |
| 747 | dimc = g->dimensionc(); |
| 748 | } |
| 749 | |
| 750 | void mDirich::from_setting ( const Setting &set ) { |
| 751 | pdf::from_setting ( set ); // reads rv and rvc |
| 752 | if ( _rv()._dsize() > 0 ) { |
| 753 | rvc = _rv().copy_t ( -1 ); |
| 754 | } |
| 755 | vec beta0; |
| 756 | if ( !UI::get ( beta0, set, "beta0", UI::optional ) ) { |
| 757 | beta0 = ones ( _rv()._dsize() ); |
| 758 | } |
| 759 | if ( !UI::get ( betac, set, "betac", UI::optional ) ) { |
| 760 | betac = 0.1 * ones ( _rv()._dsize() ); |
| 761 | } |
| 762 | _beta = beta0; |
| 763 | |
| 764 | UI::get ( k, set, "k", UI::compulsory ); |
| 765 | } |
| 766 | |
| 767 | void mDirich::to_setting (Setting &set) const { |
| 768 | pdf::to_setting(set); |
| 769 | UI::save( _beta, set, "beta0"); |
| 770 | UI::save( betac, set, "betac"); |
| 771 | UI::save ( k, set, "k" ); |
| 772 | } |
| 773 | |
| 774 | |
| 775 | void mDirich::validate() { |
| 776 | pdf_internal<eDirich>::validate(); |
| 777 | bdm_assert ( _beta.length() == betac.length(), "beta0 and betac are not compatible" ); |
| 778 | if ( _rv()._dsize() > 0 ) { |
| 779 | bdm_assert ( ( _rv()._dsize() == dimension() ) , "Size of rv does not match with beta" ); |
| 780 | } |
| 781 | dimc = _beta.length(); |
| 782 | } |