classdef RealPartialSystolicQlessQRwithForgettingFactor < hdlimplbase.HDLRecurseIntoSubsystem
%emblibhdl.RealPartialSystolicQlessQRwithForgettingFactor class
%   emblibhdl.RealPartialSystolicQlessQRwithForgettingFactor extends hdlimplbase.HDLRecurseIntoSubsystem.
%

%    emblibhdl.RealPartialSystolicQlessQRwithForgettingFactor properties:
%       CodeGenFunction - Property is of type 'mxArray'  
%       FirstParam - Property is of type 'HDLEmissionHandleType enumeration: {'useslhandle','usecomphandle','useobjandcomphandles'}'  
%       CodeGenParams - Property is of type 'mxArray'  
%       validateFunction - Property is of type 'mxArray'  
%       validateParams - Property is of type 'mxArray'  
%       Blocks - Property is of type 'string vector'  
%       Description - Property is of type 'mxArray'  
%       CodeGenMode - Property is of type 'HDLCodeGenMode enumeration: {'emission','instantiation'}'  
%       generateSLBlockFunction - Property is of type 'mxArray'  
%       implParamInfo - Property is of type 'mxArray'  
%       implParams - Property is of type 'mxArray'  
%       blkParams - Property is of type 'mxArray'  
%       publishImpl - Property is of type 'mxArray'  
%       ArchitectureNames - Property is of type 'string vector'  
%       DeprecatedArchName - Property is of type 'string vector'  
%       Deprecates - Property is of type 'string vector'  
%       Hidden - Property is of type 'mxArray'  
%       SuppressValidation - Property is of type 'bool'  
%
%    emblibhdl.RealPartialSystolicQlessQRwithForgettingFactor methods:



    methods  % constructor block
        function this = RealPartialSystolicQlessQRwithForgettingFactor(block)
            %Constructor
        
            %   Copyright 2020 The MathWorks, Inc.
        
                
            blockName = 'Real Partial-Systolic Q-less QR with Forgetting Factor';
        
            supportedBlocks = {...
                ['embeddedpartialsystolicqr/',blockName],...
                };
        
            if nargin == 0
                block = '';
            end
        
            desc = struct('ShortListing', ...
                ['Generate HDL Code for the ',blockName,' block'], ...
                'HelpText',  ['HDL will be emitted for the ',blockName,' block']);
        
            this.init('SupportedBlocks', supportedBlocks,...
                'Description', desc,...
                'Block',  block,...
                'ArchitectureNames', 'default' );
        
        end
        % LocalWords:  embeddedpartialsystolicqr
    end  % constructor block

    methods (Hidden) % possibly private or hidden
        %----------------------------------------
       function v_settings = block_validate_settings(~, ~)
           %block_validate_settings
       
           %   Copyright 2020 The MathWorks, Inc.
       
           % Empty struct, can also call this.base_validate_settings to get a list of
           % all the default settings.
           v_settings = struct;
       
           % Settings we need to check for.
           v_settings.checkblock = true;
           v_settings.checknfp   = true;
       end
        %----------------------------------------
       function v = validateBlock(~, hC)
           %validateBlock
       
           % Copyright 2020 The MathWorks, Inc.
       
           % Base struct.
           v = hdlvalidatestruct;
       
           % Find out if the block uses floating-point inputs anywhere.
           hasFloatingPoint = fixed.emblib.checkForFloatInputsOutputs(hC);
       
           % If Native Floating Point is on and ports are single/double, error out.
           nfpMode = targetcodegen.targetCodeGenerationUtils.isNFPMode;
           if nfpMode && hasFloatingPoint
               v(1) = hdlvalidatestruct(1,...
                   message('fixed:emblib:NfpNotSupported', hC.Name));
           end
       
       end
       % LocalWords:  Nfp
       
end  % possibly private or hidden 

end  % classdef

