def eval_sections_independent( values, nsec=10 ):
            et = ml_tools.eval_tools()
            a,p,v = values
            s = np.sqrt(v)

            inds = np.argsort( s )
            chunks = chunk_it( inds, nsec )

            fraction = []
            err = []
            means = []

            for i,c in enumerate( chunks ):
                ca = a[ c ]
                cp = p[ c ]
                cs = s[ c ]

                fraction.append( float(i+1)/nsec )
                means.append( np.mean(cs) )
                err.append( np.sqrt( et.mean_square_error(ca,cp) ) )

            return np.array( fraction ), np.array( means ), np.array( err )
        def eval_sections_overall( values, nsec=10 ):
            et = ml_tools.eval_tools()
            a,p,v = values
            s = np.sqrt(v)

            inds = np.argsort( s )
            chunks = chunk_it( inds, nsec )

            fraction = []
            err = []
            means = []

            for i in range( len(chunks) ):
                sub_chunks = chunks[:i+1]
                selection = np.concatenate( sub_chunks )

                sa = a[ selection ]
                sp = p[ selection ]
                ss = s[ selection ]

                fraction.append( float(i+1)/nsec )
                means.append( np.mean(ss) )
                err.append( np.sqrt( et.mean_square_error(sa,sp) ) )
            return np.array( fraction ), np.array( means ), np.array( err )