function D = randn( varargin )
%DISTRIBUTED.RANDN distributed array of normally distributed pseudorandom numbers
%   D = DISTRIBUTED.RANDN(N) is an N-by-N distributed matrix of normally
%   distributed pseudorandom numbers.
%   
%   D = DISTRIBUTED.RANDN(M,N) is an M-by-N distributed matrix
%   of normally distributed pseudorandom numbers.
%   
%   D = DISTRIBUTED.RANDN(M,N,P, ...) or DISTRIBUTED.RANDN([M,N,P, ...])
%   is an M-by-N-by-P-by-... distributed array of normally distributed
%   pseudorandom numbers.
%   
%   D = DISTRIBUTED.RANDN(M,N,P,..., CLASSNAME) or 
%   DISTRIBUTED.RANDN([M,N,P,...], CLASSNAME) is an M-by-N-by-P-by-... 
%   distributed array of normally distributed pseudorandom numbers of class 
%   specified by CLASSNAME.
%   
%   D = RANDN(...,'like',P) for a distributed argument P returns a 
%   distributed array of normally distributed pseudorandom numbers with the 
%   same underlying class as P.
%   
%   Examples:
%       N  = 1000;
%       D1 = distributed.randn(N) % 1000-by-1000 distributed array of randn
%       D2 = distributed.randn(N, N*2) % 1000-by-2000
%       D3 = distributed.randn([N, N*2], 'single') % underlying class 'single'
%       D4 = randn([N, N*2], 'like', D3); % underlying class 'single'
%   
%   See also RANDN, DISTRIBUTED, DISTRIBUTED/ZEROS, DISTRIBUTED/ONES.


%   Copyright 2008-2020 The MathWorks, Inc.

% static method of distributed

D = distributed.sBuild( @codistributed.randn, 'randn', varargin{:} );
end
