Reference

Contents

Index

BenchmarkProfiles.data_profileMethod
data_profile(b, H, N, labels; τ=1.0e-3, operations="function evaluations", title=""; kwargs...)

Produce a data profile using the specified backend.

Arguments

  • b :: AbstractBackend: the backend used to produce the plot.
  • H :: Array{Float64,3}: the performance data for each solver and each problem (smaller is better). H[k,p,s] is the k-th costly operation (e.g., function evaluation) for problem p and solver s. Failures on a given problem are represented by a negative value, an infinite value, or NaN.
  • N :: Vector{Float64}: scaling associated to each problem. If the number of simplex gradients is being measured, N[p] should be n(p) + 1 where n(p) is the number of variables of problem p.
  • labels :: Vector{AbstractString}: a vector of labels for each profile used to produce a legend. If empty, labels will be set to ["column 1", "column 2", ...].

Keyword Arguments

  • τ :: Float64=1.0e-3: threshold that determines the tolerance in the convergence criterion

    f(x) ≤ fL + τ (f0 - fL),

    where for each problem f(x) is a measure recorded (e.g., the objective value), f0 is the measure at the initial point, and fL is the best measure obtained by any solver.

  • operations :: AbstractString="function evaluations": used for labeling the horizontal axis.

  • title :: AbstractString="": set a title for the plot.

Other keyword arguments are passed to the plot command for the corresponding backend.

source
BenchmarkProfiles.data_ratiosMethod

Compute data ratios used to produce a data profile.

There is normally no need to call this function directly. See the documentation of data_profile() for more information.

source
BenchmarkProfiles.export_performance_profileMethod

exportperformanceprofile(T, filename; solver_names = [], header, kwargs...)

Export a performance profile plot data as .csv file. Profiles data are padded with NaN to ensure .csv consistency.

Arguments

  • T :: Matrix{Float64}: each column of T defines the performance data for a solver (smaller is better). Failures on a given problem are represented by a negative value, an infinite value, or NaN.
  • filename :: String : path to the exported file.

Keyword Arguments

  • solver_names :: Vector{S} : names of the solvers.
  • header::Vector{String}: Contains .csv file column names. Note that header value does not change columns order in .csv exported files (see Output).

Other keyword arguments are passed to performance_profile_data.

Output: File containing profile data in .csv format. Columns are solver1x, solver1y, solver2_x, ...

source
BenchmarkProfiles.performance_profileMethod
performance_profile(b, T, labels; logscale=true, title="", sampletol=0.0, drawtol=0.0; kwargs...)

Produce a performance profile using the specified backend.

Arguments

  • b :: AbstractBackend: the backend used to produce the plot.
  • T :: Matrix{Float64}: each column of T defines the performance data for a solver (smaller is better). Failures on a given problem are represented by a negative value, an infinite value, or NaN.
  • labels :: Vector{AbstractString}: a vector of labels for each profile used to produce a legend. If empty, labels will be set to ["column 1", "column 2", ...].

Keyword Arguments

  • logscale :: Bool=true: produce a logarithmic (base 2) performance plot.
  • title :: AbstractString="": set a title for the plot.
  • sampletol :: Float64 = 0.0: a tolerance used to downsample profiles for performance when using a large number of problems.
  • drawtol :: Float64 = 0.0: a tolerance to declare a draw between two performance measures.
  • linestyles::Vector{Symbol}: a vector of line styles to use for the profiles, if supported by the backend.

Other keyword arguments are passed to the plot command for the corresponding backend.

source
BenchmarkProfiles.performance_ratiosMethod

Compute performance ratios used to produce a performance profile.

There is normally no need to call this function directly. See the documentation of performance_profile() for more information.

source
BenchmarkProfiles.powertickMethod

Replace each number by 2^{number} in a string. Useful to transform axis ticks when plotting in log-base 2.

Examples:

powertick("15") == "2¹⁵"
powertick("2.1") == "2²⋅¹"
powertick("$0$") == "$2^0$"
source
BenchmarkProfiles.powertickMethod

Replace each number by 2^{number} in LaTeXStrings. Useful to transform axis ticks when plotting in log-base 2.

Examples:

powertick(L"$15$") == L"$2^{15}$"
powertick(L"$2.1$") == L"$2^{2.1}$"
source