Hi Peter,
Thank you for the clarification.
Best,
Haiyong
2017年9月18日 03:32,"Neher, Peter" <[email protected]>写道:
> Dear Haiyong,
>
>
> thank you for your question and sorry for the late reply.
>
>
> The line
> float ex_energy = m_EnergyComputer->ComputeExternalEnergy(prop_p.GetPos
> (),prop_p.GetDir(),p)
> - m_EnergyComputer->ComputeExternalEnergy(p->GetPos(),p->GetDir(),p);
>
>
> is correct. It is not possible to directly pass prop_p to
> ComputeExternalEnergy, because it is a copy of the "old" particle p and
> this copy is not yet added to the particle grid. The line that makes the
> difference is this:
>
> https://phabricator.mitk.org/source/mitk/browse/master/
> Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/
> mitkGibbsEnergyComputer.cpp;ac2ffd02a187f023da289c60ca79a42b084f2413$139
>
> If you would insert prop_p here, this expression will never be "false".
>
>
> I hope this helps. If you have further questions, please send your email
> to the MITK-users mailing list (see Cc.).
>
>
> Best,
>
> Peter
>
>
>
> ------------------------------
> *Von:* [email protected] <[email protected]>
> *Gesendet:* Samstag, 9. September 2017 16:11
> *An:* Neher, Peter
> *Betreff:* Fwd: A little confused on mitkMetropolishHastingsSampler.cpp
>
>
>
> Hi Peter,
>
> I am sorry to disturb you again, the last test stament is modified.
>
> When I studied the codes of mitkMetropolishHastingsSampler.cpp
> <https://github.com/MITK/MITK/blob/master/Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkMetropolisHastingsSampler.cpp>,
> I have a little confused on line 182 and line 247.
>
> float ex_energy = m_EnergyComputer->ComputeExternalEnergy(prop_p.GetPos
> (),prop_p.GetDir(),p)
> - m_EnergyComputer->ComputeExternalEnergy(p->GetPos(),p->GetDir(),p);
>
> Both of the lines are computing the difference of external energy between
> the shifted particle *prop_p* and the original particle *p*. So it seems
> more reasonable as:
>
> float ex_energy = m_EnergyComputer->ComputeExternalEnergy(prop_p.GetPos
> (),prop_p.GetDir(),&prop_p)
> - m_EnergyComputer->ComputeExternalEnergy(p->GetPos(),p->GetDir(),p);
>
> I have tested their distinctive through
>
> float diff = m_EnergyComputer->ComputeExternalEnergy(prop_p.GetPos(),prop
> _p.GetDir(),&prop_p) -
> m_EnergyComputer->ComputeExternalEnergy(prop_p.GetPos(),prop_p.GetDir(),p)
>
> It always output difference.
>
> Any suggestions will be deeply appreciated.
>
>
> Best,
> Haiyong
>
>
>
>
>
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users