text:
# -*- coding: utf-8 -*-
# ---
# jupyter:
#   jupytext:
#     formats: ipynb,jl:hydrogen,md
#     text_representation:
#       extension: .jl
#       format_name: hydrogen
#       format_version: '1.3'
#       jupytext_version: 1.11.2
#   kernelspec:
#     display_name: Julia 1.7.0-beta3
#     language: julia
#     name: julia-1.7
# ---

# %% [markdown]
# # Problem-Algorithm-Solver pattern
#
# * Gen Kuroki
# * 2021-07-11
#
# https://discourse.julialang.org/t/function-depending-on-the-global-variable-inside-module/64322/10
#
# A code will be more readable and efficient if the global variables that store the parameters of a problem are passed as arguments to functions _everytime_.
#
# However, many people find it troublesome to pass the parameters as arguments to the function _everytime_.
#
# In order to resolve this misunderstanding, they can try the problem-algorithm-solver pattern explained below.
#
# In order to use the `(; a, b, c) = p` syntax, require VERSION ≥ v"1.7.0-beta" [#39285](https://github.com/JuliaLang/julia/pull/39285).

# %%
VERSION ≥ v"1.7.0-beta"

# %% [markdown]
# ## A minimal working example of the problem-algorithm-solver pattern

# %%
using Plots

# %%
# minimal working example of the problem-algorithm-solver pattern

module FreeFall

"""Problem type"""
Base.@kwdef struct Problem{G, Y0, V0, TS}
    g::G = 9.80665
    y0::Y0 = 0.0
    v0::V0 = 30.0
    tspan::TS = (0.0, 8.0)
end

"""Algorithm types"""
Base.@kwdef struct EulerMethod{T}  dt::T = 0.1 end
Base.@kwdef struct ExactFormula{T} dt::T = 0.1 end
default_algorithm(::Problem) = EulerMethod()

"""Solution type"""
struct Solution{Y, V, T, P<:Problem, A} y::Y; v::V; t::T; prob::P; alg::A end

"""Solver function"""
solve(prob::Problem) = solve(prob, default_algorithm(prob))

function solve(prob::Problem, alg::ExactFormula)
    (; g, y0, v0, tspan) = prob
    (; dt) = alg
    t0, t1 = tspan
    t = range(t0, t1 + dt/2; step = dt)
    y(t) = y0 + v0*(t - t0) - g*(t - t0)^2/2
    v(t) = v0 - g*(t - t0)
    Solution(y.(t), v.(t), t, prob, alg)
end

function solve(prob::Problem, alg::EulerMethod)
    (; g, y0, v0, tspan) = prob
    (; dt) = alg
    t0, t1 = tspan
    t = range(t0, t1 + dt/2; step = dt)
    n = length(t)
    y = Vector{typeof(y0)}(undef, n)
    v = Vector{typeof(v0)}(undef, n)
    y[1] = y0
    v[1] = v0
    for i in 1:n-1
        v[i+1] = v[i] - g*dt
        y[i+1] = y[i] + v[i]*dt
    end
    Solution(y, v, t, prob, alg)
end

end

# %% [markdown]
# This module will calculate the free-fall motion under a uniform gravity potential.
#
# * Problem: The parameters of problems are stored in objects of type `FreeFall.Problem`.
#
# * Algorithm: The parameters of algorithms are stored in objects of types `FreeFall.EulerMethod` and of `FreeFall.ExactFormula`.
#
# * Solver function: The function `FreeFall.solve(prob::FreeFall.Problem, alg)` returns the object of type `FreeFall.Solution` obtained by solving the problem `prob` with the algorithm `alg`.
#
# Note that the `(; a, b, c) = p` syntax of Julia ≥ v1.7, is very useful for extracting the contents of the object that contains parameters. (You can also do the same thing with `@unpack` in the exellent well-known package [Parameters.jl](https://github.com/mauro3/Parameters.jl).)

# %% [markdown]
# ### Example 1: Compare a numerical solution and an exact one.

# %%
earth = FreeFall.Problem()
sol_euler = FreeFall.solve(earth)
sol_exact = FreeFall.solve(earth, FreeFall.ExactFormula())

plot(sol_euler.t, sol_euler.y; label="Euler's method (dt = $(sol_euler.alg.dt))", ls=:auto)
plot!(sol_exact.t, sol_exact.y; label="exact solution", ls=:auto)
title!("On the Earth"; xlabel="t", legend=:bottomleft)

# %% [markdown]
# Since the time step `dt = 0.1` is not enough small, the error of the Euler method is rather large.

# %% [markdown]
# ### Example 2: Change the algorithm parameter `dt` smaller.

# %%
# change algorithm parameters

earth = FreeFall.Problem()
sol_euler = FreeFall.solve(earth, FreeFall.EulerMethod(dt = 0.01))
sol_exact = FreeFall.solve(earth, FreeFall.ExactFormula())

plot(sol_euler.t, sol_euler.y; label="Euler's method (dt = $(sol_euler.alg.dt))", ls=:auto)
plot!(sol_exact.t, sol_exact.y; label="exact solution", ls=:auto)
title!("On the Earth"; xlabel="t", legend=:bottomleft)

# %% [markdown]
# ### Example 3: Change the problem parameter `g` to the gravitational acceleration on the moon.

# %%
# change problem parameters

moon = FreeFall.Problem(g = 1.62, tspan = (0.0, 40.0))
sol_euler = FreeFall.solve(moon)
sol_exact = FreeFall.solve(moon, FreeFall.ExactFormula(dt = sol_euler.alg.dt))

plot(sol_euler.t, sol_euler.y; label="Euler's method (dt = $(sol_euler.alg.dt))", ls=:auto)
plot!(sol_exact.t, sol_exact.y; label="exact solution", ls=:auto)
title!("On the Moon"; xlabel="t", legend=:bottomleft)

# %% [markdown]
# ## Extensibility of the Julia ecosystem
#
# A different author of the `FreeFall` module can define , in the `SomeExtension` module, a new algorithm type and a new method of the `FreeFall.solve` function.  Both a new type and a new method!

# %%
# Extensibility of the Julia ecosystem

module SomeExtension

using ..FreeFall
using ..FreeFall: Problem, Solution

Base.@kwdef struct Symplectic2ndOrder{T}  dt::T = 0.1 end

function FreeFall.solve(prob::Problem, alg::Symplectic2ndOrder)
    (; g, y0, v0, tspan) = prob
    (; dt) = alg
    t0, t1 = tspan
    t = range(t0, t1 + dt/2; step = dt)
    n = length(t)
    y = Vector{typeof(y0)}(undef, n)
    v = Vector{typeof(v0)}(undef, n)
    y[1] = y0
    v[1] = v0
    for i in 1:n-1
        ytmp = y[i] + v[i]*dt/2
        v[i+1] = v[i] - g*dt
        y[i+1] = ytmp + v[i+1]*dt/2
    end
    Solution(y, v, t, prob, alg)
end

end

earth = FreeFall.Problem()
sol_sympl = FreeFall.solve(earth, SomeExtension.Symplectic2ndOrder(dt = 2.0))
sol_exact = FreeFall.solve(earth, FreeFall.ExactFormula())

plot(sol_sympl.t, sol_sympl.y; label="2nd order symplectic (dt = $(sol_sympl.alg.dt))", ls=:auto)
plot!(sol_exact.t, sol_exact.y; label="exact solution", ls=:auto)
title!("On the Earth"; xlabel="t", legend=:bottomleft)

# %% [markdown]
# The second-order symplectic method gives exact discretizations of the free-fall motions under uniform gravity potentials.

# %% [markdown]
# ## Composability of the Julia ecosystem
#
# By combining the MonteCarloMeasurements.jl package with the modules given above, we can plot the behavior of the system for perturbations of the initial value.  We did not intend for them to be used in this way!

# %%
# Composability of the Julia ecosystem

using MonteCarloMeasurements

earth = FreeFall.Problem(y0 = 0.0 ± 0.0, v0 = 30.0 ± 1.0)
sol_euler = FreeFall.solve(earth)
sol_sympl = FreeFall.solve(earth, SomeExtension.Symplectic2ndOrder(dt = 2.0))
sol_exact = FreeFall.solve(earth, FreeFall.ExactFormula())

ylim = (-100, 60)
P = plot(sol_euler.t, sol_euler.y; label="Euler's method (dt = $(sol_euler.alg.dt))", ls=:auto)
title!("On the Earth"; xlabel="t", legend=:bottomleft, ylim)
Q = plot(sol_sympl.t, sol_sympl.y; label="2nd order symplectic (dt = $(sol_sympl.alg.dt))", ls=:auto)
title!("On the Earth"; xlabel="t", legend=:bottomleft, ylim)
R = plot(sol_exact.t, sol_exact.y; label="exact solution", ls=:auto)
title!("On the Earth"; xlabel="t", legend=:bottomleft, ylim)
plot(P, Q, R; size=(720, 600))

# %%

max_stars_repo_name: genkuroki/public

max_issues_repo_name: genkuroki/public

max_forks_repo_name: genkuroki/public


text:
# License for this file: MIT (expat)
# Copyright 2020, DLR Institute of System Dynamics and Control

"""
    module ModiaMathTest_ode_pendulum

ODE-model of a mass point attached via a rod to a revolute joint with 2 states.

This test is used to evalute how to use DifferentialEquations.jl in ModiaMath
using different types: Float64,  DoubleFloat{Float64}, Measurement{Float64}
"""
module ModiaMathTest_ode_pendulum

import DifferentialEquations
using PyPlot        # For plotting

using StaticArrays  # Test of StaticArrays with parameterized data
using DoubleFloats  # Test with higher precision (128 bit instead of 64 bit floating point)
using Measurements  # Test with uncertain variables (nominal value + uncertainty)

include("ModiaMathTest.jl")
using .ModiaMathTest

#--------------------------------------- Generic (model independent) definitions

mutable struct Variable
    typ
    start
    fixed::Union{Bool,Nothing}
    info::AbstractString

    Variable(;typ=Real, start=nothing, fixed=nothing, info="") = new(typ, start, fixed, info)
end
const VariableDict = Dict{Symbol, Variable}

mutable struct ModelResult
    t::AbstractVector
    model::AbstractVector
    variables::VariableDict

    ModelResult(m) = new(typeof(m.simulationState.time)[],
                         typeof(m.model)[],
                         m.variables)
end

function addToResult!(result::ModelResult, t, m)::Nothing
    push!(result.t, deepcopy(t))
    push!(result.model, deepcopy(m.model))
    return nothing;
end

#---------------------------------------- Specific to a particular model (here: Pendulum)

mutable struct Model{StateType,RealType}
    # Parameters
    L::StateType
    m::StateType
    d::StateType
    g::StateType

    # Variables during integration
    phi::StateType
    w::StateType
    der_w::StateType

    # Variables at communication points
    r::SVector{2,StateType}   # absolute position of end point

    function Model{StateType,RealType}(;L=1.0, m=1.0, d=0.1, g=9.81) where {StateType, RealType}
        @assert(L > 0)
        @assert(m > 0)
        @assert(d >= 0)
        new(L, m, d, g, 0, 0, 0, SVector{2,StateType}(0,0))
    end
end

mutable struct PendulumGeneric{StateType,RealType}
    # Required:
    simulationState::SimulationState{StateType, RealType}

    # Defined by model
    model::Model{StateType,RealType}   # Data structure of model variable values
    variables::VariableDict            # Data structure of model variable definition
end
const Pendulum = PendulumGeneric{Float64, Float64}

# Only needed if the same problem is used several times in solve(..)
# However in ModiaMath, problem is always newly constructed for solve.
#
# The following definition tells DifferentialEquations.jl that a SimulationModel is mutable (otherwise stack overflow error for two calls of solve!)
# using ArrayInterface
#ArrayInterface.ismutable(::Type{PendulumGeneric}) = true
#ArrayInterface.ismutable(::PendulumGeneric) = true

function ModelVariables()::VariableDict
    var = VariableDict()

    # Parameters
    var[:L] = Variable(info="Angle")
    var[:m] = Variable(info="Mass")
    var[:d] = Variable(info="Damping factor")
    var[:g] = Variable(info="Gravity acceleration")

    # Variables during integration
    var[:phi]   = Variable(start=π/2, info="Angle")
    var[:w]     = Variable(start=0.0, info="Angular Velocity (= der(phi))")
    var[:der_w] = Variable(info="Angular Acceleration (= der(w))")

    # Variables at communication points
    var[:r]     = Variable(typ=SVector{2,Real}, info="Absolute position of pendulum tip")

    return var
end

function InitialStates(model::Model{StateType,RealType}, var::VariableDict)::Vector{StateType} where {StateType, RealType}
    x_start = [StateType(var[:phi].start),
               StateType(var[:w].start)]
    return x_start
end

function setStates!(obj::PendulumGeneric{StateType,RealType}, x::AbstractVector)::Nothing where {StateType, RealType}
    m = obj.model
    m.phi = x[1]
    m.w   = x[2]
    return nothing
end

function getDerivatives!(obj::PendulumGeneric{StateType,RealType}, der_x::AbstractVector)::Nothing where {StateType, RealType}
    m = obj.model
    der_x[1] = m.w
    der_x[2] = m.der_w
    return nothing
end

function evaluate!(obj::PendulumGeneric{StateType,RealType})::Nothing where {StateType, RealType}
    m   = obj.model
    sim = obj.simulationState
    m.der_w = (-m.m * m.g * m.L * sin(m.phi) - m.d * m.w) / (m.m * m.L^2)

    if sim.storeResult
        m.r = SVector{2,StateType}(m.L*sin(m.phi), -m.L*cos(m.phi))
    end
    return nothing
end

"Pendulum: Constructor for Pendulum SimulationModel"
function PendulumGeneric{StateType,RealType}(;kwargs...)  where {StateType, RealType}
    model     = Model{StateType,RealType}(;kwargs...)
    variables = ModelVariables()
    x_start   = InitialStates(model, variables)

    simulationState = SimulationState{StateType,RealType}("Pendulum", x_start, setStates!, getDerivatives!, evaluate!, ModelResult, addToResult!)
    simulationModel = PendulumGeneric{StateType,RealType}(simulationState, model, variables)
end

#------------------------------------------------------------------------------------------------
#---------------------------------------- Simulation of the pendulum model
#------------------------------------------------------------------------------------------------

function standardPlot(solution, fig1, fig2)
    result = solution.prob.p.simulationState.result
    StateType = string( typeof( solution.prob.p.simulationState.x_start[1] ) )
    figure(fig1)
    clf()
    t   = result.t
    phi = getfield.(result.model, :phi)
    plot(t, phi, label="\$\\varphi\$")
    grid(true)
    legend()
    title("SimplePendulum with " * StateType)

    figure(fig2)
    clf()
    r  = getfield.(result.model, :r)
    r1 = getindex.(r,1)
    r2 = getindex.(r,2)
    plot(t, r1, label="r[1]")
    plot(t, r2, label="r[2]")
    grid(true)
    legend()
    title("SimplePendulum with " * StateType)
end

# ODE integrator with Float64
pendulum = Pendulum(m=1.1)
      solution = solve!(pendulum, DifferentialEquations.Tsit5(), stopTime=7.0, tolerance=1e-4)
