- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Some of the routines called in this sample are not in the documentation that I can find, CHECKVSLERROR as an example. Any ideas where I find details. John =============================================================================== ! Copyright 2003-2016 Intel Corporation All Rights Reserved. ! ! The source code, information and material ("Material") contained herein is ! owned by Intel Corporation or its suppliers or licensors, and title to such ! Material remains with Intel Corporation or its suppliers or licensors. The ! Material contains proprietary information of Intel or its suppliers and ! licensors. The Material is protected by worldwide copyright laws and treaty ! provisions. No part of the Material may be used, copied, reproduced, ! modified, published, uploaded, posted, transmitted, distributed or disclosed ! in any way without Intel's prior express written permission. No license under ! any patent, copyright or other intellectual property rights in the Material ! is granted to or conferred upon you, either expressly, by implication, ! inducement, estoppel or otherwise. Any license under such intellectual ! property rights must be express and approved by Intel in writing. ! ! Unless otherwise agreed by Intel in writing, you may not remove or alter this ! notice or any other notice embedded in Materials by Intel or Intel's ! suppliers or licensors in any way. !=============================================================================== ! Content: ! vdRngGaussianMV Example Program Text !******************************************************************************* include 'mkl_vsl.f90' include "errcheck.inc" include "statcheck.inc" program MKL_VSL_TEST USE MKL_VSL_TYPE USE MKL_VSL integer(kind=4) i integer(kind=4) errcode integer(kind=4) nn integer ndim,info integer n parameter(n=1000,nn=1000,ndim=3) integer brng,method,seed integer me real(kind=8) c(ndim,ndim),t(ndim,ndim),a(ndim) real(kind=8) r(ndim,n) real(kind=8) dbS(ndim),dbS2(ndim),dbMean(ndim),dbVar(ndim) real(kind=8) dbCovXY,dbCovXZ,dbCovYZ real(kind=8) S(ndim),D2(ndim),Q(ndim) real(kind=8) DeltaM(ndim),DeltaD(ndim) TYPE (VSL_STREAM_STATE) :: stream brng=VSL_BRNG_MCG31 seed=7777777 method=VSL_RNG_METHOD_GAUSSIANMV_BOXMULLER2 me=VSL_MATRIX_STORAGE_FULL ! Variance-covariance matrix for test ! (should be symmetric,positive-definite) ! This is full storage for dpotrf subroutine c(1,1)=16.0D0 c(1,2)=8.0D0 c(1,3)=4.0D0 c(2,1)=8.0D0 c(2,2)=13.0D0 c(2,3)=17.0D0 c(3,1)=4.0D0 c(3,2)=17.0D0 c(3,3)=62.0D0 a(1)=3.0D0 a(2)=5.0D0 a(3)=2.0D0 t = c print *,'Variance-covariance matrix C' write (*,'(3F7.3)') c print *,'' print *,'Mean vector a:' write (*,'(3F7.3)') a print *,'' print *,'VSL_MATRIX_STORAGE_FULL' print *,'-----------------------' print *,'' call dpotrf('U',ndim,t,ndim,info) ! Stream initialization errcode=vslnewstream(stream,brng,seed) call CheckVslError(errcode) ! Generating random numbers ! from multivariate normal distribution errcode=vdrnggaussianmv(method,stream,n,r,ndim,me,a,t) call CheckVslError(errcode) ! Printing random numbers print 11,' Results (first ',nn,' of ',n,')' print *,'--------------------------' 11 format(A,I5,A,I5,A) do i=1,nn print 12,' r(',i,')=(',r(:,i),')' end do 12 format(A,I5,A,3F8.3,A) print *,'' call dCalculateGaussianMVSampleCharacteristics(ndim, n, r, & & dbS, dbS2, dbMean, dbVar, dbCovXY, dbCovXZ, dbCovYZ) ! Printing print *,'Sample characteristics:' print *,'-----------------------' print *,' Sample Theory' print 13,' Mean :(',dbMean(1),dbMean(2),dbMean(3), & & ') (',a(1),a(2),a(3),')' print 13,' Var. :(',dbVar(1),dbVar(2),dbVar(3), & & ') (',c(1,1),c(2,2),c(3,3),')' print 14,' CovXY: ',dbCovXY,' ',c(1,2) print 14,' CovXZ: ',dbCovXZ,' ',c(1,3) print 14,' CovYZ: ',dbCovYZ,' ',c(2,3) 13 format(A,F5.1,F5.1,F5.1,A,F5.1,F5.1,F5.1,A) 14 format(A,F6.1,A,F6.1) print *,'' errcode=dGaussianMVCheckResults(ndim, n, a, c, dbMean, dbVar, S, & & D2, Q, DeltaM, DeltaD) if (errcode /= 0) then print *,"Error: sample moments" print *,"disagree with theory" print 15, " DeltaM: ", DeltaM(1), DeltaM(2), DeltaM(3) print 15, " DeltaD: ", DeltaD(1), DeltaD(2), DeltaD(3) print *, " ( at least one of the Deltas > 3.0) " stop 1 else print *,"Sample moments" print *,"agree with theory" print 15, " DeltaM: ", DeltaM(1), DeltaM(2), DeltaM(3) print 15, " DeltaD: ", DeltaD(1), DeltaD(2), DeltaD(3) print *, " ( all Deltas < 3.0) " end if 15 format(A,F7.3,F7.3,F7.3) print *,'' ! Stream finalization errcode=vslDeleteStream(stream) call CheckVslError(errcode) end
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi John,
the routine you mention is not part of Intel MKL RNG API but a service routine defined in the errcheck.inc available in the directory with examples. It prints the message in case any of the generator routines used in the example returns error code
Andrey
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page