<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Hi John, in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Gaussian-Random-Routines/m-p/1075401#M22547</link>
    <description>&lt;P&gt;Hi John,&lt;/P&gt;

&lt;P&gt;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.&amp;nbsp;It prints the&amp;nbsp;message in case any of the generator routines used in the example returns error code&lt;/P&gt;

&lt;P&gt;Andrey&lt;/P&gt;</description>
    <pubDate>Fri, 27 May 2016 06:58:36 GMT</pubDate>
    <dc:creator>Andrey_N_Intel</dc:creator>
    <dc:date>2016-05-27T06:58:36Z</dc:date>
    <item>
      <title>Gaussian Random Routines</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Gaussian-Random-Routines/m-p/1075400#M22546</link>
      <description>&lt;PRE class="brush:fortran;"&gt;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,&amp;nbsp; information&amp;nbsp; and material&amp;nbsp; ("Material") contained&amp;nbsp; herein is
! owned by Intel Corporation or its&amp;nbsp; suppliers or licensors,&amp;nbsp; and&amp;nbsp; title to such
! Material remains with Intel&amp;nbsp; Corporation or its&amp;nbsp; suppliers or&amp;nbsp; licensors.&amp;nbsp; The
! Material&amp;nbsp; contains&amp;nbsp; proprietary&amp;nbsp; information&amp;nbsp; of&amp;nbsp; Intel or&amp;nbsp; its suppliers&amp;nbsp; and
! licensors.&amp;nbsp; The Material is protected by&amp;nbsp; worldwide copyright&amp;nbsp; laws and treaty
! provisions.&amp;nbsp; No part&amp;nbsp; of&amp;nbsp; the&amp;nbsp; Material&amp;nbsp;&amp;nbsp; may&amp;nbsp; be&amp;nbsp; used,&amp;nbsp; copied,&amp;nbsp; reproduced,
! modified, published,&amp;nbsp; uploaded, posted, transmitted,&amp;nbsp; distributed or disclosed
! in any way without Intel's prior express written permission.&amp;nbsp; No license under
! any patent,&amp;nbsp; copyright or other&amp;nbsp; intellectual property rights&amp;nbsp; in the Material
! is granted to&amp;nbsp; or&amp;nbsp; conferred&amp;nbsp; upon&amp;nbsp; you,&amp;nbsp; either&amp;nbsp;&amp;nbsp; expressly,&amp;nbsp; by implication,
! inducement,&amp;nbsp; estoppel&amp;nbsp; or&amp;nbsp; otherwise.&amp;nbsp; Any&amp;nbsp; license&amp;nbsp;&amp;nbsp; under such&amp;nbsp; intellectual
! property rights must be express and approved by Intel in writing.
!
! Unless otherwise agreed by Intel in writing,&amp;nbsp; you may not remove or alter this
! notice or&amp;nbsp; any&amp;nbsp; other&amp;nbsp; notice&amp;nbsp;&amp;nbsp; embedded&amp;nbsp; in&amp;nbsp; Materials&amp;nbsp; by&amp;nbsp; Intel&amp;nbsp; or Intel's
! suppliers or licensors in any way.
!===============================================================================

!&amp;nbsp; Content:
!&amp;nbsp;&amp;nbsp;&amp;nbsp; vdRngGaussianMV&amp;nbsp; Example Program Text
!*******************************************************************************

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; include 'mkl_vsl.f90'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; include "errcheck.inc"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; include "statcheck.inc"

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; program MKL_VSL_TEST

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USE MKL_VSL_TYPE
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USE MKL_VSL

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer(kind=4) i
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer(kind=4) errcode

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer(kind=4) nn
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer ndim,info
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer n

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parameter(n=1000,nn=1000,ndim=3)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer brng,method,seed
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer me

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real(kind=8) c(ndim,ndim),t(ndim,ndim),a(ndim)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real(kind=8) r(ndim,n)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real(kind=8) dbS(ndim),dbS2(ndim),dbMean(ndim),dbVar(ndim)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real(kind=8) dbCovXY,dbCovXZ,dbCovYZ

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real(kind=8) S(ndim),D2(ndim),Q(ndim)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real(kind=8) DeltaM(ndim),DeltaD(ndim)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TYPE (VSL_STREAM_STATE) :: stream

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; brng=VSL_BRNG_MCG31
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; seed=7777777
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; method=VSL_RNG_METHOD_GAUSSIANMV_BOXMULLER2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; me=VSL_MATRIX_STORAGE_FULL

!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Variance-covariance matrix for test
!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (should be symmetric,positive-definite)