@time solution = solve!(pendulum, DifferentialEquations.Tsit5(), stopTime=7.0, tolerance=1e-4)
standardPlot(solution, 1, 2)

# DAE integrator with FLoat64
      solution = solve!(pendulum, DifferentialEquations.IDA(), stopTime=7.0, tolerance=1e-4)
@time solution = solve!(pendulum, DifferentialEquations.IDA(), stopTime=7.0, tolerance=1e-4)
standardPlot(solution, 3, 4)

# ODE integrator with DoubleFloats
pendulum = PendulumGeneric{DoubleFloat{Float64},Float64}(m=1.1)
      solution = solve!(pendulum, DifferentialEquations.Tsit5(), stopTime=7.0, tolerance=1e-4)
@time solution = solve!(pendulum, DifferentialEquations.Tsit5(), stopTime=7.0, tolerance=1e-4)
standardPlot(solution, 5, 6)

# ODE integrator with Measurements
pendulum = PendulumGeneric{Measurement{Float64},Float64}(L=1.0±0.1, m=1.0±0.1)
      solution = solve!(pendulum, DifferentialEquations.Tsit5(), stopTime=7.0, tolerance=1e-4)
@time solution = solve!(pendulum, DifferentialEquations.Tsit5(), stopTime=7.0, tolerance=1e-4)
result   = solution.prob.p.simulationState.result
StateType = string( typeof( solution.prob.p.simulationState.x_start[1] ) )

t   = result.t
phi = getfield.(result.model, :phi)
phi_mean = Measurements.value.(phi)
phi_u    = Measurements.uncertainty.(phi)
phi_min  = phi_mean + phi_u
phi_max  = phi_mean - phi_u

figure(7)
clf()
plot(t, phi_max , label="\$\\varphi_{max}\$")
plot(t, phi_min , label="\$\\varphi_{min}\$" )
plot(t, phi_mean, label="\$\\varphi_{mean}\$" )
grid(true)
legend()
title("SimplePendulum with Measurement{Float64}")

end

ext: jl


text:
my_f(x,y) = 2*x +3y
my_sigmoid(z) = 1/(1 + exp(-z))
function my_probability(z)
    if my_sigmoid(z)>= 0.5
        return 1
    else
        return 0
    end
end


text:
### A Pluto.jl notebook ###
# v0.12.18

using Markdown
using InteractiveUtils

# This Pluto notebook uses @bind for interactivity. When running this notebook outside of Pluto, the following 'mock version' of @bind gives bound variables a default value (instead of an error).
macro bind(def, element)
    quote
        local el = $(esc(element))
        global $(esc(def)) = Core.applicable(Base.get, el) ? Base.get(el) : missing
        el
    end
end

# ╔═╡ 305051e6-5e42-11eb-3c5e-393c2b770d5e
begin
	using ColorBlendModes
	using Distances
	using Images
	using SHA
	using PlutoUI
end

# ╔═╡ 40f62c3c-5e42-11eb-3f95-cda6a419efbe
begin
	url = "https://upload.wikimedia.org/wikipedia/en/a/a8/The_Dress_%28viral_phenomenon%29.png"

	download(url, "thedress.png")

	thedress_sha2_256 = "08c12632602c50803177f9f6760c6b99677255477731ad3e8efd36f85d44f689"

	open("thedress.png") do f
   	@assert thedress_sha2_256 == bytes2hex(sha2_256(f))
	end
end

# ╔═╡ 556332d2-5e42-11eb-28e6-1f521e37fad2
thedress = load("thedress.png")

# ╔═╡ 336a077c-5e43-11eb-00bd-d1e1b18c05a5
mask = load("thedress_mask.png")

# ╔═╡ 3ebd3f0e-5e43-11eb-1bfd-bbd85bce62c3
begin
	gold = RGB(1, 215 / 255, 0)
	white = RGB(1, 1, 1)
	blue = RGB(0, 0, 1)
	black = RGB(0, 0, 0)

	fourColors = [gold, white, blue, black]
end

# ╔═╡ 2681760e-5f50-11eb-25e7-7162463c92c2
distance_types = Dict("Euclidean" => Euclidean(), "WeightedEuclidean" => WeightedEuclidean([0.26,0.70,0.04]), "ChiSqDist" => ChiSqDist(), "Cityblock" => Cityblock(), "Chebyshev" => Chebyshev(), "BrayCurtis" => BrayCurtis(), "Jaccard" => Jaccard())

# ╔═╡ 04774ed6-5f4f-11eb-0cd2-8121cd938338
@bind selector Radio(collect(keys(distance_types)), default=collect(keys(distance_types))[1])

# ╔═╡ 94da906e-5f4f-11eb-28a7-9f04c33ff39c
distance_type = distance_types[selector]

# ╔═╡ 944b0afa-5e43-11eb-0614-9fa44a6d4944
begin
    color_distance_GoldWhiteBlueBlack = [0.0, 0.0, 0.0, 0.0]
    new_image = Array{RGB,2}(undef, size(thedress)[1], size(thedress)[2])

    for ci in CartesianIndices(thedress)
        for (i, c) in enumerate(fourColors)
            color_distance_GoldWhiteBlueBlack[i] = evaluate(distance_type, channelview([c]), channelview([thedress[ci]]))
        end

        new_image[ci] = fourColors[argmin(color_distance_GoldWhiteBlueBlack)]
    end
end

# ╔═╡ 82a32580-5f3d-11eb-3e76-733b9c90873c
BlendMultiply.(new_image, mask)

# ╔═╡ 9b1aedfa-5e43-11eb-327c-296484c79912
begin
	nim = new_image[Bool.(mask)]
	map(fourColors) do c
		cpix_count = count(pix -> (pix == c), nim) / length(nim)
		lnim = length(nim)
		md"Color $c Count $cpix_count"
	end
end

# ╔═╡ Cell order:
# ╠═305051e6-5e42-11eb-3c5e-393c2b770d5e
# ╠═40f62c3c-5e42-11eb-3f95-cda6a419efbe
# ╠═556332d2-5e42-11eb-28e6-1f521e37fad2
# ╠═336a077c-5e43-11eb-00bd-d1e1b18c05a5
# ╠═3ebd3f0e-5e43-11eb-1bfd-bbd85bce62c3
# ╠═2681760e-5f50-11eb-25e7-7162463c92c2
# ╠═94da906e-5f4f-11eb-28a7-9f04c33ff39c
# ╠═944b0afa-5e43-11eb-0614-9fa44a6d4944
# ╠═04774ed6-5f4f-11eb-0cd2-8121cd938338
# ╠═82a32580-5f3d-11eb-3e76-733b9c90873c
# ╠═9b1aedfa-5e43-11eb-327c-296484c79912

max_stars_repo_name: mpejcoch/thedress

max_issues_repo_name: mpejcoch/thedress

max_forks_repo_name: mpejcoch/thedress


text:
module TestStdVector

module Wrapper
    using CxxCall
    dir = mktempdir()
    lib = joinpath(dir, "libStdVector")
    filepath = joinpath(dir, "StdVector.cxx")
    eval(cxxsetup())
    eval(cxxnewfile(filepath,
    """
    #include <vector>
    """))

    # we will be dealing with pointers to std::vector<T>
    # we could represent these using Ptr{Cvoid}
    # however it is more safe and convenient to tag them
    struct StdVectorTag{T} end
    CxxCall.tocxx(::Type{StdVectorTag{T}}) where {T} = "std::vector<$(tocxx(T))>"

    mutable struct StdVector{T} <: AbstractVector{T}
        ptr::Ptr{StdVectorTag{T}}
        function StdVector{T}() where {T}
            ptr = cxxnew(StdVectorTag{T})
            ret = new{T}(ptr)
            finalizer(ret) do self
                free(self.ptr)
            end
            return ret
        end
    end
    function Base.size(o::StdVector)
        GC.@preserve o begin
            (Int(len(o.ptr)),)
        end
    end
    function Base.getindex(o::StdVector, i::Integer)
        @boundscheck checkbounds(o,i)
        GC.@preserve o begin
            at(o.ptr, Csize_t(i-1))
        end
    end
    function Base.push!(o::StdVector, val)
        valT = convert(eltype(o), val)
        GC.@preserve o begin
            push_back(o.ptr, valT)
        end
        valT
    end

    for T in (Float32,Float64,Bool)
        @cxx lib function cxxnew(::Type{StdVectorTag{T}})::Ptr{StdVectorTag{T}}
            """
            return new std::vector<$(tocxx(T))>();
            """
        end
        @cxx lib function free(self::Ptr{StdVectorTag{T}})::Nothing
            "delete self;"
        end
        @cxx lib function at(self::Ptr{StdVectorTag{T}}, i::Csize_t)::T
            "return self->at(i);"
        end
        @cxx lib function push_back(self::Ptr{StdVectorTag{T}}, val::T)::Nothing
            "self->push_back(val);"
        end
        @cxx lib function len(self::Ptr{StdVectorTag{T}})::Int64
            "return self->size();"
        end
    end
end#module Wrapper

using Test
import .Wrapper; const W = Wrapper

@testset "std::vector" begin
    @test !ispath(W.filepath)
    W.cxx_write_code!()
    @test isfile(W.filepath)
    libpath = W.lib * ".so"
    run(`g++ -shared -fPIC $(Wrapper.filepath) -o $libpath`)
    @test isfile(libpath)
    using Libdl
    dlopen(libpath)
    v = W.StdVector{Float32}()
    push!(v, 10f0)
    push!(v, 20f0)
    push!(v, 30f0)
    @test v[1] === 10f0
    @test v[2] === 20f0
    @test v[3] === 30f0

    v = W.StdVector{Float64}()
    push!(v, 10.0)
    push!(v, 20.0)
    push!(v, 30.0)
    @test collect(v) == [10.0, 20.0, 30.0]
    @test size(v) == (3,)
    @test eltype(v) == Float64
end

end#module


text:
using Gadfly
using RDatasets
using Distributions

sds = [1, 1/2, 1/4, 1/8, 1/16, 1/32]
n = 10
ys = [mean(rand(Normal(0, sd), n)) for sd in sds]
ymins = ys .- (1.96 * sds / sqrt(n))
ymaxs = ys .+ (1.96 * sds / sqrt(n))
cs = [string(i) for i in 1:n]

plot(x=1:length(sds),
    x=ys, xmin=ymins, xmax=ymaxs,
    y=ys, ymin=ymins, ymax=ymaxs, color=cs, Geom.point, Geom.errorbar)


text:
using EAGO, JuMP, Cthulhu

####### Example of interest
m = Model(EAGO.Optimizer)
set_optimizer_attribute(m, "output_iterations", 1)
set_optimizer_attribute(m, "iteration_limit", 5)
set_optimizer_attribute(m, "verbosity", 0)

# Define bounded variables
xL = [10.0; 0.0; 0.0; 0.0; 0.0; 85.0; 90.0; 3.0; 1.2; 145.0]
xU = [2000.0; 16000.0; 120.0; 5000.0; 2000.0; 93.0; 95.0; 12.0; 4.0; 162.0]
@variable(m, xL[1] <= x[1] <= xU[1])
@NLobjective(m, Max, -2.0 * x[1])

JuMP.optimize!(m)

####### Define code to reduce need to transverse tree to get to functions of interest
b = backend(m).optimizer.model.optimizer
nlr = b._working_problem._nonlinear_constr[1]
function g()
    EAGO.relax!(b, b._working_problem._nonlinear_constr[1], 1, true)
end
function q(b, nlr)
    EAGO.relax!(b, nlr, 1, true)
end
k(m) = JuMP.optimize!(m)

f() = k(m)

####### Define descend
@descend f()

max_stars_repo_name: MatthewStuber/EAGO

max_issues_repo_name: MatthewStuber/EAGO

max_forks_repo_name: MatthewStuber/EAGO


text:
#############################
## The functions in this file may currently not work for some easy edge cases like K=constant.
## Use the monomial implementation in src/triVolterraMonomialKernel.jl for those cases instead
## and reserve this for non-trivial kernels.
#############################
##  triVolterraEQ1FullKernelSolver : Solves Volterra integral equation of the first kind, i.e.
##                         g(x)= \int_0^(x) K(x,t) u(t) dt
##                                          OR
##                         g(x) =  \int_0^(1-x) K(x,t) u(t) dt (if flip = false)
##                         where g and the kernel K are given and u(t) is the unknown
##                         to be solved for.
####
function triVolterraEQ1FullKernelSolver(g::Function,Kfun::Function,depth::Integer,flip::Bool)
    V = WLoweringP01P00(depth)*triVolterraFullKernelOpP01(Kfun,depth,flip)
    x = Fun(identity,Jacobi(0,1,0..1))
    if flip
        gF = Fun(x->g(1-x),Jacobi(0,0, 0..1))
        u = Fun(Jacobi(0,1, 0..1), V\pad(gF.coefficients,depth))
    else
        gF = Fun(x->g(x),Jacobi(0,0, 0..1))
        u = Fun(Jacobi(0,1, 0..1), V\pad(gF.coefficients,depth))
    end
    return u
end
#############################
##  triVolterraEQ2FullKernelSolver : Solves Volterra integral equation of the second kind, i.e.
##                         u(x) = g(x) + \int_0^(x) K(x,t) u(t) dt
##                                          OR
##                         u(x) = g(x) + \int_0^(1-x) K(x,t) u(t) dt (if flip = false)
##                         where g and the kernel K are given and u(x) is the unknown
##                         to be solved for.
##
##                         This solver uses a weighted lowering operator approach (I-SRLV).
####
function triVolterraEQ2FullKernelSolver(g::Fun,Kfun::Function,depth::Integer,flip::Bool)
    V = triVolterraFullKernelOpP01(Kfun,depth,flip)
    if flip
        V = I-Conversion(Jacobi(0,0,0..1),Jacobi(0,1,0..1))[1:depth,1:depth]*reflectPabtoPba(depth)*WLoweringP01P00(depth)*V
        u = Fun(Jacobi(0,1, 0..1), V\pad(g.coefficients,depth))
    else
        x = Fun(identity,Jacobi(0,1,0..1))
        V = I-V+Multiplication(x, Jacobi(0,1,0..1))[1:depth,1:depth]*V
        u = Fun(Jacobi(0,1, 0..1), V\pad(g.coefficients,depth))
    end
    return u
end
function triVolterraEQ2FullKernelSolver(g::Fun,Kfun::Function,depth::Integer,flip::Bool,kerneldepth::Int)
    V = triVolterraFullKernelOpP01(Kfun,depth,flip,kerneldepth)
    if flip
        V = I-Conversion(Jacobi(0,0,0..1),Jacobi(0,1,0..1))[1:depth,1:depth]*reflectPabtoPba(depth)*WLoweringP01P00(depth)*V
        u = Fun(Jacobi(0,1, 0..1), V\pad(g.coefficients,depth))
    else
        x = Fun(identity,Jacobi(0,1,0..1))
        V = I-V+Multiplication(x, Jacobi(0,1,0..1))[1:depth,1:depth]*V
        u = Fun(Jacobi(0,1, 0..1), V\pad(g.coefficients,depth))
    end
    return u
