X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Feconometrics-1.0.8%2Fsum_moments_nodes.m;fp=octave_packages%2Feconometrics-1.0.8%2Fsum_moments_nodes.m;h=7248f830401de5e206c968694f0fe6d5175b8cf9;hp=0000000000000000000000000000000000000000;hb=c880e8788dfc484bf23ce13fa2787f2c6bca4863;hpb=1705066eceaaea976f010f669ce8e972f3734b05 diff --git a/octave_packages/econometrics-1.0.8/sum_moments_nodes.m b/octave_packages/econometrics-1.0.8/sum_moments_nodes.m new file mode 100644 index 0000000..7248f83 --- /dev/null +++ b/octave_packages/econometrics-1.0.8/sum_moments_nodes.m @@ -0,0 +1,37 @@ +# Copyright (C) 2005 Michael Creel +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; If not, see . + +# for internal use by gmm_estimate + +function contrib = sum_moments_nodes(theta, data, moments, momentargs, nn) + + global NEWORLD NSLAVES + + # Who am I? + [info, rank] = MPI_Comm_rank(NEWORLD); + + if rank == 0 # Do this if I'm master + startblock = NSLAVES*nn + 1; + endblock = rows(data); + else # this is for the slaves + startblock = rank*nn-nn+1; + endblock = rank*nn; + endif + + data = data(startblock:endblock,:); + contrib = feval(moments, theta, data, momentargs); + contrib = sum(contrib); + +endfunction