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: float_params.m
    path of file: ./repos/chop
    
    the code of the file until where you have to start completion: function [u,xmins,xmin,xmax,p,emins,emin,emax] = float_params(prec)
%FLOAT_PARAMS   Parameters for floating-point arithmetic.
%   [u,xmins,xmin,xmax,p,emin,emax] = FLOAT_PARAMS(prec) returns 
%     u:     the unit roundoff,
%     xmins: the smallest positive (subnormal) floating-point number,
%     xmin:  the smallest positive normalized floating-point number,
%     xmax:  the largest floating-point number,
%     p:     the number of binary digits in the significand (including the
%            implicit leading bit),
%     emins  exponent of xmins,
%     emin:  exponent of xmin,
%     emax:  exponent of xmax.
%   where prec is one of 
%    'q43', 'fp8-e4m3'       - NVIDIA quarter precision (4 exponent bits,
%                              3 significand bits)
%    'q52', 'fp8-e5m2'       - NVIDIA quarter precision (5 exponent bits,
%                              2 significand bits)
%    'b', 'bfloat16'           - bfloat16,
%    'h', 'half', 'fp16'       - IEEE half precision,
%    't', 'tf32'               - NVIDIA tf32,
%    's', 'single', 'fp32'     - IEEE single precision,
%    'd', 'double', 'fp64'     - IEEE double precision (the default),
%    'q', 'quadruple', 'fp128' - IEEE quadruple precision.
%   For all these arithmetics the floating-point numbers have the form
%   s * 2^e * d_0.d_1d_2...d_{t-1} where s = 1 or -1, e is the exponent
%   and each d_i is 0 or 1, with d_0 = 1 for normalized numbers.
%   With no input and output arguments, FLOAT_PARAMS prints a table showing
%   all the parameters for all the precisions.
%   Note: xmax and xmin are not representable in double precision for
%   'quadruple'.

%   Author: Nicholas J. Higham.

% References:
% [1] IEEE Standard for Floating-Point Arithmetic, IEEE Std 754-2019
%     (revision of IEEE Std 754-2008), The Institute of Electrical and
%     Electronics Engineers 2019.
% [2] Intel Corporation, BFLOAT16---hardware numerics definition,  Nov. 2018, 
%     White paper. Document number 338302-001US.
% [3] Shibo Wang and Pankaj Kanwar, BFloat16: The Secret To High Performance 
%     on Cloud TPUs, 2019.
% [4] https://en.wikipedia.org/wiki/Bfloat16_floating-point_format.
% [5] NVIDIA Corporation, NVIDIA A100 Tensor Core GPU Architecture, 2020.
% [6] NVIDIA Corporation, NVIDIA Hopper Architecture In-Depth, 2022.
%     https://developer.nvidia.com/blog/nvidia-hopper-architecture-in-depth/

if nargin < 1 && nargout < 1

    
function [u,xmins,xmin,xmax,p,emins,emin,emax] = float_params(prec)
%FLOAT_PARAMS   Parameters for floating-point arithmetic.
%   [u,xmins,xmin,xmax,p,emin,emax] = FLOAT_PARAMS(prec) returns 
%     u:     the unit roundoff,
%     xmins: the smallest positive (subnormal) floating-point number,
%     xmin:  the smallest positive normalized floating-point number,
%     xmax:  the largest floating-point number,
%     p:     the number of binary digits in the significand (including the
%            implicit leading bit),
%     emins  exponent of xmins,
%     emin:  exponent of xmin,
%     emax:  exponent of xmax.
%   where prec is one of 
%    'q43', 'fp8-e4m3'       - NVIDIA quarter precision (4 exponent bits,
%                              3 significand bits)
%    'q52', 'fp8-e5m2'       - NVIDIA quarter precision (5 exponent bits,
%                              2 significand bits)
%    'b', 'bfloat16'           - bfloat16,
%    'h', 'half', 'fp16'       - IEEE half precision,
%    't', 'tf32'               - NVIDIA tf32,
%    's', 'single', 'fp32'     - IEEE single precision,
%    'd', 'double', 'fp64'     - IEEE double precision (the default),
%    'q', 'quadruple', 'fp128' - IEEE quadruple precision.
%   For all these arithmetics the floating-point numbers have the form
%   s * 2^e * d_0.d_1d_2...d_{t-1} where s = 1 or -1, e is the exponent
%   and each d_i is 0 or 1, with d_0 = 1 for normalized numbers.
%   With no input and output arguments, FLOAT_PARAMS prints a table showing
%   all the parameters for all the precisions.
%   Note: xmax and xmin are not representable in double precision for
%   'quadruple'.

%   Author: Nicholas J. Higham.

% References:
% [1] IEEE Standard for Floating-Point Arithmetic, IEEE Std 754-2019
%     (revision of IEEE Std 754-2008), The Institute of Electrical and
%     Electronics Engineers 2019.
% [2] Intel Corporation, BFLOAT16---hardware numerics definition,  Nov. 2018, 
%     White paper. Document number 338302-001US.
% [3] Shibo Wang and Pankaj Kanwar, BFloat16: The Secret To High Performance 
%     on Cloud TPUs, 2019.
% [4] https://en.wikipedia.org/wiki/Bfloat16_floating-point_format.
% [5] NVIDIA Corporation, NVIDIA A100 Tensor Core GPU Architecture, 2020.
% [6] NVIDIA Corporation, NVIDIA Hopper Architecture In-Depth, 2022.
%     https://developer.nvidia.com/blog/nvidia-hopper-architecture-in-depth/

if nargin < 1 && nargout < 1
   precs = 'bhtsdq';
   fprintf(['          u        xmins      xmin       xmax      p   ' ...
            ' emins     emin    emax\n'])
   fprintf('    ---------------------------------------------------------')
   fprintf('---------------\n')
   for j = -1:length(precs)
      switch j
        case -1, prec = 'q43';
        case 0,  prec = 'q52';
        otherwise,  prec = precs(j);
      end