end
#############################
##   triVolterraFun  :  Returns a Fun which evaluated at x gives the Volterra integral
##                      of the function f given as a Fun.
##
##                      use "flip = false" for integral from 0 to 1-x
####
function triVolterraFullKernelFunP01(f::Fun,Kfun::Function,depth::Integer,flip::Bool)
        op = triVolterraFullKernelOpP01(Kfun,depth,flip)
        S = Jacobi(0,1,0..1)
        x = Fun(identity,S)
        Jx = Multiplication(x, S)[1:depth,1:depth]
        cfs = (I-Jx)*op*pad(f.coefficients,depth)
        if flip
                return Fun(Jacobi(1,0,0..1),reflectPabtoPba(length(cfs))*cfs)
        else
                return Fun(Jacobi(0,1,0..1),cfs)
        end
end
#############################
##   triVolterraFullKernelOpP01:  Generates Volterra integral operator
##                      via an operator valued Clenshaw algorithm.
####
function triVolterraFullKernelOpP01(K::Function,depth::Integer,flip::Bool)
        S = Jacobi(0,1,0..1)
        x = Fun(identity,S)
        Jxy = Multiplication(x, S)[1:depth,1:depth]
        if flip
            Kfun = Fun((x,y)->K(1-x,y),JacobiTriangle())
        else
            Kfun = Fun((x,y)->K(x,y),JacobiTriangle())
        end
        N = blocksize(Kfun)[1]
        sp = JacobiTriangle()
        cfs = PseudoBlockArray(pad(Kfun.coefficients, sum(1:N)),1:N)
        C = MultivariateOrthogonalPolynomials.ClenshawRecurrenceData(sp,N+2)
        D = triQEygenP01(depth)
        B2 = Fill(D,N) .* view(cfs,Block(N))
        B1 = Fill(D,N-1) .* view(cfs,Block(N-1)) .+ Fill(Jxy,N-1) .* (C.B̃ˣ[N-1]*B2) .+ (C.B̃ʸ[N-1]*B2) .* Fill(Jxy,N-1) .- C.B[N-1]*B2
        for K = N-2:-1:1
            (B1, B2) =  Fill(D,K) .* view(cfs,Block(K)) .+ Fill(Jxy,K) .* (C.B̃ˣ[K]*B1) .+ (C.B̃ʸ[K]*B1) .* Fill(Jxy,K) .- C.B[K]*B1 .- C.C[K] * B2 ,  B1
        end
        return first(B1)
end
#############################
##   triVolterraFullKernelOpP01:  This version allows explicit kernel depth input which sometimes improves performance
####
function triVolterraFullKernelOpP01(K::Function,depth::Integer,flip::Bool,kerneldepth::Integer)
        S = Jacobi(0,1,0..1)
        x = Fun(identity,S)
        Jxy = Multiplication(x, S)[1:depth,1:depth]
        if flip
            Kfun = Fun((x,y)->K(1-x,y),JacobiTriangle(),kerneldepth)
        else
            Kfun = Fun((x,y)->K(x,y),JacobiTriangle(),kerneldepth)
        end
        N = blocksize(Kfun)[1]
        sp = JacobiTriangle()
        cfs = PseudoBlockArray(pad(Kfun.coefficients, sum(1:N)),1:N)
        C = MultivariateOrthogonalPolynomials.ClenshawRecurrenceData(sp,N+2)
        D = triQEygenP01(depth)
        B2 = Fill(D,N) .* view(cfs,Block(N))
        B1 = Fill(D,N-1) .* view(cfs,Block(N-1)) .+ Fill(Jxy,N-1) .* (C.B̃ˣ[N-1]*B2) .+ (C.B̃ʸ[N-1]*B2) .* Fill(Jxy,N-1) .- C.B[N-1]*B2
        for K = N-2:-1:1
            (B1, B2) =  Fill(D,K) .* view(cfs,Block(K)) .+ Fill(Jxy,K) .* (C.B̃ˣ[K]*B1) .+ (C.B̃ʸ[K]*B1) .* Fill(Jxy,K) .- C.B[K]*B1 .- C.C[K]*B2 ,  B1
        end
        return first(B1)
end
#############################################################
## The stuff below is currently not in use outside of testing but is supplied for completeness
#############################
#############################
##   triBandedSgen: generates the bounded and banded S^-1_(1,0)^(1,1)*reflectPabtoPba*S^_(1,0)^(1,1)*(1-J) directly
##                  as a tridiagonal BandedMatrix.
####
function triBandedSgen(N::Integer)
    QEy=BandedMatrix{Float64}(undef, (N, N), (1, 1))
    QEy[1,1] = 1/3
    QEy[2,1] = 1/3
    for c=2:N-1
        QEy[c-1,c] = (-1)^c * (c-1)/(4*c-2)                         #superdiagonal
        QEy[c,c] = (-1)^(c+1) * c/(4*c^2-1)                         #diagonal
        QEy[c+1,c] = (-1)^(c+1) * ((c-1)/(4*c-2)+c/(4*c^2-1))    #subdiagonal
    end
    QEy[N-1,N] = (-1)^N * (N-1)/(4*N-2)
    QEy[N,N] = (-1)^(N+1) * N/(4*N^2-1)
    return QEy
end


text:
mutable struct NumFieldEmbNfAbsNS <: NumFieldEmb{NfAbsNS}
  field::NfAbsNS
  index::Vector{Int}
  absolute_index::Int
  isreal::Bool
  roots::Vector{acb}
  conjugate::Int
end

_absolute_index(P::NumFieldEmbNfAbsNS) = P.absolute_index

number_field(P::NumFieldEmbNfAbsNS) = P.field

embedding_type(::Type{NfAbsNS}) = NumFieldEmbNfAbsNS

embedding_type(::NfAbsNS) = NumFieldEmbNfAbsNS

isreal(P::NumFieldEmbNfAbsNS) = P.isreal

isimaginary(P::NumFieldEmbNfAbsNS) = !P.isreal

conj(P::NumFieldEmbNfAbsNS) = complex_embeddings(number_field(P))[P.conjugate]

function complex_embeddings(K::NfAbsNS; conjugates::Bool = true)
  emb = get_attribute!(K, :complex_embeddings) do
    _complex_embeddings(K)
  end::Vector{NumFieldEmbNfAbsNS}
  if conjugates
    return emb
  else
    r, s = signature(K)
    return emb[1:r + s]
  end
end

function _complex_embeddings(K::NfAbsNS)
  c = conjugate_data_arb_roots(K, 32, copy = false)

  r, s = signature(K)
  res = Vector{NumFieldEmbNfAbsNS}(undef, degree(K))

  l = ngens(K)

  j = 1

  for v in c[2]
    res[j] = NumFieldEmbNfAbsNS(K, v, j, true, acb[c[1][i].roots[v[i]] for i in 1:l], j)
    j += 1
  end

  for v in c[3]
    res[j] = NumFieldEmbNfAbsNS(K, v, j, false, acb[c[1][i].roots[v[i]] for i in 1:l], j + s)
    res[j + s] = NumFieldEmbNfAbsNS(K, v, j + s, false, acb[conj(c[1][i].roots[v[i]]) for i in 1:l], j)
    j += 1
  end

  return res
end

function Base.show(io::IO, ::MIME"text/plain", f::NumFieldEmbNfAbsNS)
  print(io, "Embedding of\n")
  print(IOContext(io, :compact => true), number_field(f))
  print(io, "\n")
  print(io, "with roots ≈ ")
  print(io, "[ ")
  for i in 1:length(f.roots)
    _print_acb_neatly(io, f.roots[i])
    if i < length(f.roots)
      print(io, ", ")
    end
  end
  print(io, "]")
end

function Base.show(io::IO, f::NumFieldEmbNfAbsNS)
  print(io, "Embedding corresponding to ≈ ")
  print(io, "[ ")
  for i in 1:length(f.roots)
    _print_acb_neatly(io, f.roots[i])
    if i < length(f.roots)
      print(io, ", ")
    end
  end
  print(io, "]")
end

function (f::NumFieldEmbNfAbsNS)(a::NfAbsNSElem, prec::Int = 32)
  K = parent(a)
  wprec = prec
  pol_a = data(a)
  r, s = signature(K)
  i = _absolute_index(f)
  if i > r + s
    return conj(conj(f)(a, prec))
  end
  while true
    conjs, ind_real, ind_complex = conjugate_data_arb_roots(K, wprec)
    if i <= r
      res = _evaluate(pol_a, acb[conjs[j].roots[ind_real[i][j]] for j = 1:ngens(K)])
    else
      i = i - r
      ev = acb[conjs[j].roots[ind_complex[i][j]] for j = 1:ngens(K)]
      res = _evaluate(pol_a, ev)
    end
    if !isfinite(res) || !radiuslttwopower(res, -prec)
      wprec = 2 * wprec
    else
      return res
    end
  end
end

function evaluate(a::NfAbsNSElem, P::NumFieldEmbNfAbsNS, prec::Int)
  return P(a, prec)
end

function restrict(e::NumFieldEmb, f::NumFieldMor{<: NfAbsNS, <: Any, <: Any})
  @req number_field(e) === codomain(f) "Number fields do not match"
  L = domain(f)
  emb = complex_embeddings(L)
  cn = Bool[ all(overlaps.(ee.roots, e.(f.(gens(L))))) for ee in emb]
  @assert count(cn) == 1
  i = findfirst(cn)
  return emb[i]
end


text:
using SEC, Test
import SEC.Calibrate.optimize
import SEC.Calibrate.Optim: NelderMead, LBFGS, GradientDescent

@testset "Optim.jl" begin
    solution = [1.0, 2.0]
    f(x⃗) = (solution[1] - x⃗[1])^2 + (solution[2] - x⃗[2])^2
    function ∇f!(∇f, x⃗)
        ∇f[1] = -2.0 * (solution[1] - x⃗[1])
        ∇f[2] = -2.0 * (solution[2] - x⃗[2])
    end

    optim_output = optimize(f, [0.0, 0.0], NelderMead())
    (; minimizer) = optim_output
    tolerance = 2e-4
    @test all(abs.(minimizer - solution) .≤ tolerance)

    optim_output = optimize(f, [0.0, 0.0], LBFGS())
    (; minimizer) = optim_output
    tolerance = 2e-11
    @test all(abs.(minimizer - solution) .≤ tolerance)

    optim_output = optimize(f, ∇f!, [0.0, 0.0], GradientDescent())
    (; minimizer) = optim_output
    tolerance = 2e-11
    @test all(abs.(minimizer - solution) .≤ tolerance)
end

max_stars_repo_name: bischtob/SEC

max_issues_repo_name: bischtob/SEC

max_forks_repo_name: bischtob/SEC


text:
# Vector of all UA types; Generated with: type_names = [Symbol("UA_", unsafe_string(unsafe_load(type_ptr).typeName)) for type_ptr in UA_TYPES_PTRS] TODO: Automate this step
const type_names = Symbol[:UA_Boolean, :UA_SByte, :UA_Byte, :UA_Int16, :UA_UInt16, :UA_Int32, :UA_UInt32, :UA_Int64, :UA_UInt64, :UA_Float, :UA_Double, :UA_String, :UA_DateTime, :UA_Guid, :UA_ByteString, :UA_XmlElement, :UA_NodeId, :UA_ExpandedNodeId, :UA_StatusCode, :UA_QualifiedName, :UA_LocalizedText, :UA_ExtensionObject, :UA_DataValue, :UA_Variant, :UA_DiagnosticInfo, :UA_ViewAttributes, :UA_XVType, :UA_ElementOperand, :UA_VariableAttributes, :UA_EnumValueType, :UA_EventFieldList, :UA_MonitoredItemCreateResult, :UA_EUInformation, :UA_ServerDiagnosticsSummaryDataType, :UA_ContentFilterElementResult, :UA_LiteralOperand, :UA_MessageSecurityMode, :UA_UtcTime, :UA_UserIdentityToken, :UA_X509IdentityToken, :UA_MonitoredItemNotification, :UA_StructureType, :UA_ResponseHeader, :UA_SignatureData, :UA_ModifySubscriptionResponse, :UA_NodeAttributes, :UA_ActivateSessionResponse, :UA_EnumField, :UA_VariableTypeAttributes, :UA_CallMethodResult, :UA_MonitoringMode, :UA_SetMonitoringModeResponse, :UA_BrowseResultMask, :UA_RequestHeader, :UA_MonitoredItemModifyResult, :UA_CloseSecureChannelRequest, :UA_NotificationMessage, :UA_CreateSubscriptionResponse, :UA_EnumDefinition, :UA_AxisScaleEnumeration, :UA_BrowseDirection, :UA_CallMethodRequest, :UA_ReadResponse, :UA_TimestampsToReturn, :UA_NodeClass, :UA_ObjectTypeAttributes, :UA_SecurityTokenRequestType, :UA_CloseSessionResponse, :UA_SetPublishingModeRequest, :UA_IssuedIdentityToken, :UA_DeleteMonitoredItemsResponse, :UA_ApplicationType, :UA_BrowseNextRequest, :UA_ModifySubscriptionRequest, :UA_BrowseDescription, :UA_SignedSoftwareCertificate, :UA_BrowsePathTarget, :UA_WriteResponse, :UA_AddNodesResult, :UA_AddReferencesItem, :UA_DeleteReferencesResponse, :UA_RelativePathElement, :UA_SubscriptionAcknowledgement, :UA_TransferResult, :UA_CreateMonitoredItemsResponse, :UA_DeleteReferencesItem, :UA_WriteValue, :UA_DataTypeAttributes, :UA_TransferSubscriptionsResponse, :UA_AddReferencesResponse, :UA_DeadbandType, :UA_DataChangeTrigger, :UA_BuildInfo, :UA_FilterOperand, :UA_MonitoringParameters, :UA_DoubleComplexNumberType, :UA_DeleteNodesItem, :UA_ReadValueId, :UA_CallRequest, :UA_RelativePath, :UA_DeleteNodesRequest, :UA_MonitoredItemModifyRequest, :UA_UserTokenType, :UA_AggregateConfiguration, :UA_LocaleId, :UA_UnregisterNodesResponse, :UA_ContentFilterResult, :UA_UserTokenPolicy, :UA_DeleteMonitoredItemsRequest, :UA_SetMonitoringModeRequest, :UA_Duration, :UA_ReferenceTypeAttributes, :UA_GetEndpointsRequest, :UA_CloseSecureChannelResponse, :UA_ViewDescription, :UA_SetPublishingModeResponse, :UA_StatusChangeNotification, :UA_StructureField, :UA_NodeAttributesMask, :UA_EventFilterResult, :UA_MonitoredItemCreateRequest, :UA_ComplexNumberType, :UA_Range, :UA_DataChangeNotification, :UA_Argument, :UA_TransferSubscriptionsRequest, :UA_ChannelSecurityToken, :UA_ServerState, :UA_EventNotificationList, :UA_AnonymousIdentityToken, :UA_FilterOperator, :UA_AggregateFilter, :UA_RepublishResponse, :UA_DeleteSubscriptionsResponse, :UA_RegisterNodesRequest, :UA_StructureDefinition, :UA_MethodAttributes, :UA_UserNameIdentityToken, :UA_UnregisterNodesRequest, :UA_OpenSecureChannelResponse, :UA_SetTriggeringResponse, :UA_SimpleAttributeOperand, :UA_RepublishRequest, :UA_RegisterNodesResponse, :UA_ModifyMonitoredItemsResponse, :UA_DeleteSubscriptionsRequest, :UA_RedundancySupport, :UA_BrowsePath, :UA_ObjectAttributes, :UA_PublishRequest, :UA_FindServersRequest, :UA_ReferenceDescription, :UA_CreateSubscriptionRequest, :UA_CallResponse, :UA_DeleteNodesResponse, :UA_ModifyMonitoredItemsRequest, :UA_ServiceFault, :UA_PublishResponse, :UA_CreateMonitoredItemsRequest, :UA_OpenSecureChannelRequest, :UA_CloseSessionRequest, :UA_SetTriggeringRequest, :UA_BrowseResult, :UA_AddReferencesRequest, :UA_AddNodesItem, :UA_ServerStatusDataType, :UA_BrowseNextResponse, :UA_AxisInformation, :UA_ApplicationDescription, :UA_ReadRequest, :UA_ActivateSessionRequest, :UA_BrowsePathResult, :UA_AddNodesRequest, :UA_BrowseRequest, :UA_WriteRequest, :UA_AddNodesResponse, :UA_AttributeOperand, :UA_DataChangeFilter, :UA_EndpointDescription, :UA_DeleteReferencesRequest, :UA_TranslateBrowsePathsToNodeIdsRequest, :UA_FindServersResponse, :UA_CreateSessionRequest, :UA_ContentFilterElement, :UA_TranslateBrowsePathsToNodeIdsResponse, :UA_BrowseResponse, :UA_CreateSessionResponse, :UA_ContentFilter, :UA_GetEndpointsResponse, :UA_EventFilter]

