X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=inline;f=src%2Fpercentiles.c;h=8782c36a9b7e77f3fa5c3a60b9f17b0e543dbbba;hb=05a2c3f6e9560a57e87206ac3358946bf6d43b42;hp=1c8eef2aae518bfce94945fe8f1aa26fe164f042;hpb=46cc6dd316280579f5b03dfd39d01bc7daf88df7;p=pspp-builds.git diff --git a/src/percentiles.c b/src/percentiles.c index 1c8eef2a..8782c36a 100644 --- a/src/percentiles.c +++ b/src/percentiles.c @@ -15,8 +15,8 @@ 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 "factor_stats.h" #include "percentiles.h" @@ -355,14 +355,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 +378,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; }