You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: euler2DCM.m
    path of file: ./repos/GIBBON/lib
    
    the code of the file until where you have to start completion: function [varargout]=euler2DCM(E)

% function [Q,Qi]=euler2DCM(E)
% ----------------------------------------------------------------------
% 
% This function uses the input Euler angle set |a|, a 1x3 vector, to
% compute a rotation tensor |Q|, also known as a direction cosine matrix

    
function [varargout]=euler2DCM(E)

% function [Q,Qi]=euler2DCM(E)
% ----------------------------------------------------------------------
% 
% This function uses the input Euler angle set |a|, a 1x3 vector, to
% compute a rotation tensor |Q|, also known as a direction cosine matrix
% (DCM). 
% See also DCM2euler
%
% Change log: 
% 2011/06/01 Created
% 2019/06/21 Update variable naming and documentation
% 2019/06/21 Use transpose instead of inverse operation
% 2019/06/21 Added assumption angles are real for symbolic input
%  
% ----------------------------------------------------------------------

%% 

switch class(E)
    case 'double'
        symbolicOpt=false(1,1);
        Q=zeros(3,3,size(E,1));
    case 'sym'
        symbolicOpt=true(1,1);
        assume(E,'real'); %Assume angles are real
        assume(E>=0 & E<2*pi); %Assume range 0-2*pi
        Q=sym(zeros(3,3,size(E,1)));
end