# Julia types corresponding to the UA types in vector type_names
const julia_types = DataType[Bool, Int8, UInt8, Int16, UInt16, Int32, UInt32, Int64, UInt64, Float32, Float64, UA_String, Int64, UA_Guid, UA_String, UA_String, UA_NodeId, UA_ExpandedNodeId, UInt32, UA_QualifiedName, UA_LocalizedText, UA_ExtensionObject, UA_DataValue, UA_Variant, UA_DiagnosticInfo, UA_ViewAttributes, UA_XVType, UA_ElementOperand, UA_VariableAttributes, UA_EnumValueType, UA_EventFieldList, UA_MonitoredItemCreateResult, UA_EUInformation, UA_ServerDiagnosticsSummaryDataType, UA_ContentFilterElementResult, UA_LiteralOperand, UA_MessageSecurityMode, Int64, UA_UserIdentityToken, UA_X509IdentityToken, UA_MonitoredItemNotification, UA_StructureType, UA_ResponseHeader, UA_SignatureData, UA_ModifySubscriptionResponse, UA_NodeAttributes, UA_ActivateSessionResponse, UA_EnumField, UA_VariableTypeAttributes, UA_CallMethodResult, UA_MonitoringMode, UA_SetMonitoringModeResponse, UA_BrowseResultMask, UA_RequestHeader, UA_MonitoredItemModifyResult, UA_CloseSecureChannelRequest, UA_NotificationMessage, UA_CreateSubscriptionResponse, UA_EnumDefinition, UA_AxisScaleEnumeration, UA_BrowseDirection, UA_CallMethodRequest, UA_ReadResponse, UA_TimestampsToReturn, UA_NodeClass, UA_ObjectTypeAttributes, UA_SecurityTokenRequestType, UA_CloseSessionResponse, UA_SetPublishingModeRequest, UA_IssuedIdentityToken, UA_DeleteMonitoredItemsResponse, UA_ApplicationType, UA_BrowseNextRequest, UA_ModifySubscriptionRequest, UA_BrowseDescription, UA_SignedSoftwareCertificate, UA_BrowsePathTarget, UA_WriteResponse, UA_AddNodesResult, UA_AddReferencesItem, UA_DeleteReferencesResponse, UA_RelativePathElement, UA_SubscriptionAcknowledgement, UA_TransferResult, UA_CreateMonitoredItemsResponse, UA_DeleteReferencesItem, UA_WriteValue, UA_DataTypeAttributes, UA_TransferSubscriptionsResponse, UA_AddReferencesResponse, UA_DeadbandType, UA_DataChangeTrigger, UA_BuildInfo, Ptr{Nothing}, UA_MonitoringParameters, UA_DoubleComplexNumberType, UA_DeleteNodesItem, UA_ReadValueId, UA_CallRequest, UA_RelativePath, UA_DeleteNodesRequest, UA_MonitoredItemModifyRequest, UA_UserTokenType, UA_AggregateConfiguration, UA_String, UA_UnregisterNodesResponse, UA_ContentFilterResult, UA_UserTokenPolicy, UA_DeleteMonitoredItemsRequest, UA_SetMonitoringModeRequest, Float64, UA_ReferenceTypeAttributes, UA_GetEndpointsRequest, UA_CloseSecureChannelResponse, UA_ViewDescription, UA_SetPublishingModeResponse, UA_StatusChangeNotification, UA_StructureField, UA_NodeAttributesMask, UA_EventFilterResult, UA_MonitoredItemCreateRequest, UA_ComplexNumberType, UA_Range, UA_DataChangeNotification, UA_Argument, UA_TransferSubscriptionsRequest, UA_ChannelSecurityToken, UA_ServerState, UA_EventNotificationList, UA_AnonymousIdentityToken, UA_FilterOperator, UA_AggregateFilter, UA_RepublishResponse, UA_DeleteSubscriptionsResponse, UA_RegisterNodesRequest, UA_StructureDefinition, UA_MethodAttributes, UA_UserNameIdentityToken, UA_UnregisterNodesRequest, UA_OpenSecureChannelResponse, UA_SetTriggeringResponse, UA_SimpleAttributeOperand, UA_RepublishRequest, UA_RegisterNodesResponse, UA_ModifyMonitoredItemsResponse, UA_DeleteSubscriptionsRequest, UA_RedundancySupport, UA_BrowsePath, UA_ObjectAttributes, UA_PublishRequest, UA_FindServersRequest, UA_ReferenceDescription, UA_CreateSubscriptionRequest, UA_CallResponse, UA_DeleteNodesResponse, UA_ModifyMonitoredItemsRequest, UA_ServiceFault, UA_PublishResponse, UA_CreateMonitoredItemsRequest, UA_OpenSecureChannelRequest, UA_CloseSessionRequest, UA_SetTriggeringRequest, UA_BrowseResult, UA_AddReferencesRequest, UA_AddNodesItem, UA_ServerStatusDataType, UA_BrowseNextResponse, UA_AxisInformation, UA_ApplicationDescription, UA_ReadRequest, UA_ActivateSessionRequest, UA_BrowsePathResult, UA_AddNodesRequest, UA_BrowseRequest, UA_WriteRequest, UA_AddNodesResponse, UA_AttributeOperand, UA_DataChangeFilter, UA_EndpointDescription, UA_DeleteReferencesRequest, UA_TranslateBrowsePathsToNodeIdsRequest, UA_FindServersResponse, UA_CreateSessionRequest, UA_ContentFilterElement, UA_TranslateBrowsePathsToNodeIdsResponse, UA_BrowseResponse, UA_CreateSessionResponse, UA_ContentFilter, UA_GetEndpointsResponse, UA_EventFilter]

# Vector of types that are ambiguously defined via typedef and are not to be used as default type
types_ambiguous_denylist = [:UA_Duration, :UA_ByteString, :UA_XmlElement, :UA_LocaleId, :UA_DateTime, :UA_UtcTime, :UA_StatusCode]