!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This is full storage for dpotrf subroutine
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c(1,1)=16.0D0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c(1,2)=8.0D0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c(1,3)=4.0D0

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c(2,1)=8.0D0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c(2,2)=13.0D0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c(2,3)=17.0D0

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c(3,1)=4.0D0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c(3,2)=17.0D0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c(3,3)=62.0D0

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a(1)=3.0D0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a(2)=5.0D0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a(3)=2.0D0

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t&amp;nbsp; = c

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,'Variance-covariance matrix C'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; write (*,'(3F7.3)') c
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,''

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,'Mean vector a:'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; write (*,'(3F7.3)') a
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,''

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,'VSL_MATRIX_STORAGE_FULL'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,'-----------------------'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,''

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call dpotrf('U',ndim,t,ndim,info)

!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Stream initialization
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errcode=vslnewstream(stream,brng,seed)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call CheckVslError(errcode)

!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Generating random numbers
!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from multivariate normal distribution
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errcode=vdrnggaussianmv(method,stream,n,r,ndim,me,a,t)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call CheckVslError(errcode)

!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Printing random numbers
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 11,' Results (first ',nn,' of ',n,')'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,'--------------------------'
11&amp;nbsp;&amp;nbsp;&amp;nbsp; format(A,I5,A,I5,A)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i=1,nn
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 12,' r(',i,')=(',r(:,i),')'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end do
12&amp;nbsp;&amp;nbsp;&amp;nbsp; format(A,I5,A,3F8.3,A)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,''

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call dCalculateGaussianMVSampleCharacteristics(ndim, n, r,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbS, dbS2, dbMean, dbVar, dbCovXY, dbCovXZ, dbCovYZ)

!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Printing
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,'Sample characteristics:'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,'-----------------------'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sample&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Theory'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 13,' Mean :(',dbMean(1),dbMean(2),dbMean(3),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ')&amp;nbsp; (',a(1),a(2),a(3),')'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 13,' Var. :(',dbVar(1),dbVar(2),dbVar(3),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ')&amp;nbsp; (',c(1,1),c(2,2),c(3,3),')'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 14,' CovXY: ',dbCovXY,'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ',c(1,2)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 14,' CovXZ: ',dbCovXZ,'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ',c(1,3)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 14,' CovYZ: ',dbCovYZ,'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ',c(2,3)
13&amp;nbsp;&amp;nbsp;&amp;nbsp; format(A,F5.1,F5.1,F5.1,A,F5.1,F5.1,F5.1,A)
14&amp;nbsp;&amp;nbsp;&amp;nbsp; format(A,F6.1,A,F6.1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,''

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errcode=dGaussianMVCheckResults(ndim, n, a, c, dbMean, dbVar, S,&amp;nbsp; &amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; D2, Q, DeltaM, DeltaD)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (errcode /= 0) then
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,"Error: sample moments"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,"disagree with theory"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 15, "&amp;nbsp;&amp;nbsp;&amp;nbsp; DeltaM: ", DeltaM(1), DeltaM(2), DeltaM(3)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 15, "&amp;nbsp;&amp;nbsp;&amp;nbsp; DeltaD: ", DeltaD(1), DeltaD(2), DeltaD(3)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,&amp;nbsp; "&amp;nbsp;&amp;nbsp; ( at least one of the Deltas &amp;gt; 3.0) "
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stop 1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,"Sample moments"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,"agree with theory"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 15, "&amp;nbsp;&amp;nbsp;&amp;nbsp; DeltaM: ", DeltaM(1), DeltaM(2), DeltaM(3)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 15, "&amp;nbsp;&amp;nbsp;&amp;nbsp; DeltaD: ", DeltaD(1), DeltaD(2), DeltaD(3)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,&amp;nbsp; "&amp;nbsp;&amp;nbsp; ( all Deltas &amp;lt; 3.0) "
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end if
15&amp;nbsp;&amp;nbsp;&amp;nbsp; format(A,F7.3,F7.3,F7.3)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,''

!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Stream finalization
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errcode=vslDeleteStream(stream)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call CheckVslError(errcode)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 26 May 2016 16:37:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Gaussian-Random-Routines/m-p/1075400#M22546</guid>
      <dc:creator>JohnNichols</dc:creator>
      <dc:date>2016-05-26T16:37:26Z</dc:date>
    </item>
    <item>
      <title>Hi John,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Gaussian-Random-Routines/m-p/1075401#M22547</link>
      <description>&lt;P&gt;Hi John,&lt;/P&gt;

&lt;P&gt;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.&amp;nbsp;It prints the&amp;nbsp;message in case any of the generator routines used in the example returns error code&lt;/P&gt;

&lt;P&gt;Andrey&lt;/P&gt;</description>
      <pubDate>Fri, 27 May 2016 06:58:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Gaussian-Random-Routines/m-p/1075401#M22547</guid>
      <dc:creator>Andrey_N_Intel</dc:creator>
      <dc:date>2016-05-27T06:58:36Z</dc:date>
    </item>
  </channel>
</rss>

