function hLib = Ifx_IntLkUpFixBaseMap_CRLEntry(hLib)
% Key: lookup2D
% y1: Result
% u1: Yin 
% u2: Xin
% u3: OffsetX
% u4: ShiftX
% u5: OffsetY
% u6: ShiftY
% u7: Val_array
% u8: Nx
% u9: Ny
    
%% DataType
               % Conceptual datatype       Implementation datatype 
int8datatype =   {'fixdt(1,8,0)',            'int8'};
int16datatype =  {'fixdt(1,16,0)',           'int16'};
uint8datatype =  {'fixdt(0,8,0)',            'uint8'};
uint16datatype = {'fixdt(0,16,0)',           'uint16'};

%% Code Replacement Library Entries
%% Column-major routines (COLUMN_DIR)
%0x0B0
hLib.addEntry( Ifx_addEntry_IntLkUpFixBaseMap('Ifx_IntLkUpFixBaseMap_u8u8_u8', uint8datatype, uint8datatype, uint8datatype, uint8datatype, ...
    uint8datatype, uint8datatype, uint8datatype, uint8datatype, uint8datatype, uint8datatype, false) );
%0x0B1
hLib.addEntry( Ifx_addEntry_IntLkUpFixBaseMap('Ifx_IntLkUpFixBaseMap_u16u16_u16', uint16datatype, uint16datatype, uint16datatype, uint16datatype, ...
    uint16datatype, uint16datatype, uint16datatype, uint16datatype, uint16datatype, uint16datatype, false) );
%0x0B2
hLib.addEntry( Ifx_addEntry_IntLkUpFixBaseMap('Ifx_IntLkUpFixBaseMap_s8s8_s8', int8datatype, int8datatype, int8datatype, int8datatype, ...
    uint8datatype, int8datatype, uint8datatype, int8datatype, int8datatype, int8datatype, false) );
% Required to support AUTOSAR for LUTObject with Even spacing specification holding a bpS with int8 type
hLib.addEntry( Ifx_addEntry_IntLkUpFixBaseMap('Ifx_IntLkUpFixBaseMap_s8s8_s8', int8datatype, int8datatype, int8datatype, int8datatype, ...
    int8datatype, int8datatype, int8datatype, int8datatype, int8datatype, int8datatype, false) );
%0x0B3
hLib.addEntry( Ifx_addEntry_IntLkUpFixBaseMap('Ifx_IntLkUpFixBaseMap_s16s16_s16', int16datatype, int16datatype, int16datatype, int16datatype, ...
    uint16datatype, int16datatype, uint16datatype, int16datatype, int16datatype, int16datatype, false) ); 
% Required to support AUTOSAR for LUTObject with Even spacing specification holding a bpS with int16 type
hLib.addEntry( Ifx_addEntry_IntLkUpFixBaseMap('Ifx_IntLkUpFixBaseMap_s16s16_s16', int16datatype, int16datatype, int16datatype, int16datatype, ...
    int16datatype, int16datatype, int16datatype, int16datatype, int16datatype, int16datatype, false) ); 

%% Row-major routines (ROW_DIR)
%0x0B0
hLib.addEntry( Ifx_addEntry_IntLkUpFixBaseMap('Ifx_IntLkUpFixBaseMap_u8u8_u8', uint8datatype, uint8datatype, uint8datatype, uint8datatype, ...
    uint8datatype, uint8datatype, uint8datatype, uint8datatype, uint8datatype, uint8datatype, true) );
%0x0B1
hLib.addEntry( Ifx_addEntry_IntLkUpFixBaseMap('Ifx_IntLkUpFixBaseMap_u16u16_u16', uint16datatype, uint16datatype, uint16datatype, uint16datatype, ...
    uint16datatype, uint16datatype, uint16datatype, uint16datatype, uint16datatype, uint16datatype, true) );
%0x0B2
hLib.addEntry( Ifx_addEntry_IntLkUpFixBaseMap('Ifx_IntLkUpFixBaseMap_s8s8_s8', int8datatype, int8datatype, int8datatype, int8datatype, ...
    uint8datatype, int8datatype, uint8datatype, int8datatype, int8datatype, int8datatype, true) );
% Required to support AUTOSAR for LUTObject with Even spacing specification holding a bpS with int8 type
hLib.addEntry( Ifx_addEntry_IntLkUpFixBaseMap('Ifx_IntLkUpFixBaseMap_s8s8_s8', int8datatype, int8datatype, int8datatype, int8datatype, ...
    int8datatype, int8datatype, int8datatype, int8datatype, int8datatype, int8datatype, true) );
%0x0B3
hLib.addEntry( Ifx_addEntry_IntLkUpFixBaseMap('Ifx_IntLkUpFixBaseMap_s16s16_s16', int16datatype, int16datatype, int16datatype, int16datatype, ...
    uint16datatype, int16datatype, uint16datatype, int16datatype, int16datatype, int16datatype, true) ); 
% Required to support AUTOSAR for LUTObject with Even spacing specification holding a bpS with int16 type
hLib.addEntry( Ifx_addEntry_IntLkUpFixBaseMap('Ifx_IntLkUpFixBaseMap_s16s16_s16', int16datatype, int16datatype, int16datatype, int16datatype, ...
    int16datatype, int16datatype, int16datatype, int16datatype, int16datatype, int16datatype, true) ); 
end
    
function hEnt = Ifx_addEntry_IntLkUpFixBaseMap(signature, datatype_y1, datatype_u1, datatype_u2, datatype_bp01, ...
    datatype_bpS1, datatype_bp02, datatype_bpS2, datatype_T, datatype_AutosarN, datatype_AutosarbpS, createRowMajorRoutine)

hEnt = coder.Ifx_IntFixMapCustomEntry;

%% Set Function Entry Parameters
hEnt.setTflCFunctionEntryParameters( ...
    'Key', 'lookup2D', ...
    'Priority', 100, ...
    'SupportSymbolicDimensions', true, ...
    'ImplementationName', signature, ...
    'ImplementationHeaderFile', 'Ifx.h');

%% Add Algorithm Properties
                   % Parameter                             Value
algPropertyList = {{'InterpMethod',                      'Flat'},...
                   {'ExtrapMethod',                      'Clip'},...
                   {'IndexSearchMethod',                 'Evenly spaced points'},...
                   {'UseLastTableValue'                  'on'},...
                   {'BPPower2Spacing',                   'on'},...
                   {'RemoveProtectionInput'              'off'},...
                   {'RndMeth',                           {'Round', 'Zero'}}};
               
%% Set ArrayLayout and UseRowMajorAlgorithm
[hEnt, algPropertyList] = Ifx_setMapRowMajorAttributes(hEnt, algPropertyList, createRowMajorRoutine);          

hEnt = addAlgorithmParameters(hEnt, algPropertyList);

%% Add Conceptual and implementation Arguments
% Conceptual Arguments
hEnt = Ifx_addIntFixMapConceptualArguments(hEnt, datatype_y1, datatype_u1, datatype_u2, datatype_bp01, ...
    datatype_bpS1, datatype_bp02, datatype_bpS2, datatype_T);

% Implementation Arguments
hEnt = Ifx_addIntFixFixIMapImplementationArguments(hEnt, datatype_y1, datatype_u1, datatype_u2, datatype_bp01, ...
    datatype_bp02, datatype_T, datatype_AutosarN, datatype_AutosarbpS, createRowMajorRoutine);

%% Map and cache argument locations for use in do_match tasks
hEnt.mapAndCacheLabeledArgLocations();

end