# Vector of all inlined function names listed in the amalgamated open62541 header file
const inlined_funcs = ["UA_atomic_xchg", "UA_atomic_cmpxchg", "UA_atomic_addUInt32", "UA_atomic_addSize", "UA_atomic_subUInt32", "UA_atomic_subSize", "UA_STRING", "UA_DateTime_toUnixTime", "UA_DateTime_fromUnixTime", "UA_GUID", "UA_BYTESTRING", "UA_BYTESTRING_ALLOC", "UA_ByteString_equal", "UA_NODEID", "UA_NODEID_NUMERIC", "UA_NODEID_STRING", "UA_NODEID_STRING_ALLOC", "UA_NODEID_GUID", "UA_NODEID_BYTESTRING", "UA_NODEID_BYTESTRING_ALLOC", "UA_NodeId_equal", "UA_EXPANDEDNODEID", "UA_EXPANDEDNODEID_NUMERIC", "UA_EXPANDEDNODEID_STRING", "UA_EXPANDEDNODEID_STRING_ALLOC", "UA_EXPANDEDNODEID_STRING_GUID", "UA_EXPANDEDNODEID_BYTESTRING", "UA_EXPANDEDNODEID_BYTESTRING_ALLOC", "UA_ExpandedNodeId_equal", "UA_QualifiedName_isNull", "UA_QUALIFIEDNAME", "UA_QUALIFIEDNAME_ALLOC", "UA_LOCALIZEDTEXT", "UA_LOCALIZEDTEXT_ALLOC", "UA_NUMERICRANGE", "UA_NumericRange_parseFromString", "UA_Variant_isEmpty", "UA_Variant_isScalar", "UA_Variant_hasScalarType", "UA_Variant_hasArrayType", "UA_init", "UA_Boolean_init", "UA_Boolean_new", "UA_Boolean_copy", "UA_Boolean_deleteMembers", "UA_Boolean_clear", "UA_Boolean_delete", "UA_SByte_init", "UA_SByte_new", "UA_SByte_copy", "UA_SByte_deleteMembers", "UA_SByte_clear", "UA_SByte_delete", "UA_Byte_init", "UA_Byte_new", "UA_Byte_copy", "UA_Byte_deleteMembers", "UA_Byte_clear", "UA_Byte_delete", "UA_Int16_init", "UA_Int16_new", "UA_Int16_copy", "UA_Int16_deleteMembers", "UA_Int16_clear", "UA_Int16_delete", "UA_UInt16_init", "UA_UInt16_new", "UA_UInt16_copy", "UA_UInt16_deleteMembers", "UA_UInt16_clear", "UA_UInt16_delete", "UA_Int32_init", "UA_Int32_new", "UA_Int32_copy", "UA_Int32_deleteMembers", "UA_Int32_clear", "UA_Int32_delete", "UA_UInt32_init", "UA_UInt32_new", "UA_UInt32_copy", "UA_UInt32_deleteMembers", "UA_UInt32_clear", "UA_UInt32_delete", "UA_Int64_init", "UA_Int64_new", "UA_Int64_copy", "UA_Int64_deleteMembers", "UA_Int64_clear", "UA_Int64_delete", "UA_UInt64_init", "UA_UInt64_new", "UA_UInt64_copy", "UA_UInt64_deleteMembers", "UA_UInt64_clear", "UA_UInt64_delete", "UA_Float_init", "UA_Float_new", "UA_Float_copy", "UA_Float_deleteMembers", "UA_Float_clear", "UA_Float_delete", "UA_Double_init", "UA_Double_new", "UA_Double_copy", "UA_Double_deleteMembers", "UA_Double_clear", "UA_Double_delete", "UA_String_init", "UA_String_new", "UA_String_copy", "UA_String_deleteMembers", "UA_String_clear", "UA_String_delete", "UA_DateTime_init", "UA_DateTime_new", "UA_DateTime_copy", "UA_DateTime_deleteMembers", "UA_DateTime_clear", "UA_DateTime_delete", "UA_Guid_init", "UA_Guid_new", "UA_Guid_copy", "UA_Guid_deleteMembers", "UA_Guid_clear", "UA_Guid_delete", "UA_ByteString_init", "UA_ByteString_new", "UA_ByteString_copy", "UA_ByteString_deleteMembers", "UA_ByteString_clear", "UA_ByteString_delete", "UA_XmlElement_init", "UA_XmlElement_new", "UA_XmlElement_copy", "UA_XmlElement_deleteMembers", "UA_XmlElement_clear", "UA_XmlElement_delete", "UA_NodeId_init", "UA_NodeId_new", "UA_NodeId_copy", "UA_NodeId_deleteMembers", "UA_NodeId_clear", "UA_NodeId_delete", "UA_ExpandedNodeId_init", "UA_ExpandedNodeId_new", "UA_ExpandedNodeId_copy", "UA_ExpandedNodeId_deleteMembers", "UA_ExpandedNodeId_clear", "UA_ExpandedNodeId_delete", "UA_StatusCode_init", "UA_StatusCode_new", "UA_StatusCode_copy", "UA_StatusCode_deleteMembers", "UA_StatusCode_clear", "UA_StatusCode_delete", "UA_QualifiedName_init", "UA_QualifiedName_new", "UA_QualifiedName_copy", "UA_QualifiedName_deleteMembers", "UA_QualifiedName_clear", "UA_QualifiedName_delete", "UA_LocalizedText_init", "UA_LocalizedText_new", "UA_LocalizedText_copy", "UA_LocalizedText_deleteMembers", "UA_LocalizedText_clear", "UA_LocalizedText_delete", "UA_ExtensionObject_init", "UA_ExtensionObject_new", "UA_ExtensionObject_copy", "UA_ExtensionObject_deleteMembers", "UA_ExtensionObject_clear", "UA_ExtensionObject_delete", "UA_DataValue_init", "UA_DataValue_new", "UA_DataValue_copy", "UA_DataValue_deleteMembers", "UA_DataValue_clear", "UA_DataValue_delete", "UA_Variant_init", "UA_Variant_new", "UA_Variant_copy", "UA_Variant_deleteMembers", "UA_Variant_clear", "UA_Variant_delete", "UA_DiagnosticInfo_init", "UA_DiagnosticInfo_new", "UA_DiagnosticInfo_copy", "UA_DiagnosticInfo_deleteMembers", "UA_DiagnosticInfo_clear", "UA_DiagnosticInfo_delete", "UA_ViewAttributes_init", "UA_ViewAttributes_new", "UA_ViewAttributes_copy", "UA_ViewAttributes_deleteMembers", "UA_ViewAttributes_clear", "UA_ViewAttributes_delete", "UA_XVType_init", "UA_XVType_new", "UA_XVType_copy", "UA_XVType_deleteMembers", "UA_XVType_clear", "UA_XVType_delete", "UA_ElementOperand_init", "UA_ElementOperand_new", "UA_ElementOperand_copy", "UA_ElementOperand_deleteMembers", "UA_ElementOperand_clear", "UA_ElementOperand_delete", "UA_VariableAttributes_init", "UA_VariableAttributes_new", "UA_VariableAttributes_copy", "UA_VariableAttributes_deleteMembers", "UA_VariableAttributes_clear", "UA_VariableAttributes_delete", "UA_EnumValueType_init", "UA_EnumValueType_new", "UA_EnumValueType_copy", "UA_EnumValueType_deleteMembers", "UA_EnumValueType_clear", "UA_EnumValueType_delete", "UA_EventFieldList_init", "UA_EventFieldList_new", "UA_EventFieldList_copy", "UA_EventFieldList_deleteMembers", "UA_EventFieldList_clear", "UA_EventFieldList_delete", "UA_MonitoredItemCreateResult_init", "UA_MonitoredItemCreateResult_new", "UA_MonitoredItemCreateResult_copy", "UA_MonitoredItemCreateResult_deleteMembers", "UA_MonitoredItemCreateResult_clear", "UA_MonitoredItemCreateResult_delete", "UA_EUInformation_init", "UA_EUInformation_new", "UA_EUInformation_copy", "UA_EUInformation_deleteMembers", "UA_EUInformation_clear", "UA_EUInformation_delete", "UA_ServerDiagnosticsSummaryDataType_init", "UA_ServerDiagnosticsSummaryDataType_new", "UA_ServerDiagnosticsSummaryDataType_copy", "UA_ServerDiagnosticsSummaryDataType_deleteMembers", "UA_ServerDiagnosticsSummaryDataType_clear", "UA_ServerDiagnosticsSummaryDataType_delete", "UA_ContentFilterElementResult_init", "UA_ContentFilterElementResult_new", "UA_ContentFilterElementResult_copy", "UA_ContentFilterElementResult_deleteMembers", "UA_ContentFilterElementResult_clear", "UA_ContentFilterElementResult_delete", "UA_LiteralOperand_init", "UA_LiteralOperand_new", "UA_LiteralOperand_copy", "UA_LiteralOperand_deleteMembers", "UA_LiteralOperand_clear", "UA_LiteralOperand_delete", "UA_MessageSecurityMode_init", "UA_MessageSecurityMode_new", "UA_MessageSecurityMode_copy", "UA_MessageSecurityMode_deleteMembers", "UA_MessageSecurityMode_clear", "UA_MessageSecurityMode_delete", "UA_UtcTime_init", "UA_UtcTime_new", "UA_UtcTime_copy", "UA_UtcTime_deleteMembers", "UA_UtcTime_clear", "UA_UtcTime_delete", "UA_UserIdentityToken_init", "UA_UserIdentityToken_new", "UA_UserIdentityToken_copy", "UA_UserIdentityToken_deleteMembers", "UA_UserIdentityToken_clear", "UA_UserIdentityToken_delete", "UA_X509IdentityToken_init", "UA_X509IdentityToken_new", "UA_X509IdentityToken_copy", "UA_X509IdentityToken_deleteMembers", "UA_X509IdentityToken_clear", "UA_X509IdentityToken_delete", "UA_MonitoredItemNotification_init", "UA_MonitoredItemNotification_new", "UA_MonitoredItemNotification_copy", "UA_MonitoredItemNotification_deleteMembers", "UA_MonitoredItemNotification_clear", "UA_MonitoredItemNotification_delete", "UA_StructureType_init", "UA_StructureType_new", "UA_StructureType_copy", "UA_StructureType_deleteMembers", "UA_StructureType_clear", "UA_StructureType_delete", "UA_ResponseHeader_init", "UA_ResponseHeader_new", "UA_ResponseHeader_copy", "UA_ResponseHeader_deleteMembers", "UA_ResponseHeader_clear", "UA_ResponseHeader_delete", "UA_SignatureData_init", "UA_SignatureData_new", "UA_SignatureData_copy", "UA_SignatureData_deleteMembers", "UA_SignatureData_clear", "UA_SignatureData_delete", "UA_ModifySubscriptionResponse_init", "UA_ModifySubscriptionResponse_new", "UA_ModifySubscriptionResponse_copy", "UA_ModifySubscriptionResponse_deleteMembers", "UA_ModifySubscriptionResponse_clear", "UA_ModifySubscriptionResponse_delete", "UA_NodeAttributes_init", "UA_NodeAttributes_new", "UA_NodeAttributes_copy", "UA_NodeAttributes_deleteMembers", "UA_NodeAttributes_clear", "UA_NodeAttributes_delete", "UA_ActivateSessionResponse_init", "UA_ActivateSessionResponse_new", "UA_ActivateSessionResponse_copy", "UA_ActivateSessionResponse_deleteMembers", "UA_ActivateSessionResponse_clear", "UA_ActivateSessionResponse_delete", "UA_EnumField_init", "UA_EnumField_new", "UA_EnumField_copy", "UA_EnumField_deleteMembers", "UA_EnumField_clear", "UA_EnumField_delete", "UA_VariableTypeAttributes_init", "UA_VariableTypeAttributes_new", "UA_VariableTypeAttributes_copy", "UA_VariableTypeAttributes_deleteMembers", "UA_VariableTypeAttributes_clear", "UA_VariableTypeAttributes_delete", "UA_CallMethodResult_init", "UA_CallMethodResult_new", "UA_CallMethodResult_copy", "UA_CallMethodResult_deleteMembers", "UA_CallMethodResult_clear", "UA_CallMethodResult_delete", "UA_MonitoringMode_init", "UA_MonitoringMode_new", "UA_MonitoringMode_copy", "UA_MonitoringMode_deleteMembers", "UA_MonitoringMode_clear", "UA_MonitoringMode_delete", "UA_SetMonitoringModeResponse_init", "UA_SetMonitoringModeResponse_new", "UA_SetMonitoringModeResponse_copy", "UA_SetMonitoringModeResponse_deleteMembers", "UA_SetMonitoringModeResponse_clear", "UA_SetMonitoringModeResponse_delete", "UA_BrowseResultMask_init", "UA_BrowseResultMask_new", "UA_BrowseResultMask_copy", "UA_BrowseResultMask_deleteMembers", "UA_BrowseResultMask_clear", "UA_BrowseResultMask_delete", "UA_RequestHeader_init", "UA_RequestHeader_new", "UA_RequestHeader_copy", "UA_RequestHeader_deleteMembers", "UA_RequestHeader_clear", "UA_RequestHeader_delete", "UA_MonitoredItemModifyResult_init", "UA_MonitoredItemModifyResult_new", "UA_MonitoredItemModifyResult_copy", "UA_MonitoredItemModifyResult_deleteMembers", "UA_MonitoredItemModifyResult_clear", "UA_MonitoredItemModifyResult_delete", "UA_CloseSecureChannelRequest_init", "UA_CloseSecureChannelRequest_new", "UA_CloseSecureChannelRequest_copy", "UA_CloseSecureChannelRequest_deleteMembers", "UA_CloseSecureChannelRequest_clear", "UA_CloseSecureChannelRequest_delete", "UA_NotificationMessage_init", "UA_NotificationMessage_new", "UA_NotificationMessage_copy", "UA_NotificationMessage_deleteMembers", "UA_NotificationMessage_clear", "UA_NotificationMessage_delete", "UA_CreateSubscriptionResponse_init", "UA_CreateSubscriptionResponse_new", "UA_CreateSubscriptionResponse_copy", "UA_CreateSubscriptionResponse_deleteMembers", "UA_CreateSubscriptionResponse_clear", "UA_CreateSubscriptionResponse_delete", "UA_EnumDefinition_init", "UA_EnumDefinition_new", "UA_EnumDefinition_copy", "UA_EnumDefinition_deleteMembers", "UA_EnumDefinition_clear", "UA_EnumDefinition_delete", "UA_AxisScaleEnumeration_init", "UA_AxisScaleEnumeration_new", "UA_AxisScaleEnumeration_copy", "UA_AxisScaleEnumeration_deleteMembers", "UA_AxisScaleEnumeration_clear", "UA_AxisScaleEnumeration_delete", "UA_BrowseDirection_init", "UA_BrowseDirection_new", "UA_BrowseDirection_copy", "UA_BrowseDirection_deleteMembers", "UA_BrowseDirection_clear", "UA_BrowseDirection_delete", "UA_CallMethodRequest_init", "UA_CallMethodRequest_new", "UA_CallMethodRequest_copy", "UA_CallMethodRequest_deleteMembers", "UA_CallMethodRequest_clear", "UA_CallMethodRequest_delete", "UA_ReadResponse_init", "UA_ReadResponse_new", "UA_ReadResponse_copy", "UA_ReadResponse_deleteMembers", "UA_ReadResponse_clear", "UA_ReadResponse_delete", "UA_TimestampsToReturn_init", "UA_TimestampsToReturn_new", "UA_TimestampsToReturn_copy", "UA_TimestampsToReturn_deleteMembers", "UA_TimestampsToReturn_clear", "UA_TimestampsToReturn_delete", "UA_NodeClass_init", "UA_NodeClass_new", "UA_NodeClass_copy", "UA_NodeClass_deleteMembers", "UA_NodeClass_clear", "UA_NodeClass_delete", "UA_ObjectTypeAttributes_init", "UA_ObjectTypeAttributes_new", "UA_ObjectTypeAttributes_copy", "UA_ObjectTypeAttributes_deleteMembers", "UA_ObjectTypeAttributes_clear", "UA_ObjectTypeAttributes_delete", "UA_SecurityTokenRequestType_init", "UA_SecurityTokenRequestType_new", "UA_SecurityTokenRequestType_copy", "UA_SecurityTokenRequestType_deleteMembers", "UA_SecurityTokenRequestType_clear", "UA_SecurityTokenRequestType_delete", "UA_CloseSessionResponse_init", "UA_CloseSessionResponse_new", "UA_CloseSessionResponse_copy", "UA_CloseSessionResponse_deleteMembers", "UA_CloseSessionResponse_clear", "UA_CloseSessionResponse_delete", "UA_SetPublishingModeRequest_init", "UA_SetPublishingModeRequest_new", "UA_SetPublishingModeRequest_copy", "UA_SetPublishingModeRequest_deleteMembers", "UA_SetPublishingModeRequest_clear", "UA_SetPublishingModeRequest_delete", "UA_IssuedIdentityToken_init", "UA_IssuedIdentityToken_new", "UA_IssuedIdentityToken_copy", "UA_IssuedIdentityToken_deleteMembers", "UA_IssuedIdentityToken_clear", "UA_IssuedIdentityToken_delete", "UA_DeleteMonitoredItemsResponse_init", "UA_DeleteMonitoredItemsResponse_new", "UA_DeleteMonitoredItemsResponse_copy", "UA_DeleteMonitoredItemsResponse_deleteMembers", "UA_DeleteMonitoredItemsResponse_clear", "UA_DeleteMonitoredItemsResponse_delete", "UA_ApplicationType_init", "UA_ApplicationType_new", "UA_ApplicationType_copy", "UA_ApplicationType_deleteMembers", "UA_ApplicationType_clear", "UA_ApplicationType_delete", "UA_BrowseNextRequest_init", "UA_BrowseNextRequest_new", "UA_BrowseNextRequest_copy", "UA_BrowseNextRequest_deleteMembers", "UA_BrowseNextRequest_clear", "UA_BrowseNextRequest_delete", "UA_ModifySubscriptionRequest_init", "UA_ModifySubscriptionRequest_new", "UA_ModifySubscriptionRequest_copy", "UA_ModifySubscriptionRequest_deleteMembers", "UA_ModifySubscriptionRequest_clear", "UA_ModifySubscriptionRequest_delete", "UA_BrowseDescription_init", "UA_BrowseDescription_new", "UA_BrowseDescription_copy", "UA_BrowseDescription_deleteMembers", "UA_BrowseDescription_clear", "UA_BrowseDescription_delete", "UA_SignedSoftwareCertificate_init", "UA_SignedSoftwareCertificate_new", "UA_SignedSoftwareCertificate_copy", "UA_SignedSoftwareCertificate_deleteMembers", "UA_SignedSoftwareCertificate_clear", "UA_SignedSoftwareCertificate_delete", "UA_BrowsePathTarget_init", "UA_BrowsePathTarget_new", "UA_BrowsePathTarget_copy", "UA_BrowsePathTarget_deleteMembers", "UA_BrowsePathTarget_clear", "UA_BrowsePathTarget_delete", "UA_WriteResponse_init", "UA_WriteResponse_new", "UA_WriteResponse_copy", "UA_WriteResponse_deleteMembers", "UA_WriteResponse_clear", "UA_WriteResponse_delete", "UA_AddNodesResult_init", "UA_AddNodesResult_new", "UA_AddNodesResult_copy", "UA_AddNodesResult_deleteMembers", "UA_AddNodesResult_clear", "UA_AddNodesResult_delete", "UA_AddReferencesItem_init", "UA_AddReferencesItem_new", "UA_AddReferencesItem_copy", "UA_AddReferencesItem_deleteMembers", "UA_AddReferencesItem_clear", "UA_AddReferencesItem_delete", "UA_DeleteReferencesResponse_init", "UA_DeleteReferencesResponse_new", "UA_DeleteReferencesResponse_copy", "UA_DeleteReferencesResponse_deleteMembers", "UA_DeleteReferencesResponse_clear", "UA_DeleteReferencesResponse_delete", "UA_RelativePathElement_init", "UA_RelativePathElement_new", "UA_RelativePathElement_copy", "UA_RelativePathElement_deleteMembers", "UA_RelativePathElement_clear", "UA_RelativePathElement_delete", "UA_SubscriptionAcknowledgement_init", "UA_SubscriptionAcknowledgement_new", "UA_SubscriptionAcknowledgement_copy", "UA_SubscriptionAcknowledgement_deleteMembers", "UA_SubscriptionAcknowledgement_clear", "UA_SubscriptionAcknowledgement_delete", "UA_TransferResult_init", "UA_TransferResult_new", "UA_TransferResult_copy", "UA_TransferResult_deleteMembers", "UA_TransferResult_clear", "UA_TransferResult_delete", "UA_CreateMonitoredItemsResponse_init", "UA_CreateMonitoredItemsResponse_new", "UA_CreateMonitoredItemsResponse_copy", "UA_CreateMonitoredItemsResponse_deleteMembers", "UA_CreateMonitoredItemsResponse_clear", "UA_CreateMonitoredItemsResponse_delete", "UA_DeleteReferencesItem_init", "UA_DeleteReferencesItem_new", "UA_DeleteReferencesItem_copy", "UA_DeleteReferencesItem_deleteMembers", "UA_DeleteReferencesItem_clear", "UA_DeleteReferencesItem_delete", "UA_WriteValue_init", "UA_WriteValue_new", "UA_WriteValue_copy", "UA_WriteValue_deleteMembers", "UA_WriteValue_clear", "UA_WriteValue_delete", "UA_DataTypeAttributes_init", "UA_DataTypeAttributes_new", "UA_DataTypeAttributes_copy", "UA_DataTypeAttributes_deleteMembers", "UA_DataTypeAttributes_clear", "UA_DataTypeAttributes_delete", "UA_TransferSubscriptionsResponse_init", "UA_TransferSubscriptionsResponse_new", "UA_TransferSubscriptionsResponse_copy", "UA_TransferSubscriptionsResponse_deleteMembers", "UA_TransferSubscriptionsResponse_clear", "UA_TransferSubscriptionsResponse_delete", "UA_AddReferencesResponse_init", "UA_AddReferencesResponse_new", "UA_AddReferencesResponse_copy", "UA_AddReferencesResponse_deleteMembers", "UA_AddReferencesResponse_clear", "UA_AddReferencesResponse_delete", "UA_DeadbandType_init", "UA_DeadbandType_new", "UA_DeadbandType_copy", "UA_DeadbandType_deleteMembers", "UA_DeadbandType_clear", "UA_DeadbandType_delete", "UA_DataChangeTrigger_init", "UA_DataChangeTrigger_new", "UA_DataChangeTrigger_copy", "UA_DataChangeTrigger_deleteMembers", "UA_DataChangeTrigger_clear", "UA_DataChangeTrigger_delete", "UA_BuildInfo_init", "UA_BuildInfo_new", "UA_BuildInfo_copy", "UA_BuildInfo_deleteMembers", "UA_BuildInfo_clear", "UA_BuildInfo_delete", "UA_FilterOperand_init", "UA_FilterOperand_new", "UA_FilterOperand_copy", "UA_FilterOperand_deleteMembers", "UA_FilterOperand_clear", "UA_FilterOperand_delete", "UA_MonitoringParameters_init", "UA_MonitoringParameters_new", "UA_MonitoringParameters_copy", "UA_MonitoringParameters_deleteMembers", "UA_MonitoringParameters_clear", "UA_MonitoringParameters_delete", "UA_DoubleComplexNumberType_init", "UA_DoubleComplexNumberType_new", "UA_DoubleComplexNumberType_copy", "UA_DoubleComplexNumberType_deleteMembers", "UA_DoubleComplexNumberType_clear", "UA_DoubleComplexNumberType_delete", "UA_DeleteNodesItem_init", "UA_DeleteNodesItem_new", "UA_DeleteNodesItem_copy", "UA_DeleteNodesItem_deleteMembers", "UA_DeleteNodesItem_clear", "UA_DeleteNodesItem_delete", "UA_ReadValueId_init", "UA_ReadValueId_new", "UA_ReadValueId_copy", "UA_ReadValueId_deleteMembers", "UA_ReadValueId_clear", "UA_ReadValueId_delete", "UA_CallRequest_init", "UA_CallRequest_new", "UA_CallRequest_copy", "UA_CallRequest_deleteMembers", "UA_CallRequest_clear", "UA_CallRequest_delete", "UA_RelativePath_init", "UA_RelativePath_new", "UA_RelativePath_copy", "UA_RelativePath_deleteMembers", "UA_RelativePath_clear", "UA_RelativePath_delete", "UA_DeleteNodesRequest_init", "UA_DeleteNodesRequest_new", "UA_DeleteNodesRequest_copy", "UA_DeleteNodesRequest_deleteMembers", "UA_DeleteNodesRequest_clear", "UA_DeleteNodesRequest_delete", "UA_MonitoredItemModifyRequest_init", "UA_MonitoredItemModifyRequest_new", "UA_MonitoredItemModifyRequest_copy", "UA_MonitoredItemModifyRequest_deleteMembers", "UA_MonitoredItemModifyRequest_clear", "UA_MonitoredItemModifyRequest_delete", "UA_UserTokenType_init", "UA_UserTokenType_new", "UA_UserTokenType_copy", "UA_UserTokenType_deleteMembers", "UA_UserTokenType_clear", "UA_UserTokenType_delete", "UA_AggregateConfiguration_init", "UA_AggregateConfiguration_new", "UA_AggregateConfiguration_copy", "UA_AggregateConfiguration_deleteMembers", "UA_AggregateConfiguration_clear", "UA_AggregateConfiguration_delete", "UA_LocaleId_init", "UA_LocaleId_new", "UA_LocaleId_copy", "UA_LocaleId_deleteMembers", "UA_LocaleId_clear", "UA_LocaleId_delete", "UA_UnregisterNodesResponse_init", "UA_UnregisterNodesResponse_new", "UA_UnregisterNodesResponse_copy", "UA_UnregisterNodesResponse_deleteMembers", "UA_UnregisterNodesResponse_clear", "UA_UnregisterNodesResponse_delete", "UA_ContentFilterResult_init", "UA_ContentFilterResult_new", "UA_ContentFilterResult_copy", "UA_ContentFilterResult_deleteMembers", "UA_ContentFilterResult_clear", "UA_ContentFilterResult_delete", "UA_UserTokenPolicy_init", "UA_UserTokenPolicy_new", "UA_UserTokenPolicy_copy", "UA_UserTokenPolicy_deleteMembers", "UA_UserTokenPolicy_clear", "UA_UserTokenPolicy_delete", "UA_DeleteMonitoredItemsRequest_init", "UA_DeleteMonitoredItemsRequest_new", "UA_DeleteMonitoredItemsRequest_copy", "UA_DeleteMonitoredItemsRequest_deleteMembers", "UA_DeleteMonitoredItemsRequest_clear", "UA_DeleteMonitoredItemsRequest_delete", "UA_SetMonitoringModeRequest_init", "UA_SetMonitoringModeRequest_new", "UA_SetMonitoringModeRequest_copy", "UA_SetMonitoringModeRequest_deleteMembers", "UA_SetMonitoringModeRequest_clear", "UA_SetMonitoringModeRequest_delete", "UA_Duration_init", "UA_Duration_new", "UA_Duration_copy", "UA_Duration_deleteMembers", "UA_Duration_clear", "UA_Duration_delete", "UA_ReferenceTypeAttributes_init", "UA_ReferenceTypeAttributes_new", "UA_ReferenceTypeAttributes_copy", "UA_ReferenceTypeAttributes_deleteMembers", "UA_ReferenceTypeAttributes_clear", "UA_ReferenceTypeAttributes_delete", "UA_GetEndpointsRequest_init", "UA_GetEndpointsRequest_new", "UA_GetEndpointsRequest_copy", "UA_GetEndpointsRequest_deleteMembers", "UA_GetEndpointsRequest_clear", "UA_GetEndpointsRequest_delete", "UA_CloseSecureChannelResponse_init", "UA_CloseSecureChannelResponse_new", "UA_CloseSecureChannelResponse_copy", "UA_CloseSecureChannelResponse_deleteMembers", "UA_CloseSecureChannelResponse_clear", "UA_CloseSecureChannelResponse_delete", "UA_ViewDescription_init", "UA_ViewDescription_new", "UA_ViewDescription_copy", "UA_ViewDescription_deleteMembers", "UA_ViewDescription_clear", "UA_ViewDescription_delete", "UA_SetPublishingModeResponse_init", "UA_SetPublishingModeResponse_new", "UA_SetPublishingModeResponse_copy", "UA_SetPublishingModeResponse_deleteMembers", "UA_SetPublishingModeResponse_clear", "UA_SetPublishingModeResponse_delete", "UA_StatusChangeNotification_init", "UA_StatusChangeNotification_new", "UA_StatusChangeNotification_copy", "UA_StatusChangeNotification_deleteMembers", "UA_StatusChangeNotification_clear", "UA_StatusChangeNotification_delete", "UA_StructureField_init", "UA_StructureField_new", "UA_StructureField_copy", "UA_StructureField_deleteMembers", "UA_StructureField_clear", "UA_StructureField_delete", "UA_NodeAttributesMask_init", "UA_NodeAttributesMask_new", "UA_NodeAttributesMask_copy", "UA_NodeAttributesMask_deleteMembers", "UA_NodeAttributesMask_clear", "UA_NodeAttributesMask_delete", "UA_EventFilterResult_init", "UA_EventFilterResult_new", "UA_EventFilterResult_copy", "UA_EventFilterResult_deleteMembers", "UA_EventFilterResult_clear", "UA_EventFilterResult_delete", "UA_MonitoredItemCreateRequest_init", "UA_MonitoredItemCreateRequest_new", "UA_MonitoredItemCreateRequest_copy", "UA_MonitoredItemCreateRequest_deleteMembers", "UA_MonitoredItemCreateRequest_clear", "UA_MonitoredItemCreateRequest_delete", "UA_ComplexNumberType_init", "UA_ComplexNumberType_new", "UA_ComplexNumberType_copy", "UA_ComplexNumberType_deleteMembers", "UA_ComplexNumberType_clear", "UA_ComplexNumberType_delete", "UA_Range_init", "UA_Range_new", "UA_Range_copy", "UA_Range_deleteMembers", "UA_Range_clear", "UA_Range_delete", "UA_DataChangeNotification_init", "UA_DataChangeNotification_new", "UA_DataChangeNotification_copy", "UA_DataChangeNotification_deleteMembers", "UA_DataChangeNotification_clear", "UA_DataChangeNotification_delete", "UA_Argument_init", "UA_Argument_new", "UA_Argument_copy", "UA_Argument_deleteMembers", "UA_Argument_clear", "UA_Argument_delete", "UA_TransferSubscriptionsRequest_init", "UA_TransferSubscriptionsRequest_new", "UA_TransferSubscriptionsRequest_copy", "UA_TransferSubscriptionsRequest_deleteMembers", "UA_TransferSubscriptionsRequest_clear", "UA_TransferSubscriptionsRequest_delete", "UA_ChannelSecurityToken_init", "UA_ChannelSecurityToken_new", "UA_ChannelSecurityToken_copy", "UA_ChannelSecurityToken_deleteMembers", "UA_ChannelSecurityToken_clear", "UA_ChannelSecurityToken_delete", "UA_ServerState_init", "UA_ServerState_new", "UA_ServerState_copy", "UA_ServerState_deleteMembers", "UA_ServerState_clear", "UA_ServerState_delete", "UA_EventNotificationList_init", "UA_EventNotificationList_new", "UA_EventNotificationList_copy", "UA_EventNotificationList_deleteMembers", "UA_EventNotificationList_clear", "UA_EventNotificationList_delete", "UA_AnonymousIdentityToken_init", "UA_AnonymousIdentityToken_new", "UA_AnonymousIdentityToken_copy", "UA_AnonymousIdentityToken_deleteMembers", "UA_AnonymousIdentityToken_clear", "UA_AnonymousIdentityToken_delete", "UA_FilterOperator_init", "UA_FilterOperator_new", "UA_FilterOperator_copy", "UA_FilterOperator_deleteMembers", "UA_FilterOperator_clear", "UA_FilterOperator_delete", "UA_AggregateFilter_init", "UA_AggregateFilter_new", "UA_AggregateFilter_copy", "UA_AggregateFilter_deleteMembers", "UA_AggregateFilter_clear", "UA_AggregateFilter_delete", "UA_RepublishResponse_init", "UA_RepublishResponse_new", "UA_RepublishResponse_copy", "UA_RepublishResponse_deleteMembers", "UA_RepublishResponse_clear", "UA_RepublishResponse_delete", "UA_DeleteSubscriptionsResponse_init", "UA_DeleteSubscriptionsResponse_new", "UA_DeleteSubscriptionsResponse_copy", "UA_DeleteSubscriptionsResponse_deleteMembers", "UA_DeleteSubscriptionsResponse_clear", "UA_DeleteSubscriptionsResponse_delete", "UA_RegisterNodesRequest_init", "UA_RegisterNodesRequest_new", "UA_RegisterNodesRequest_copy", "UA_RegisterNodesRequest_deleteMembers", "UA_RegisterNodesRequest_clear", "UA_RegisterNodesRequest_delete", "UA_StructureDefinition_init", "UA_StructureDefinition_new", "UA_StructureDefinition_copy", "UA_StructureDefinition_deleteMembers", "UA_StructureDefinition_clear", "UA_StructureDefinition_delete", "UA_MethodAttributes_init", "UA_MethodAttributes_new", "UA_MethodAttributes_copy", "UA_MethodAttributes_deleteMembers", "UA_MethodAttributes_clear", "UA_MethodAttributes_delete", "UA_UserNameIdentityToken_init", "UA_UserNameIdentityToken_new", "UA_UserNameIdentityToken_copy", "UA_UserNameIdentityToken_deleteMembers", "UA_UserNameIdentityToken_clear", "UA_UserNameIdentityToken_delete", "UA_UnregisterNodesRequest_init", "UA_UnregisterNodesRequest_new", "UA_UnregisterNodesRequest_copy", "UA_UnregisterNodesRequest_deleteMembers", "UA_UnregisterNodesRequest_clear", "UA_UnregisterNodesRequest_delete", "UA_OpenSecureChannelResponse_init", "UA_OpenSecureChannelResponse_new", "UA_OpenSecureChannelResponse_copy", "UA_OpenSecureChannelResponse_deleteMembers", "UA_OpenSecureChannelResponse_clear", "UA_OpenSecureChannelResponse_delete", "UA_SetTriggeringResponse_init", "UA_SetTriggeringResponse_new", "UA_SetTriggeringResponse_copy", "UA_SetTriggeringResponse_deleteMembers", "UA_SetTriggeringResponse_clear", "UA_SetTriggeringResponse_delete", "UA_SimpleAttributeOperand_init", "UA_SimpleAttributeOperand_new", "UA_SimpleAttributeOperand_copy", "UA_SimpleAttributeOperand_deleteMembers", "UA_SimpleAttributeOperand_clear", "UA_SimpleAttributeOperand_delete", "UA_RepublishRequest_init", "UA_RepublishRequest_new", "UA_RepublishRequest_copy", "UA_RepublishRequest_deleteMembers", "UA_RepublishRequest_clear", "UA_RepublishRequest_delete", "UA_RegisterNodesResponse_init", "UA_RegisterNodesResponse_new", "UA_RegisterNodesResponse_copy", "UA_RegisterNodesResponse_deleteMembers", "UA_RegisterNodesResponse_clear", "UA_RegisterNodesResponse_delete", "UA_ModifyMonitoredItemsResponse_init", "UA_ModifyMonitoredItemsResponse_new", "UA_ModifyMonitoredItemsResponse_copy", "UA_ModifyMonitoredItemsResponse_deleteMembers", "UA_ModifyMonitoredItemsResponse_clear", "UA_ModifyMonitoredItemsResponse_delete", "UA_DeleteSubscriptionsRequest_init", "UA_DeleteSubscriptionsRequest_new", "UA_DeleteSubscriptionsRequest_copy", "UA_DeleteSubscriptionsRequest_deleteMembers", "UA_DeleteSubscriptionsRequest_clear", "UA_DeleteSubscriptionsRequest_delete", "UA_RedundancySupport_init", "UA_RedundancySupport_new", "UA_RedundancySupport_copy", "UA_RedundancySupport_deleteMembers", "UA_RedundancySupport_clear", "UA_RedundancySupport_delete", "UA_BrowsePath_init", "UA_BrowsePath_new", "UA_BrowsePath_copy", "UA_BrowsePath_deleteMembers", "UA_BrowsePath_clear", "UA_BrowsePath_delete", "UA_ObjectAttributes_init", "UA_ObjectAttributes_new", "UA_ObjectAttributes_copy", "UA_ObjectAttributes_deleteMembers", "UA_ObjectAttributes_clear", "UA_ObjectAttributes_delete", "UA_PublishRequest_init", "UA_PublishRequest_new", "UA_PublishRequest_copy", "UA_PublishRequest_deleteMembers", "UA_PublishRequest_clear", "UA_PublishRequest_delete", "UA_FindServersRequest_init", "UA_FindServersRequest_new", "UA_FindServersRequest_copy", "UA_FindServersRequest_deleteMembers", "UA_FindServersRequest_clear", "UA_FindServersRequest_delete", "UA_ReferenceDescription_init", "UA_ReferenceDescription_new", "UA_ReferenceDescription_copy", "UA_ReferenceDescription_deleteMembers", "UA_ReferenceDescription_clear", "UA_ReferenceDescription_delete", "UA_CreateSubscriptionRequest_init", "UA_CreateSubscriptionRequest_new", "UA_CreateSubscriptionRequest_copy", "UA_CreateSubscriptionRequest_deleteMembers", "UA_CreateSubscriptionRequest_clear", "UA_CreateSubscriptionRequest_delete", "UA_CallResponse_init", "UA_CallResponse_new", "UA_CallResponse_copy", "UA_CallResponse_deleteMembers", "UA_CallResponse_clear", "UA_CallResponse_delete", "UA_DeleteNodesResponse_init", "UA_DeleteNodesResponse_new", "UA_DeleteNodesResponse_copy", "UA_DeleteNodesResponse_deleteMembers", "UA_DeleteNodesResponse_clear", "UA_DeleteNodesResponse_delete", "UA_ModifyMonitoredItemsRequest_init", "UA_ModifyMonitoredItemsRequest_new", "UA_ModifyMonitoredItemsRequest_copy", "UA_ModifyMonitoredItemsRequest_deleteMembers", "UA_ModifyMonitoredItemsRequest_clear", "UA_ModifyMonitoredItemsRequest_delete", "UA_ServiceFault_init", "UA_ServiceFault_new", "UA_ServiceFault_copy", "UA_ServiceFault_deleteMembers", "UA_ServiceFault_clear", "UA_ServiceFault_delete", "UA_PublishResponse_init", "UA_PublishResponse_new", "UA_PublishResponse_copy", "UA_PublishResponse_deleteMembers", "UA_PublishResponse_clear", "UA_PublishResponse_delete", "UA_CreateMonitoredItemsRequest_init", "UA_CreateMonitoredItemsRequest_new", "UA_CreateMonitoredItemsRequest_copy", "UA_CreateMonitoredItemsRequest_deleteMembers", "UA_CreateMonitoredItemsRequest_clear", "UA_CreateMonitoredItemsRequest_delete", "UA_OpenSecureChannelRequest_init", "UA_OpenSecureChannelRequest_new", "UA_OpenSecureChannelRequest_copy", "UA_OpenSecureChannelRequest_deleteMembers", "UA_OpenSecureChannelRequest_clear", "UA_OpenSecureChannelRequest_delete", "UA_CloseSessionRequest_init", "UA_CloseSessionRequest_new", "UA_CloseSessionRequest_copy", "UA_CloseSessionRequest_deleteMembers", "UA_CloseSessionRequest_clear", "UA_CloseSessionRequest_delete", "UA_SetTriggeringRequest_init", "UA_SetTriggeringRequest_new", "UA_SetTriggeringRequest_copy", "UA_SetTriggeringRequest_deleteMembers", "UA_SetTriggeringRequest_clear", "UA_SetTriggeringRequest_delete", "UA_BrowseResult_init", "UA_BrowseResult_new", "UA_BrowseResult_copy", "UA_BrowseResult_deleteMembers", "UA_BrowseResult_clear", "UA_BrowseResult_delete", "UA_AddReferencesRequest_init", "UA_AddReferencesRequest_new", "UA_AddReferencesRequest_copy", "UA_AddReferencesRequest_deleteMembers", "UA_AddReferencesRequest_clear", "UA_AddReferencesRequest_delete", "UA_AddNodesItem_init", "UA_AddNodesItem_new", "UA_AddNodesItem_copy", "UA_AddNodesItem_deleteMembers", "UA_AddNodesItem_clear", "UA_AddNodesItem_delete", "UA_ServerStatusDataType_init", "UA_ServerStatusDataType_new", "UA_ServerStatusDataType_copy", "UA_ServerStatusDataType_deleteMembers", "UA_ServerStatusDataType_clear", "UA_ServerStatusDataType_delete", "UA_BrowseNextResponse_init", "UA_BrowseNextResponse_new", "UA_BrowseNextResponse_copy", "UA_BrowseNextResponse_deleteMembers", "UA_BrowseNextResponse_clear", "UA_BrowseNextResponse_delete", "UA_AxisInformation_init", "UA_AxisInformation_new", "UA_AxisInformation_copy", "UA_AxisInformation_deleteMembers", "UA_AxisInformation_clear", "UA_AxisInformation_delete", "UA_ApplicationDescription_init", "UA_ApplicationDescription_new", "UA_ApplicationDescription_copy", "UA_ApplicationDescription_deleteMembers", "UA_ApplicationDescription_clear", "UA_ApplicationDescription_delete", "UA_ReadRequest_init", "UA_ReadRequest_new", "UA_ReadRequest_copy", "UA_ReadRequest_deleteMembers", "UA_ReadRequest_clear", "UA_ReadRequest_delete", "UA_ActivateSessionRequest_init", "UA_ActivateSessionRequest_new", "UA_ActivateSessionRequest_copy", "UA_ActivateSessionRequest_deleteMembers", "UA_ActivateSessionRequest_clear", "UA_ActivateSessionRequest_delete", "UA_BrowsePathResult_init", "UA_BrowsePathResult_new", "UA_BrowsePathResult_copy", "UA_BrowsePathResult_deleteMembers", "UA_BrowsePathResult_clear", "UA_BrowsePathResult_delete", "UA_AddNodesRequest_init", "UA_AddNodesRequest_new", "UA_AddNodesRequest_copy", "UA_AddNodesRequest_deleteMembers", "UA_AddNodesRequest_clear", "UA_AddNodesRequest_delete", "UA_BrowseRequest_init", "UA_BrowseRequest_new", "UA_BrowseRequest_copy", "UA_BrowseRequest_deleteMembers", "UA_BrowseRequest_clear", "UA_BrowseRequest_delete", "UA_WriteRequest_init", "UA_WriteRequest_new", "UA_WriteRequest_copy", "UA_WriteRequest_deleteMembers", "UA_WriteRequest_clear", "UA_WriteRequest_delete", "UA_AddNodesResponse_init", "UA_AddNodesResponse_new", "UA_AddNodesResponse_copy", "UA_AddNodesResponse_deleteMembers", "UA_AddNodesResponse_clear", "UA_AddNodesResponse_delete", "UA_AttributeOperand_init", "UA_AttributeOperand_new", "UA_AttributeOperand_copy", "UA_AttributeOperand_deleteMembers", "UA_AttributeOperand_clear", "UA_AttributeOperand_delete", "UA_DataChangeFilter_init", "UA_DataChangeFilter_new", "UA_DataChangeFilter_copy", "UA_DataChangeFilter_deleteMembers", "UA_DataChangeFilter_clear", "UA_DataChangeFilter_delete", "UA_EndpointDescription_init", "UA_EndpointDescription_new", "UA_EndpointDescription_copy", "UA_EndpointDescription_deleteMembers", "UA_EndpointDescription_clear", "UA_EndpointDescription_delete", "UA_DeleteReferencesRequest_init", "UA_DeleteReferencesRequest_new", "UA_DeleteReferencesRequest_copy", "UA_DeleteReferencesRequest_deleteMembers", "UA_DeleteReferencesRequest_clear", "UA_DeleteReferencesRequest_delete", "UA_TranslateBrowsePathsToNodeIdsRequest_init", "UA_TranslateBrowsePathsToNodeIdsRequest_new", "UA_TranslateBrowsePathsToNodeIdsRequest_copy", "UA_TranslateBrowsePathsToNodeIdsRequest_deleteMembers", "UA_TranslateBrowsePathsToNodeIdsRequest_clear", "UA_TranslateBrowsePathsToNodeIdsRequest_delete", "UA_FindServersResponse_init", "UA_FindServersResponse_new", "UA_FindServersResponse_copy", "UA_FindServersResponse_deleteMembers", "UA_FindServersResponse_clear", "UA_FindServersResponse_delete", "UA_CreateSessionRequest_init", "UA_CreateSessionRequest_new", "UA_CreateSessionRequest_copy", "UA_CreateSessionRequest_deleteMembers", "UA_CreateSessionRequest_clear", "UA_CreateSessionRequest_delete", "UA_ContentFilterElement_init", "UA_ContentFilterElement_new", "UA_ContentFilterElement_copy", "UA_ContentFilterElement_deleteMembers", "UA_ContentFilterElement_clear", "UA_ContentFilterElement_delete", "UA_TranslateBrowsePathsToNodeIdsResponse_init", "UA_TranslateBrowsePathsToNodeIdsResponse_new", "UA_TranslateBrowsePathsToNodeIdsResponse_copy", "UA_TranslateBrowsePathsToNodeIdsResponse_deleteMembers", "UA_TranslateBrowsePathsToNodeIdsResponse_clear", "UA_TranslateBrowsePathsToNodeIdsResponse_delete", "UA_BrowseResponse_init", "UA_BrowseResponse_new", "UA_BrowseResponse_copy", "UA_BrowseResponse_deleteMembers", "UA_BrowseResponse_clear", "UA_BrowseResponse_delete", "UA_CreateSessionResponse_init", "UA_CreateSessionResponse_new", "UA_CreateSessionResponse_copy", "UA_CreateSessionResponse_deleteMembers", "UA_CreateSessionResponse_clear", "UA_CreateSessionResponse_delete", "UA_ContentFilter_init", "UA_ContentFilter_new", "UA_ContentFilter_copy", "UA_ContentFilter_deleteMembers", "UA_ContentFilter_clear", "UA_ContentFilter_delete", "UA_GetEndpointsResponse_init", "UA_GetEndpointsResponse_new", "UA_GetEndpointsResponse_copy", "UA_GetEndpointsResponse_deleteMembers", "UA_GetEndpointsResponse_clear", "UA_GetEndpointsResponse_delete", "UA_EventFilter_init", "UA_EventFilter_new", "UA_EventFilter_copy", "UA_EventFilter_deleteMembers", "UA_EventFilter_clear", "UA_EventFilter_delete", "UA_ByteString_toBase64String", "UA_NodeId_toString", "UA_constantTimeEqual", "UA_FORMAT", "UA_FORMAT", "UA_FORMAT", "UA_FORMAT", "UA_FORMAT", "UA_FORMAT", "UA_ReferenceTypeSet_init", "UA_ReferenceTypeSet_any", "UA_REFTYPESET", "UA_ReferenceTypeSet_union", "UA_ReferenceTypeSet_contains", "UA_ServerConfig_setCustomHostname", "UA_Server_readNodeId", "UA_Server_readNodeClass", "UA_Server_readBrowseName", "UA_Server_readDisplayName", "UA_Server_readDescription", "UA_Server_readWriteMask", "UA_Server_readIsAbstract", "UA_Server_readSymmetric", "UA_Server_readInverseName", "UA_Server_readContainsNoLoops", "UA_Server_readEventNotifier", "UA_Server_readValue", "UA_Server_readDataType", "UA_Server_readValueRank", "UA_Server_readArrayDimensions", "UA_Server_readAccessLevel", "UA_Server_readMinimumSamplingInterval", "UA_Server_readHistorizing", "UA_Server_readExecutable", "UA_Server_writeBrowseName", "UA_Server_writeDisplayName", "UA_Server_writeDescription", "UA_Server_writeWriteMask", "UA_Server_writeIsAbstract", "UA_Server_writeInverseName", "UA_Server_writeEventNotifier", "UA_Server_writeValue", "UA_Server_writeDataValue", "UA_Server_writeDataType", "UA_Server_writeValueRank", "UA_Server_writeArrayDimensions", "UA_Server_writeAccessLevel", "UA_Server_writeMinimumSamplingInterval", "UA_Server_writeHistorizing", "UA_Server_writeExecutable", "UA_Server_addVariableNode", "UA_Server_addVariableTypeNode", "UA_Server_addObjectNode", "UA_Server_addObjectTypeNode", "UA_Server_addViewNode", "UA_Server_addReferenceTypeNode", "UA_Server_addDataTypeNode", "UA_Server_addMethodNode", "UA_Client_getContext", "UA_Client_connectUsername", "UA_Client_Service_read", "UA_Client_Service_write", "UA_Client_Service_historyRead", "UA_Client_Service_historyUpdate", "UA_Client_Service_call", "UA_Client_Service_addNodes", "UA_Client_Service_addReferences", "UA_Client_Service_deleteNodes", "UA_Client_Service_deleteReferences", "UA_Client_Service_browse", "UA_Client_Service_browseNext", "UA_Client_Service_translateBrowsePathsToNodeIds", "UA_Client_Service_registerNodes", "UA_Client_Service_unregisterNodes", "UA_Client_Service_queryFirst", "UA_Client_Service_queryNext", "UA_Client_readNodeIdAttribute", "UA_Client_readNodeClassAttribute", "UA_Client_readBrowseNameAttribute", "UA_Client_readDisplayNameAttribute", "UA_Client_readDescriptionAttribute", "UA_Client_readWriteMaskAttribute", "UA_Client_readUserWriteMaskAttribute", "UA_Client_readIsAbstractAttribute", "UA_Client_readSymmetricAttribute", "UA_Client_readInverseNameAttribute", "UA_Client_readContainsNoLoopsAttribute", "UA_Client_readEventNotifierAttribute", "UA_Client_readValueAttribute", "UA_Client_readDataTypeAttribute", "UA_Client_readValueRankAttribute", "UA_Client_readAccessLevelAttribute", "UA_Client_readUserAccessLevelAttribute", "UA_Client_readMinimumSamplingIntervalAttribute", "UA_Client_readHistorizingAttribute", "UA_Client_readExecutableAttribute", "UA_Client_readUserExecutableAttribute", "UA_Client_writeNodeIdAttribute", "UA_Client_writeNodeClassAttribute", "UA_Client_writeBrowseNameAttribute", "UA_Client_writeDisplayNameAttribute", "UA_Client_writeDescriptionAttribute", "UA_Client_writeWriteMaskAttribute", "UA_Client_writeUserWriteMaskAttribute", "UA_Client_writeIsAbstractAttribute", "UA_Client_writeSymmetricAttribute", "UA_Client_writeInverseNameAttribute", "UA_Client_writeContainsNoLoopsAttribute", "UA_Client_writeEventNotifierAttribute", "UA_Client_writeValueAttribute", "UA_Client_writeDataTypeAttribute", "UA_Client_writeValueRankAttribute", "UA_Client_writeAccessLevelAttribute", "UA_Client_writeUserAccessLevelAttribute", "UA_Client_writeMinimumSamplingIntervalAttribute", "UA_Client_writeHistorizingAttribute", "UA_Client_writeExecutableAttribute", "UA_Client_writeUserExecutableAttribute", "UA_Client_addVariableNode", "UA_Client_addVariableTypeNode", "UA_Client_addObjectNode", "UA_Client_addObjectTypeNode", "UA_Client_addViewNode", "UA_Client_addReferenceTypeNode", "UA_Client_addDataTypeNode", "UA_Client_addMethodNode", "UA_CreateSubscriptionRequest_default", "UA_Client_Subscriptions_setPublishingMode", "UA_MonitoredItemCreateRequest_default", "UA_Client_MonitoredItems_setMonitoringMode", "UA_Client_MonitoredItems_setTriggering", "UA_Client_MonitoredItems_modify_async", "UA_Client_MonitoredItems_setMonitoringMode_async", "UA_Client_MonitoredItems_setTriggering_async", "UA_Client_sendAsyncReadRequest", "UA_Client_sendAsyncWriteRequest", "UA_Client_sendAsyncBrowseRequest", "UA_Client_readDataTypeAttribute_async", "UA_Client_readValueAttribute_async", "UA_Client_readNodeIdAttribute_async", "UA_Client_readNodeClassAttribute_async", "UA_Client_readBrowseNameAttribute_async", "UA_Client_readDisplayNameAttribute_async", "UA_Client_readDescriptionAttribute_async", "UA_Client_readWriteMaskAttribute_async", "UA_Client_readUserWriteMaskAttribute_async", "UA_Client_readIsAbstractAttribute_async", "UA_Client_readSymmetricAttribute_async", "UA_Client_readInverseNameAttribute_async", "UA_Client_readContainsNoLoopsAttribute_async", "UA_Client_readEventNotifierAttribute_async", "UA_Client_readValueRankAttribute_async", "UA_Client_readAccessLevelAttribute_async", "UA_Client_readUserAccessLevelAttribute_async", "UA_Client_readMinimumSamplingIntervalAttribute_async", "UA_Client_readHistorizingAttribute_async", "UA_Client_readExecutableAttribute_async", "UA_Client_readUserExecutableAttribute_async", "UA_Client_writeValueAttribute_async", "UA_Client_writeNodeIdAttribute_async", "UA_Client_writeNodeClassAttribute_async", "UA_Client_writeBrowseNameAttribute_async", "UA_Client_writeDisplayNameAttribute_async", "UA_Client_writeDescriptionAttribute_async", "UA_Client_writeWriteMaskAttribute_async", "UA_Client_writeUserWriteMaskAttribute_async", "UA_Client_writeIsAbstractAttribute_async", "UA_Client_writeSymmetricAttribute_async", "UA_Client_writeInverseNameAttribute_async", "UA_Client_writeContainsNoLoopsAttribute_async", "UA_Client_writeEventNotifierAttribute_async", "UA_Client_writeDataTypeAttribute_async", "UA_Client_writeValueRankAttribute_async", "UA_Client_writeAccessLevelAttribute_async", "UA_Client_writeUserAccessLevelAttribute_async", "UA_Client_writeMinimumSamplingIntervalAttribute_async", "UA_Client_writeHistorizingAttribute_async", "UA_Client_writeExecutableAttribute_async", "UA_Client_writeUserExecutableAttribute_async", "UA_Client_call_async", "UA_Client_addVariableNode_async", "UA_Client_addVariableTypeNode_async", "UA_Client_addObjectNode_async", "UA_Client_addObjectTypeNode_async", "UA_Client_addViewNode_async", "UA_Client_addReferenceTypeNode_async", "UA_Client_addDataTypeNode_async", "UA_Client_addMethodNode_async", "UA_ServerConfig_setMinimal", "UA_ServerConfig_setDefault"]

