From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7901 invoked by alias); 27 May 2011 09:17:36 -0000 Received: (qmail 12968 invoked by uid 22791); 27 May 2011 08:36:23 -0000 X-SWARE-Spam-Status: No, hits=0.8 required=5.0 tests=BAYES_50,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Message-ID: <15310053.311306485364274.OPEN-XCHANGE.WebMail.tomcat@inupc4.inue.uni-stuttgart.de> Date: Fri, 27 May 2011 09:17:00 -0000 From: sherry mikheal To: gsl-discuss@sourceware.org Subject: - no subject - MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Mailing-List: contact gsl-discuss-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gsl-discuss-owner@sourceware.org X-SW-Source: 2011-q2/txt/msg00015.txt.bz2 I am a student who is trying to use the histogram methods that were published , but my problem is that i have tried to get the logarithmic values of these histograms using these 2 methods : first method for normalization :=20 =C2=A0Make continuous double probability density functions by appropriate normalization =C2=A0*/ template gsl_histogram** CHistogram::getContinuousDoubleProbabilityDensities() { =C2=A0=C2=A0=C2=A0int i; =C2=A0=C2=A0=C2=A0if ( this->doubleHistograms !=3D NULL ) { =C2=A0=C2=A0=C2=A0// Clone histograms and normalize =C2=A0=C2=A0=C2=A0if ( this->continuousDoubleProbabilityDensities =3D=3D NU= LL ) { =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0this->continuousDoubleProbabilityDensit= ies =3D new gsl_histogram*[ this->numberOfHistograms ]; =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0for ( i =3D 0; i < this->numberOfHistog= rams; i++ ) { =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0this->continuousDoubleProbabilityDensit= ies[ i ] =3D gsl_histogram_clone( this->doubleHistograms[ i ] ); =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0gsl_histogram_scale( this->continuousDo= ubleProbabilityDensities[ i ], =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A01.0 / ( gsl_histogram_sum( this->continuousDoubleProbabilityDensities[ i ] ) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0* this->binWidth ) ); =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0} =C2=A0=C2=A0=C2=A0} =C2=A0=C2=A0=C2=A0return this->continuousDoubleProbabilityDensities; =C2=A0=C2=A0=C2=A0} =C2=A0=C2=A0=C2=A0else { =C2=A0=C2=A0=C2=A0this->printError( "getContinuousDoubleProbablilityDensiti= es()," =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0"No continuous = double probability densities available!" ); =C2=A0=C2=A0=C2=A0return NULL; =C2=A0=C2=A0=C2=A0} } second method to get log :=20 /* =C2=A0* Get logarithmized continuous double probability density functions =C2=A0*/ template gsl_histogram** CHistogram::getLogContinuousDoubleProbabilityDensities() { =C2=A0=C2=A0=C2=A0int i, j; =C2=A0=C2=A0=C2=A0if ( this->doubleHistograms !=3D NULL ) { =C2=A0=C2=A0=C2=A0// Make continuous double probability density functions =C2=A0=C2=A0=C2=A0if ( this->continuousDoubleProbabilityDensities =3D=3D NU= LL ) { =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0getContinuousDoubleProbabilityDensities= (); =C2=A0=C2=A0=C2=A0} =C2=A0=C2=A0=C2=A0// Create histograms and logarithmize content =C2=A0=C2=A0=C2=A0if ( this->logContinuousDoubleProbabilityDensities =3D=3D= NULL ) { =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0this->logContinuousDoubleProbabilityDen= sities =3D new gsl_histogram*[ this->numberOfHistograms ]; =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0for ( i =3D 0; i < this->numberOfHistog= rams; i++ ) { =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0this->logContinuousDoubleProbabilityDen= sities[ i ] =3D gsl_histogram_alloc( this->numberOfBins ); =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0gsl_histogram_set_ranges_uniform( this->logContinuousDoubleProbabilityDensities[ i ], =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0this->minValue, =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0this->maxValue ); =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0for ( j =3D 0; j < this->numberOfBins; = j++ ) { =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0gsl_histogram_accumul= ate( this->logContinuousDoubleProbabilityDensities[ i ], =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0this->minValue + ( j + 0.5 ) *= this->binWidth, =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0log10( gsl_histogram_get( this->continuousDoubleProbabilityDensities[ i ], =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0j ) ) ); =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0//std::cout << "result new=C2=A0=C2=A0 " <logContinuousDoubleProbabilityDensities; =C2=A0=C2=A0=C2=A0} =C2=A0=C2=A0=C2=A0else { =C2=A0=C2=A0=C2=A0this->printError( "getLogContinuousDoubleProbabilityDensi= ties()", =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0"No logarithmiz= ed continuous double probability densities available!" ); =C2=A0=C2=A0=C2=A0return NULL; =C2=A0=C2=A0=C2=A0} } /* =C2=A0* Get logarithmized continuous complex probability density functions =C2=A0*/ template gsl_histogram2d** CHistogram::getLogContinuousComplexProbabilityDensities() { =C2=A0=C2=A0=C2=A0int i, j, k; =C2=A0=C2=A0=C2=A0if ( this->complexHistograms !=3D NULL ) { =C2=A0=C2=A0=C2=A0// Make discrete complex probability density functions =C2=A0=C2=A0=C2=A0if ( this->discreteComplexProbabilityDensities =3D=3D NUL= L ) { =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0getDiscreteComplexProbabilityDensities(= ); =C2=A0=C2=A0=C2=A0} =C2=A0=C2=A0=C2=A0// Create histograms and logarithmize content =C2=A0=C2=A0=C2=A0if ( this->logDiscreteComplexProbabilityDensities =3D=3D = NULL ) { =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0this->logDiscreteComplexProbabilityDens= ities =3D new gsl_histogram2d*[ this->numberOfHistograms ]; =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0for ( i =3D 0; i < this->numberOfHistog= rams; i++ ) { =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0this->logDiscreteComplexProbabilityDens= ities[ i ] =3D gsl_histogram2d_alloc( this->numberOfBins, =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0this->numberOfB= ins ); =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0gsl_histogram2d_set_ranges_uniform( this->logDiscreteComplexProbabilityDensities[ i ], =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0this->minValue, =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0this->maxValue, =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0this->minValue, =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0this->maxValue ); =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0for ( j =3D 0; j < this->numberOfBins; = j++ ) { =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0for ( k =3D 0; k < th= is->numberOfHistograms; k++ ) { =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0gsl_histogram2d_accum= ulate( this->logDiscreteComplexProbabilityDensities[ i ], =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0this->minValue + ( j + 0= .5 ) * this->binWidth, =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0this->minValue + ( k + 0= .5 ) * this->binWidth, =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0log10( gsl_histogram2d_g= et( this->discreteComplexProbabilityDensities[ i ], =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0j, =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0k ) ) ); =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0} =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0} =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0} =C2=A0=C2=A0=C2=A0} =C2=A0=C2=A0=C2=A0return this->logDiscreteComplexProbabilityDensities; =C2=A0=C2=A0=C2=A0} =C2=A0=C2=A0=C2=A0else { =C2=A0=C2=A0=C2=A0this->printError( "getLogDiscreteComplexProbabilityDensit= ies()", =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0"No logarithmiz= ed discrete complex probability densities available!" ); =C2=A0=C2=A0=C2=A0return NULL; =C2=A0=C2=A0=C2=A0} } but then he results of the histogram are either negative infinty (which=20 is ok ) or positive values which is not ok as my probabilities should=20 range between negative infinity and zero after getting log ....so any=20 idea about this ,please help=20 Best Regards ,=20 Sherry=20