function opi = getPrecisionExtractionInterface()
    %% GETPRECISIONEXTRACTIONINTERFACE function
    % This function returns a precision extraction interface charged with
    % appropriate strategies for fixed-point optimization workflow
    
    % Copyright 2018 The MathWorks, Inc.
    
    % the chain starts with observed precision instrumentation strategy
    precisionDataExtractionStrategy = fxptds.RangeAggregation.InstrumentationStrategy();
    % continues with value strategy
    valueStrategy = fxptds.RangeAggregation.ValueStrategy();
    % ends with null strategy
    nullStrategy = fxptds.RangeAggregation.NullStrategy();
    % chaining up the strategies
    valueStrategy.setNextStrategy(nullStrategy);
    precisionDataExtractionStrategy.setNextStrategy(valueStrategy);
    
    % set up the interface
    opi = fxptds.RangeAggregation.ObservedPrecisionExtractionInterface();
    opi.setStrategy(precisionDataExtractionStrategy);
end