# UA_Client_ functions data
const attributes_UA_Client_Service = Vector{Union{Nothing, SubString{String}}}[["UA_Client_Service_read", "read"], ["UA_Client_Service_write", "write"], ["UA_Client_Service_historyRead", "historyRead"], ["UA_Client_Service_historyUpdate", "historyUpdate"], ["UA_Client_Service_call", "call"], ["UA_Client_Service_addNodes", "addNodes"], ["UA_Client_Service_addReferences", "addReferences"], ["UA_Client_Service_deleteNodes", "deleteNodes"], ["UA_Client_Service_deleteReferences", "deleteReferences"], ["UA_Client_Service_browse", "browse"], ["UA_Client_Service_browseNext", "browseNext"], ["UA_Client_Service_translateBrowsePathsToNodeIds", "translateBrowsePathsToNodeIds"], ["UA_Client_Service_registerNodes", "registerNodes"], ["UA_Client_Service_unregisterNodes", "unregisterNodes"], ["UA_Client_Service_queryFirst", "queryFirst"], ["UA_Client_Service_queryNext", "queryNext"]]

const attributes_UA_Client_read = Vector{Union{Nothing, SubString{String}}}[["UA_Client_readNodeIdAttribute", "NodeId", "UA_NodeId"], ["UA_Client_readNodeClassAttribute", "NodeClass", "UA_NodeClass"], ["UA_Client_readBrowseNameAttribute", "BrowseName", "UA_QualifiedName"], ["UA_Client_readDisplayNameAttribute", "DisplayName", "UA_LocalizedText"], ["UA_Client_readDescriptionAttribute", "Description", "UA_LocalizedText"], ["UA_Client_readWriteMaskAttribute", "WriteMask", "UA_UInt32"], ["UA_Client_readUserWriteMaskAttribute", "UserWriteMask", "UA_UInt32"], ["UA_Client_readIsAbstractAttribute", "IsAbstract", "UA_Boolean"], ["UA_Client_readSymmetricAttribute", "Symmetric", "UA_Boolean"], ["UA_Client_readInverseNameAttribute", "InverseName", "UA_LocalizedText"], ["UA_Client_readContainsNoLoopsAttribute", "ContainsNoLoops", "UA_Boolean"], ["UA_Client_readEventNotifierAttribute", "EventNotifier", "UA_Byte"], ["UA_Client_readValueAttribute", "Value", "UA_Variant"], ["UA_Client_readDataTypeAttribute", "DataType", "UA_NodeId"], ["UA_Client_readValueRankAttribute", "ValueRank", "UA_Int32"], ["UA_Client_readAccessLevelAttribute", "AccessLevel", "UA_Byte"], ["UA_Client_readUserAccessLevelAttribute", "UserAccessLevel", "UA_Byte"], ["UA_Client_readMinimumSamplingIntervalAttribute", "MinimumSamplingInterval", "UA_Double"], ["UA_Client_readHistorizingAttribute", "Historizing", "UA_Boolean"], ["UA_Client_readExecutableAttribute", "Executable", "UA_Boolean"], ["UA_Client_readUserExecutableAttribute", "UserExecutable", "UA_Boolean"]]

