X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fpercentiles.c;h=2381f771d6457f627db2a3f4f0eebe893789bf30;hb=7b80235141f331530de337cceeab87de873c5cc2;hp=1c8eef2aae518bfce94945fe8f1aa26fe164f042;hpb=46cc6dd316280579f5b03dfd39d01bc7daf88df7;p=pspp diff --git a/src/percentiles.c b/src/percentiles.c index 1c8eef2aae..2381f771d6 100644 --- a/src/percentiles.c +++ b/src/percentiles.c @@ -15,13 +15,18 @@ General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. */ +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301, USA. */ +#include #include "factor_stats.h" #include "percentiles.h" #include "misc.h" +#include "gettext.h" +#define _(msgid) gettext (msgid) +#define N_(msgid) msgid + #include @@ -355,14 +360,22 @@ tukey_hinges(const struct weighted_value **wv, for ( i = 0 ; i < 3 ; i++ ) { - assert(h[i] + 1< n_data); if ( h[i] >= 0 ) a_star = l[i] - wv[h[i]]->cc ; else a_star = l[i]; - a = a_star / ( wv[h[i]+1]->cc ) ; + if ( h[i] + 1 >= n_data ) + { + assert( a_star < 1 ) ; + hinge[i] = (1 - a_star) * wv[h[i]]->v.f; + continue; + } + else + { + a = a_star / ( wv[h[i] + 1]->cc ) ; + } if ( a_star >= 1.0 ) { @@ -370,15 +383,15 @@ tukey_hinges(const struct weighted_value **wv, continue; } - if ( wv[h[i]+1]->w >= 1) + if ( wv[h[i] + 1]->w >= 1) { - hinge[i] = ( 1 - a_star)* wv[h[i]]->v.f - + a_star * wv[h[i]+1]->v.f; + hinge[i] = ( 1 - a_star) * wv[h[i]]->v.f + + a_star * wv[h[i] + 1]->v.f; continue; } - hinge[i] = ( 1 - a)* wv[h[i]]->v.f + a * wv[h[i]+1]->v.f; + hinge[i] = (1 - a) * wv[h[i]]->v.f + a * wv[h[i] + 1]->v.f; }