const attributes_UA_Client_write = Vector{Union{Nothing, SubString{String}}}[["UA_Client_writeNodeIdAttribute", "NodeId", "UA_NodeId"], ["UA_Client_writeNodeClassAttribute", "NodeClass", "UA_NodeClass"], ["UA_Client_writeBrowseNameAttribute", "BrowseName", "UA_QualifiedName"], ["UA_Client_writeDisplayNameAttribute", "DisplayName", "UA_LocalizedText"], ["UA_Client_writeDescriptionAttribute", "Description", "UA_LocalizedText"], ["UA_Client_writeWriteMaskAttribute", "WriteMask", "UA_UInt32"], ["UA_Client_writeUserWriteMaskAttribute", "UserWriteMask", "UA_UInt32"], ["UA_Client_writeIsAbstractAttribute", "IsAbstract", "UA_Boolean"], ["UA_Client_writeSymmetricAttribute", "Symmetric", "UA_Boolean"], ["UA_Client_writeInverseNameAttribute", "InverseName", "UA_LocalizedText"], ["UA_Client_writeContainsNoLoopsAttribute", "ContainsNoLoops", "UA_Boolean"], ["UA_Client_writeEventNotifierAttribute", "EventNotifier", "UA_Byte"], ["UA_Client_writeValueAttribute", "Value", "UA_Variant"], ["UA_Client_writeDataTypeAttribute", "DataType", "UA_NodeId"], ["UA_Client_writeValueRankAttribute", "ValueRank", "UA_Int32"], ["UA_Client_writeAccessLevelAttribute", "AccessLevel", "UA_Byte"], ["UA_Client_writeUserAccessLevelAttribute", "UserAccessLevel", "UA_Byte"], ["UA_Client_writeMinimumSamplingIntervalAttribute", "MinimumSamplingInterval", "UA_Double"], ["UA_Client_writeHistorizingAttribute", "Historizing", "UA_Boolean"], ["UA_Client_writeExecutableAttribute", "Executable", "UA_Boolean"], ["UA_Client_writeUserExecutableAttribute", "UserExecutable", "UA_Boolean"]]

const attributes_UA_Client_read_async = Vector{Union{Nothing, SubString{String}}}[["UA_Client_readDataTypeAttribute_async", "DataType", "UA_TYPES_NODEID"], ["UA_Client_readValueAttribute_async", "Value", "UA_TYPES_VARIANT"], ["UA_Client_readNodeIdAttribute_async", "NodeId", "UA_TYPES_NODEID"], ["UA_Client_readNodeClassAttribute_async", "NodeClass", "UA_TYPES_NODECLASS"], ["UA_Client_readBrowseNameAttribute_async", "BrowseName", "UA_TYPES_QUALIFIEDNAME"], ["UA_Client_readDisplayNameAttribute_async", "DisplayName", "UA_TYPES_LOCALIZEDTEXT"], ["UA_Client_readDescriptionAttribute_async", "Description", "UA_TYPES_LOCALIZEDTEXT"], ["UA_Client_readWriteMaskAttribute_async", "WriteMask", "UA_TYPES_UINT32"], ["UA_Client_readUserWriteMaskAttribute_async", "UserWriteMask", "UA_TYPES_UINT32"], ["UA_Client_readIsAbstractAttribute_async", "IsAbstract", "UA_TYPES_BOOLEAN"], ["UA_Client_readSymmetricAttribute_async", "Symmetric", "UA_TYPES_BOOLEAN"], ["UA_Client_readInverseNameAttribute_async", "InverseName", "UA_TYPES_LOCALIZEDTEXT"], ["UA_Client_readContainsNoLoopsAttribute_async", "ContainsNoLoops", "UA_TYPES_BOOLEAN"], ["UA_Client_readEventNotifierAttribute_async", "EventNotifier", "UA_TYPES_BYTE"], ["UA_Client_readValueRankAttribute_async", "ValueRank", "UA_TYPES_INT32"], ["UA_Client_readAccessLevelAttribute_async", "AccessLevel", "UA_TYPES_BYTE"], ["UA_Client_readUserAccessLevelAttribute_async", "UserAccessLevel", "UA_TYPES_BYTE"], ["UA_Client_readMinimumSamplingIntervalAttribute_async", "MinimumSamplingInterval", "UA_TYPES_DOUBLE"], ["UA_Client_readHistorizingAttribute_async", "Historizing", "UA_TYPES_BOOLEAN"], ["UA_Client_readExecutableAttribute_async", "Executable", "UA_TYPES_BOOLEAN"], ["UA_Client_readUserExecutableAttribute_async", "UserExecutable", "UA_TYPES_BOOLEAN"]]

const attributes_UA_Client_write_async = Vector{Union{Nothing, SubString{String}}}[["UA_Client_writeValueAttribute_async", "Value", "UA_Variant"], ["UA_Client_writeNodeIdAttribute_async", "NodeId", "UA_NodeId"], ["UA_Client_writeNodeClassAttribute_async", "NodeClass", "UA_NodeClass"], ["UA_Client_writeBrowseNameAttribute_async", "BrowseName", "UA_QualifiedName"], ["UA_Client_writeDisplayNameAttribute_async", "DisplayName", "UA_LocalizedText"], ["UA_Client_writeDescriptionAttribute_async", "Description", "UA_LocalizedText"], ["UA_Client_writeWriteMaskAttribute_async", "WriteMask", "UA_UInt32"], ["UA_Client_writeUserWriteMaskAttribute_async", "UserWriteMask", "UA_UInt32"], ["UA_Client_writeIsAbstractAttribute_async", "IsAbstract", "UA_Boolean"], ["UA_Client_writeSymmetricAttribute_async", "Symmetric", "UA_Boolean"], ["UA_Client_writeInverseNameAttribute_async", "InverseName", "UA_LocalizedText"], ["UA_Client_writeContainsNoLoopsAttribute_async", "ContainsNoLoops", "UA_Boolean"], ["UA_Client_writeEventNotifierAttribute_async", "EventNotifier", "UA_Byte"], ["UA_Client_writeDataTypeAttribute_async", "DataType", "UA_NodeId"], ["UA_Client_writeValueRankAttribute_async", "ValueRank", "UA_Int32"], ["UA_Client_writeAccessLevelAttribute_async", "AccessLevel", "UA_Byte"], ["UA_Client_writeUserAccessLevelAttribute_async", "UserAccessLevel", "UA_Byte"], ["UA_Client_writeHistorizingAttribute_async", "Historizing", "UA_Boolean"], ["UA_Client_writeExecutableAttribute_async", "Executable", "UA_Boolean"], ["UA_Client_writeUserExecutableAttribute_async", "UserExecutable", "UA_Boolean"]]

# UA_Server_ functions data
const attributes_UA_Server_read = Vector{Union{Nothing, SubString{String}}}[["UA_Server_readNodeId", "NodeId", "UA_NodeId"], ["UA_Server_readNodeClass", "NodeClass", "UA_NodeClass"], ["UA_Server_readBrowseName", "BrowseName", "UA_QualifiedName"], ["UA_Server_readDisplayName", "DisplayName", "UA_LocalizedText"], ["UA_Server_readDescription", "Description", "UA_LocalizedText"], ["UA_Server_readWriteMask", "WriteMask", "UA_UInt32"], ["UA_Server_readIsAbstract", "IsAbstract", "UA_Boolean"], ["UA_Server_readSymmetric", "Symmetric", "UA_Boolean"], ["UA_Server_readInverseName", "InverseName", "UA_LocalizedText"], ["UA_Server_readContainsNoLoops", "ContainsNoLoops", "UA_Boolean"], ["UA_Server_readEventNotifier", "EventNotifier", "UA_Byte"], ["UA_Server_readValue", "Value", "UA_Variant"], ["UA_Server_readDataType", "DataType", "UA_NodeId"], ["UA_Server_readValueRank", "ValueRank", "UA_Int32"], ["UA_Server_readArrayDimensions", "ArrayDimensions", "UA_Variant"], ["UA_Server_readAccessLevel", "AccessLevel", "UA_Byte"], ["UA_Server_readMinimumSamplingInterval", "MinimumSamplingInterval", "UA_Double"], ["UA_Server_readHistorizing", "Historizing", "UA_Boolean"], ["UA_Server_readExecutable", "Executable", "UA_Boolean"]]

const attributes_UA_Server_write = Vector{Union{Nothing, SubString{String}}}[["UA_Server_writeBrowseName", "BrowseName", "UA_QualifiedName"], ["UA_Server_writeDisplayName", "DisplayName", "UA_LocalizedText"], ["UA_Server_writeDescription", "Description", "UA_LocalizedText"], ["UA_Server_writeWriteMask", "WriteMask", "UA_UInt32"], ["UA_Server_writeIsAbstract", "IsAbstract", "UA_Boolean"], ["UA_Server_writeInverseName", "InverseName", "UA_LocalizedText"], ["UA_Server_writeEventNotifier", "EventNotifier", "UA_Byte"], ["UA_Server_writeValue", "Value", "UA_Variant"], ["UA_Server_writeDataValue", "DataValue", "UA_DataValue"], ["UA_Server_writeDataType", "DataType", "UA_NodeId"], ["UA_Server_writeValueRank", "ValueRank", "UA_Int32"], ["UA_Server_writeArrayDimensions", "ArrayDimensions", "UA_Variant"], ["UA_Server_writeAccessLevel", "AccessLevel", "UA_Byte"], ["UA_Server_writeMinimumSamplingInterval", "MinimumSamplingInterval", "UA_Double"], ["UA_Server_writeHistorizing", "Historizing", "UA_Boolean"], ["UA_Server_writeExecutable", "Executable", "UA_Boolean"]]