#=

 Unit tests from FI_LIB version 1.2
 (Original authors: Werner Hofschuster and Walter Kraemer)
 converted into portable ITL format by Oliver Heimlich.

 Copyright 1997-2000 Institut fuer Wissenschaftliches Rechnen
                     und Mathematische Modellbildung (IWRMM)
                                      and
                     Institut fuer Angewandte Mathematik
                     Universitaet Karlsruhe, Germany
 Copyright 2000-2005 Wiss. Rechnen/Softwaretechnologie
                     Universitaet Wuppertal, Germany
 Copyright 2015-2016 Oliver Heimlich (oheim@posteo.de)

 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
 License as published by the Free Software Foundation; either
 version 2.1 of the License, or (at your option) any later version.

 This library is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 Lesser General Public License for more details.

 You should have received a copy of the GNU Lesser General Public
 License along with this library; if not, write to the Free Software
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

=#
#Language imports

#Test library imports
using Test

#Arithmetic library imports
using IntervalArithmetic

#Preamble
setprecision(53)
setprecision(Interval, Float64)
setrounding(Interval, :tight)
# Set full format, and show decorations
@format full

@testset "FI_LIB.addii" begin
    @test Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) + Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) + Interval(0x2.0000000000000p+0, 0x2.0000000000000p+0) == Interval(0x3.0000000000000p+0, 0x3.0000000000000p+0)
    @test Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) + Interval(-0x2.0000000000000p+0, -0x2.0000000000000p+0) == Interval(-0x3.0000000000000p+0, -0x3.0000000000000p+0)
    @test Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) + Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) + Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) + Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) == Interval(0x3.f400000000000p-1064, 0x3.f400000000000p-1064)
    @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) + Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) + Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) == Interval(-0x3.f400000000000p-1064, -0x3.f400000000000p-1064)
    @test Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) + Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test Interval(0xf.ffffffffffff8p+1020, 0xf.ffffffffffff8p+1020) + Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(0xf.ffffffffffff0p+1020, 0xf.ffffffffffff8p+1020)
    @test Interval(-0xf.ffffffffffff8p+1020, -0xf.ffffffffffff8p+1020) + Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(-0xf.ffffffffffff8p+1020, -0xf.ffffffffffff0p+1020)
    @test Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) + Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0) == Interval(0x1.0000000000000p+0, 0x3.0000000000000p+0)
    @test Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0) + Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0x1.0000000000000p+0, 0x3.0000000000000p+0)
    @test Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0) + Interval(0x3.0000000000000p+0, 0x4.0000000000000p+0) == Interval(0x4.0000000000000p+0, 0x6.0000000000000p+0)
    @test Interval(0x3.0000000000000p+0, 0x4.0000000000000p+0) + Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0) == Interval(0x4.0000000000000p+0, 0x6.0000000000000p+0)
    @test Interval(-0x1.0000000000000p+0, 0x0.0000000000000p+0) + Interval(-0x4.0000000000000p+0, -0x3.0000000000000p+0) == Interval(-0x5.0000000000000p+0, -0x3.0000000000000p+0)
    @test Interval(-0x4.0000000000000p+0, -0x3.0000000000000p+0) + Interval(-0x1.0000000000000p+0, 0x0.0000000000000p+0) == Interval(-0x5.0000000000000p+0, -0x3.0000000000000p+0)
    @test Interval(-0x5.0000000000000p+0, -0x4.0000000000000p+0) + Interval(0x4.0000000000000p+0, 0x5.0000000000000p+0) == Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0)
    @test Interval(0x4.0000000000000p+0, 0x5.0000000000000p+0) + Interval(-0x5.0000000000000p+0, -0x4.0000000000000p+0) == Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0)
end

@testset "FI_LIB.subii" begin
    @test Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) - Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) - Interval(0x2.0000000000000p+0, 0x2.0000000000000p+0) == Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0)
    @test Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) - Interval(-0x2.0000000000000p+0, -0x2.0000000000000p+0) == Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0)
    @test Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) - Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(0x2.0000000000000p+0, 0x2.0000000000000p+0)
    @test Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) - Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(-0x2.0000000000000p+0, -0x2.0000000000000p+0)
    @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) - Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) - Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(-0x1.0000000000000p+0, -0xf.ffffffffffff8p-4)
    @test Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) - Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) - Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(-0x1.0000000000001p+0, -0x1.0000000000000p+0)
    @test Interval(0xf.ffffffffffff8p+1020, 0xf.ffffffffffff8p+1020) - Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0xf.ffffffffffff0p+1020, 0xf.ffffffffffff8p+1020)
    @test Interval(-0xf.ffffffffffff8p+1020, -0xf.ffffffffffff8p+1020) - Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(-0xf.ffffffffffff8p+1020, -0xf.ffffffffffff0p+1020)
    @test Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0) == Interval(-0x2.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0) - Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x2.0000000000000p+0)
    @test Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0) - Interval(0x3.0000000000000p+0, 0x4.0000000000000p+0) == Interval(-0x3.0000000000000p+0, -0x1.0000000000000p+0)
    @test Interval(0x3.0000000000000p+0, 0x4.0000000000000p+0) - Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0) == Interval(0x1.0000000000000p+0, 0x3.0000000000000p+0)
    @test Interval(-0x1.0000000000000p+0, 0x0.0000000000000p+0) - Interval(-0x4.0000000000000p+0, -0x3.0000000000000p+0) == Interval(0x2.0000000000000p+0, 0x4.0000000000000p+0)
    @test Interval(-0x4.0000000000000p+0, -0x3.0000000000000p+0) - Interval(-0x1.0000000000000p+0, 0x0.0000000000000p+0) == Interval(-0x4.0000000000000p+0, -0x2.0000000000000p+0)
    @test Interval(-0x5.0000000000000p+0, -0x4.0000000000000p+0) - Interval(0x4.0000000000000p+0, 0x5.0000000000000p+0) == Interval(-0xa.0000000000000p+0, -0x8.0000000000000p+0)
    @test Interval(0x4.0000000000000p+0, 0x5.0000000000000p+0) - Interval(-0x5.0000000000000p+0, -0x4.0000000000000p+0) == Interval(0x8.0000000000000p+0, 0xa.0000000000000p+0)
end

@testset "FI_LIB.mulii" begin
    @test Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) * Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) * Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0)
    @test Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) * Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) * Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0)
    @test Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) * Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) * Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) * Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0)
    @test Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) * Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) * Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0)
    @test Interval(0xf.ffffffffffff8p+1020, 0xf.ffffffffffff8p+1020) * Interval(0x8.0000000000000p-4, 0x8.0000000000000p-4) == Interval(0x7.ffffffffffffcp+1020, 0x7.ffffffffffffcp+1020)
    @test Interval(-0xf.ffffffffffff8p+1020, -0xf.ffffffffffff8p+1020) * Interval(0x8.0000000000000p-4, 0x8.0000000000000p-4) == Interval(-0x7.ffffffffffffcp+1020, -0x7.ffffffffffffcp+1020)
    @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) * Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076)
    @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) * Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064)
    @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) * Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064)
    @test Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) * Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) == Interval(0x4.0000000000000p+0, 0x9.0000000000000p+0)
    @test Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) * Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) == Interval(-0x3.0000000000000p+0, +0x3.0000000000000p+0)
    @test Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) * Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) == Interval(-0x9.0000000000000p+0, -0x4.0000000000000p+0)
    @test Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) * Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) == Interval(-0x3.0000000000000p+0, +0x3.0000000000000p+0)
    @test Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) * Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) == Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0)
    @test Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) * Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) == Interval(-0x3.0000000000000p+0, +0x3.0000000000000p+0)
    @test Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) * Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) == Interval(-0x9.0000000000000p+0, -0x4.0000000000000p+0)
    @test Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) * Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) == Interval(-0x3.0000000000000p+0, +0x3.0000000000000p+0)
    @test Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) * Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) == Interval(0x4.0000000000000p+0, 0x9.0000000000000p+0)
    @test Interval(-0x5.0000000000000p+0, +0x2.0000000000000p+0) * Interval(-0x4.0000000000000p+0, +0x3.0000000000000p+0) == Interval(-0xf.0000000000000p+0, +0x1.4000000000000p+4)
    @test Interval(-0x5.0000000000000p+0, +0x2.0000000000000p+0) * Interval(-0x3.0000000000000p+0, +0x8.0000000000000p+0) == Interval(-0x2.8000000000000p+4, +0x1.0000000000000p+4)
    @test Interval(-0x2.0000000000000p+0, +0x5.0000000000000p+0) * Interval(-0x4.0000000000000p+0, +0x3.0000000000000p+0) == Interval(-0x1.4000000000000p+4, +0xf.0000000000000p+0)
    @test Interval(-0x4.0000000000000p+0, +0x5.0000000000000p+0) * Interval(-0x4.0000000000000p+0, +0x3.0000000000000p+0) == Interval(-0x1.4000000000000p+4, +0x1.0000000000000p+4)
    @test Interval(-0x3.0000000000000p+0, 0x0.0000000000000p+0) * Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x9.0000000000000p+0)
    @test Interval(-0x3.0000000000000p+0, 0x0.0000000000000p+0) * Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) == Interval(-0x3.0000000000000p+0, +0x3.0000000000000p+0)
    @test Interval(-0x3.0000000000000p+0, 0x0.0000000000000p+0) * Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) == Interval(-0x9.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) * Interval(-0x3.0000000000000p+0, 0x0.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x9.0000000000000p+0)
    @test Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) * Interval(0x0.0000000000000p+0, 0x3.0000000000000p+0) == Interval(-0x9.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) * Interval(-0x3.0000000000000p+0, 0x0.0000000000000p+0) == Interval(-0x3.0000000000000p+0, +0x3.0000000000000p+0)
    @test Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) * Interval(0x0.0000000000000p+0, 0x3.0000000000000p+0) == Interval(-0x3.0000000000000p+0, +0x3.0000000000000p+0)
    @test Interval(0x0.0000000000000p+0, 0x3.0000000000000p+0) * Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) == Interval(-0x9.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(0x0.0000000000000p+0, 0x3.0000000000000p+0) * Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) == Interval(-0x3.0000000000000p+0, +0x3.0000000000000p+0)
    @test Interval(0x0.0000000000000p+0, 0x3.0000000000000p+0) * Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x9.0000000000000p+0)
    @test Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) * Interval(-0x3.0000000000000p+0, 0x0.0000000000000p+0) == Interval(-0x9.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) * Interval(-0x3.0000000000000p+0, 0x0.0000000000000p+0) == Interval(-0x9.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(0x0.0000000000000p+0, 0x2.0000000000000p+0) * Interval(-0x3.0000000000000p+0, 0x0.0000000000000p+0) == Interval(-0x6.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) * Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076)
    @test Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) * Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064)
    @test Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) * Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064)
    @test Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) * Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) == Interval(-0x4.0000000000000p-1076, 0x0.0000000000000p+0)
    @test Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) * Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) * Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0)
end

@testset "FI_LIB.divii" begin
    @test Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) / Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0)
    @test Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) / Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0)
    @test Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) / Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) / Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) / Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0)
    @test Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) / Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0)
    @test Interval(0xf.ffffffffffff8p+1020, 0xf.ffffffffffff8p+1020) / Interval(0x2.0000000000000p+0, 0x2.0000000000000p+0) == Interval(0x7.ffffffffffffcp+1020, 0x7.ffffffffffffcp+1020)
    @test Interval(-0xf.ffffffffffff8p+1020, -0xf.ffffffffffff8p+1020) / Interval(0x2.0000000000000p+0, 0x2.0000000000000p+0) == Interval(-0x7.ffffffffffffcp+1020, -0x7.ffffffffffffcp+1020)
    @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) / Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) == Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0)
    @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) / Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064)
    @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) / Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064)
    @test Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) / Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) == Interval(0xa.aaaaaaaaaaaa8p-4, 0x1.8000000000000p+0)
    @test Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) / Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) == Interval(-0x1.8000000000000p+0, -0xa.aaaaaaaaaaaa8p-4)
    @test Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) / Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) == Interval(-0x8.0000000000000p-4, +0x8.0000000000000p-4)
    @test Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) / Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) == Interval(-0x8.0000000000000p-4, +0x8.0000000000000p-4)
    @test Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) / Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) == Interval(-0x1.8000000000000p+0, -0xa.aaaaaaaaaaaa8p-4)
    @test Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) / Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) == Interval(0xa.aaaaaaaaaaaa8p-4, 0x1.8000000000000p+0)
    @test Interval(-0x3.0000000000000p+0, 0x0.0000000000000p+0) / Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x1.8000000000000p+0)
    @test Interval(-0x3.0000000000000p+0, 0x0.0000000000000p+0) / Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) == Interval(-0x1.8000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(0x0.0000000000000p+0, 0x3.0000000000000p+0) / Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) == Interval(-0x1.8000000000000p+0, 0x0.0000000000000p+0)
    @test Interval(0x0.0000000000000p+0, 0x3.0000000000000p+0) / Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x1.8000000000000p+0)
end

@testset "FI_LIB.unary_functions" begin
    @test exp(Interval(-0x1.16cc0df1540f5p+112, -0x1.b3e4076622f04p-232)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    @test exp(Interval(-0x2.42042b9a88438p-220, -0x2.a213429db0508p-508)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test exp(Interval(-0x2.0e2e40b15d814p+272, -0x1.5d74cfda6b292p-200)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    @test exp(Interval(-0x2.0ea791886f712p-416, -0x3.fe66a8d1a3472p-456)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    #exp [-0X6.FF424CB26239CP+292, -0X2.89F6682121BA8P+252] = [0X0.0000000000000P+0, 0X0.0000000000000P+0];
    @test exp(Interval(-0x8.80eefdf700148p+332, -0x1.c4e85e50a626dp+0)) == Interval(0x0.0000000000000p+0, 0x2.ba43457b11d98p-4)
    @test exp(Interval(-0x6.ca83546563a5cp+236, -0x4.f0f28370909fcp-440)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    @test exp(Interval(-0x4.e60572d4fcfd0p+172, -0x1.eb095183538c8p-344)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    @test exp(Interval(-0x2.7ed8954764b12p-288, -0x8.71dc22117be90p-756)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test exp(Interval(-0xd.cf39b8dd68b98p-76, -0x8.0205c5b1357b0p-564)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    #exp [-0X1.582D3AFB2C63DP+312, -0X5.08DC843E57ED4P+180] = [0X0.0000000000000P+0, 0X0.0000000000000P+0];
    @test exp(Interval(-0x4.af296dd37fd74p+256, -0x5.cbe2bd423b02cp-48)) == Interval(0x0.0000000000000p+0, 0xf.ffffffffffa38p-4)
    @test exp(Interval(-0x1.1fba2d1252d2bp+656, -0x2.4b7a4095c91b4p+8)) == Interval(0x0.0000000000000p+0, 0x1.5d7a2f6655dfcp-848)
    #exp [-0X3.2FD3FDE325402P+688, -0X2.738623C238270P+48] = [0X0.0000000000000P+0, 0X0.0000000000000P+0];
    @test exp(Interval(-0x1.44f2134e1901ep+8, -0x2.581dad9afe6dcp-172)) == Interval(0x9.34c0766401b20p-472, 0x1.0000000000000p+0)
    @test exp(Interval(-0x2.9529e333f2abap+988, -0x7.19390f862f49cp-544)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    @test exp(Interval(-0x1.58391fd92c387p-148, -0x4.0c12426a57194p-440)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test exp(Interval(-0xb.fadc4fb83e140p+348, -0xf.13e388b2165f0p-512)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    #exp [-0XD.F2552B8F60978P+236, -0X7.FBDBC320979A4P+188] = [0X0.0000000000000P+0, 0X0.0000000000000P+0];
    @test exp(Interval(-0x8.86826ce1ab700p-240, -0x4.fea8d3a3ed018p-316)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test exp(Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0)) == Interval(0x2.b7e151628aed2p+0, 0x7.63992e35376b8p+0)
    @test exp(Interval(-0x1.0000000000000p+0, +0x2.0000000000000p+0)) == Interval(0x5.e2d58d8b3bcdcp-4, 0x7.63992e35376b8p+0)
    @test exp(Interval(-0x5.0000000000000p+0, -0x3.0000000000000p+0)) == Interval(0x1.b993fe00d5376p-8, 0xc.bed8666758578p-8)
    @test exp(Interval(-0x2.0000000000000p+0, +0x9.9999999999998p-4)) == Interval(0x2.2a555477f0396p-4, 0x1.d27660b11a9f0p+0)
    @test exp(Interval(0x4.0000000000000p-1076, 0x4.4444400000000p-1056)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test exp(Interval(0x4.4440000000000p-1064, 0x1.0000000000000p+0)) == Interval(0x1.0000000000000p+0, 0x2.b7e151628aed4p+0)
    @test exp(Interval(-0x4.4444000000000p-1060, +0x4.4444000000000p-1060)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000001p+0)
    @test exp(Interval(-0x4.4400000000000p-1068, +0x1.fff0000000000p+0)) == Interval(0xf.ffffffffffff8p-4, 0x7.6322f8540cfb4p+0)
    @test exp(Interval(-0x1.ffff000000000p+0, -0x8.8888880000000p-1052)) == Interval(0x2.2a577ece59dc6p-4, 0x1.0000000000000p+0)
    @test exp(Interval(-0x1.fffffff000000p+0, +0x8.cd11555400000p-1044)) == Interval(0x2.2a55549a958eap-4, 0x1.0000000000001p+0)
    @test exp2(Interval(-0x1.16cc0df1540f5p+112, -0x1.b3e4076622f04p-232)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    @test exp2(Interval(-0x2.42042b9a88438p-220, -0x2.a213429db0508p-508)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test exp2(Interval(-0x2.0e2e40b15d814p+272, -0x1.5d74cfda6b292p-200)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    @test exp2(Interval(-0x2.0ea791886f712p-416, -0x3.fe66a8d1a3472p-456)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    #exp2 [-0X6.FF424CB26239CP+292, -0X2.89F6682121BA8P+252] = [0X0.0000000000000P+0, 0X0.0000000000000P+0];
    @test exp2(Interval(-0x8.80eefdf700148p+332, -0x1.c4e85e50a626dp+0)) == Interval(0x0.0000000000000p+0, 0x4.b1ac6f8470484p-4)
    @test exp2(Interval(-0x6.ca83546563a5cp+236, -0x4.f0f28370909fcp-440)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    @test exp2(Interval(-0x4.e60572d4fcfd0p+172, -0x1.eb095183538c8p-344)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    @test exp2(Interval(-0x2.7ed8954764b12p-288, -0x8.71dc22117be90p-756)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test exp2(Interval(-0xd.cf39b8dd68b98p-76, -0x8.0205c5b1357b0p-564)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    #exp2 [-0X1.582D3AFB2C63DP+312, -0X5.08DC843E57ED4P+180] = [0X0.0000000000000P+0, 0X0.0000000000000P+0];
    @test exp2(Interval(-0x4.af296dd37fd74p+256, -0x5.cbe2bd423b02cp-48)) == Interval(0x0.0000000000000p+0, 0xf.ffffffffffc00p-4)
    @test exp2(Interval(-0x1.1fba2d1252d2bp+656, -0x2.4b7a4095c91b4p+8)) == Interval(0x0.0000000000000p+0, 0x1.6fb78c613e5ecp-588)
    #exp2 [-0X3.2FD3FDE325402P+688, -0X2.738623C238270P+48] = [0X0.0000000000000P+0, 0X0.0000000000000P+0];
    @test exp2(Interval(-0x1.44f2134e1901ep+8, -0x2.581dad9afe6dcp-172)) == Interval(0x8.4eb038b9b8508p-328, 0x1.0000000000000p+0)
    @test exp2(Interval(-0x2.9529e333f2abap+988, -0x7.19390f862f49cp-544)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    @test exp2(Interval(-0x1.58391fd92c387p-148, -0x4.0c12426a57194p-440)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test exp2(Interval(-0xb.fadc4fb83e140p+348, -0xf.13e388b2165f0p-512)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    #exp2 [-0XD.F2552B8F60978P+236, -0X7.FBDBC320979A4P+188] = [0X0.0000000000000P+0, 0X0.0000000000000P+0];
    @test exp2(Interval(-0x8.86826ce1ab700p-240, -0x4.fea8d3a3ed018p-316)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test exp2(Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0)) == Interval(0x2.0000000000000p+0, 0x4.0000000000000p+0)
    @test exp2(Interval(-0x1.0000000000000p+0, +0x2.0000000000000p+0)) == Interval(0x8.0000000000000p-4, 0x4.0000000000000p+0)
    @test exp2(Interval(-0x5.0000000000000p+0, -0x3.0000000000000p+0)) == Interval(0x8.0000000000000p-8, 0x2.0000000000000p-4)
    @test exp2(Interval(-0x2.0000000000000p+0, +0x9.9999999999998p-4)) == Interval(0x4.0000000000000p-4, 0x1.8406003b2ae5dp+0)
    @test exp2(Interval(0x4.4400000000000p-1068, 0x4.48cd100000000p-1052)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test exp2(Interval(-0x4.8d15088880000p-1040, +0x4.8d11554000000p-1048)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000001p+0)
    @test exp2(Interval(0xd.0888d11000000p-1044, 0x1.000003443aaaap+0)) == Interval(0x1.0000000000000p+0, 0x2.0000048742860p+0)
    @test exp2(Interval(-0xd.15550cc880000p-1040, +0x4.8d150cc000000p-1048)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000001p+0)
    @test exp2(Interval(-0x4.8d159e0000000p-1048, +0x1.ffffff0999999p+0)) == Interval(0xf.ffffffffffff8p-4, 0x3.fffffd54d58b0p+0)
    @test exp2(Interval(-0x1.fffffffffffffp+0, +0x1.14c8911540000p-1040)) == Interval(0x4.0000000000000p-4, 0x1.0000000000001p+0)
    @test exp10(Interval(-0x2.8457bc029986ep+112, -0x1.7a77bfccf5a9ep-232)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    @test exp10(Interval(-0x6.05c0bb1bcb730p-220, -0x3.c5ec30fbb68c8p-508)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test exp10(Interval(-0x2.9b09919bf9d9ep+272, -0xe.20ff41bd18058p-204)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    @test exp10(Interval(-0x1.1503444763fc5p-416, -0x2.075df98b2478cp-456)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    #exp10 [-0X2.7C064F6929234P+292, -0X1.5444E676976F1P+252] = [0X0.0000000000000P+0, 0X0.0000000000000P+0];
    @test exp10(Interval(-0x4.ecbc855871080p+332, -0x1.3a01905e36f84p+0)) == Interval(0x0.0000000000000p+0, 0xf.317f8555628f0p-8)
    @test exp10(Interval(-0x7.32edab7f60a50p+236, -0x2.404e44c49c644p-440)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    @test exp10(Interval(-0x6.5263cf84ef388p+172, -0x1.63a15e999eb64p-344)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    @test exp10(Interval(-0x1.4171976a1ca54p-288, -0x6.941f470a70074p-756)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test exp10(Interval(-0x4.69bb1d34b9570p-76, -0x7.78a1f475a306cp-564)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    #exp10 [-0X1.F0D19ADCB5D74P+312, -0X1.BA04D452BBB35P+180] = [0X0.0000000000000P+0, 0X0.0000000000000P+0];
    @test exp10(Interval(-0x2.e046db554037cp+256, -0x2.6abc15579b2b2p-48)) == Interval(0x0.0000000000000p+0, 0xf.ffffffffffa70p-4)
    @test exp10(Interval(-0xe.33c49cf5b8790p+652, -0x8.297a99ed9ed08p+8)) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076)
    #exp10 [-0X2.A69A969772FDEP+688, -0X3.436DFE8F08194P+48] = [0X0.0000000000000P+0, 0X0.0000000000000P+0];
    @test exp10(Interval(-0x1.7aaa15ebbd3f2p+8, -0x6.3e590e626451cp-172)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    @test exp10(Interval(-0x2.8f9204bc4041ep+988, -0x6.acfa418d8f92cp-544)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    @test exp10(Interval(-0x2.b00450a48d586p-148, -0x2.bb570b356c6cap-440)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test exp10(Interval(-0x1.9e7ddbbe00f75p+352, -0xc.41329461a0c30p-512)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    #exp10 [-0XD.5E2045CEE9720P+236, -0X6.6978492A3064CP+188] = [0X0.0000000000000P+0, 0X0.0000000000000P+0];
    @test exp10(Interval(-0x1.5bd629b25aa23p-236, -0x7.dea605dec97ccp-316)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    #exp10 [-0XB.A944253373080P+564, -0XD.05E9CCF66CF58P+424] = [0X0.0000000000000P+0, 0X0.0000000000000P+0];
    @test exp10(Interval(-0x3.ae1dc13a652cap+168, -0x6.65d7e0a247778p-56)) == Interval(0x0.0000000000000p+0, 0xf.ffffffffffff8p-4)
    @test exp10(Interval(-0xa.27b4555158148p-68, -0x5.2b55801231ec8p-344)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test exp10(Interval(-0x1.d68a6ba7e617fp+12, -0x6.36b661dce2688p-236)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    @test exp10(Interval(-0x1.98ef0c6a8bd66p+132, -0x1.eb0e1ab78f314p-480)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    @test exp10(Interval(-0x1.c08152cc09416p+220, -0x7.4cf193131fa64p-192)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    @test exp10(Interval(-0x6.f70e0da4d2ba0p-140, -0x1.7036c237d5b00p-672)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    #exp10 [-0XB.24D19E00C8460P+324, -0X1.D283CF8F05665P+252] = [0X0.0000000000000P+0, 0X0.0000000000000P+0];
    @test exp10(Interval(-0xf.cc937fa330e40p+648, -0x3.a0ee84451c92cp-324)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0)
    @test exp10(Interval(-0x5.f775993940188p-120, -0x1.8bca641025a83p-124)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test log(Interval(0xc.4b4a6eb6b3af0p-264, 0xa.dd2c4c1be4b30p+92)) == Interval(-0xb.47b530a1054d8p+4, +0x4.227ad8183fb70p+4)
    @test log(Interval(0x2.6213e21b14894p-516, 0x6.6606f0995e5f4p-224)) == Interval(-0x1.64cba844fc0eap+8, -0x9.968ad8b569fe0p+4)
    @test log(Interval(0x9.0ff2caa1b3048p-240, 0x1.95f14b9ba7449p+236)) == Interval(-0xa.426b5145a44a0p+4, +0xa.40b346f454218p+4)
    @test log(Interval(0x8.e2ada8dfbe938p-492, 0x3.67cb3be0bb146p-452)) == Interval(-0x1.52d81024e4c23p+8, -0x1.3813c01acd25cp+8)
    @test log(Interval(0x1.394270bbcba7ep+196, 0x8.4976f0bf45a40p+224)) == Interval(0x8.80f0717a1dc40p+4, 0x9.d6130f01f8b78p+4)
    @test log(Interval(0x6.a000a12839a50p-44, 0x3.86dc59439415ap+276)) == Interval(-0x1.c9b8d4127e3dap+4, +0xc.091aad1207058p+4)
    @test log(Interval(0x1.3c84e4f9c80cep-476, 0x9.1e9439c3b4358p+196)) == Interval(-0x1.49b9d16b7e46ap+8, +0x8.a1137bde55cf8p+4)
    @test log(Interval(0x8.41d2db6d93548p-376, 0x2.edcf4a7919034p+140)) == Interval(-0x1.028323b4d95b4p+8, +0x6.21d80d9193ab8p+4)
    @test log(Interval(0x1.2c18feebcaeaep-768, 0x1.c369e759df5e3p-328)) == Interval(-0x2.142d983d15a28p+8, -0xe.2c8fa3f896a50p+4)
    @test log(Interval(0x4.d94e91619d3f0p-580, 0x2.9f6caf6b5513ep-132)) == Interval(-0x1.907255d3994fep+8, -0x5.a87fcf5fbd800p+4)
    @test log(Interval(0x2.9cd12c1d0aac4p+116, 0x3.bf7e0e52dc1aap+276)) == Interval(0x5.15d8b410e0a5cp+4, 0xc.0a13dc536cd58p+4)
    @test log(Interval(0x3.36de5c55594eep-100, 0x1.d0460177b1553p+204)) == Interval(-0x4.425a8474e3980p+4, +0x8.dff506fe0d9f8p+4)
    @test log(Interval(0x4.bd4031736f7a8p+4, 0xf.a10bb3c91c7b0p+592)) == Interval(0x4.54169a4297548p+0, 0x1.9d179ea5204d0p+8)
    @test log(Interval(0x2.8e258db3c44f8p+20, 0x3.1a4ede719a4c0p+628)) == Interval(0xe.cd14bebe2cd68p+0, 0x1.b46dc0d02b874p+8)
    @test log(Interval(0x2.33950f38f830ep-176, 0x5.be0388619b018p-24)) == Interval(-0x7.9346bab839b58p+4, -0xe.e33f2c933b990p+0)
    @test log(Interval(0x3.24f03df33568cp-560, 0xe.67255823421e8p+920)) == Interval(-0x1.83044f26aaa2bp+8, +0x2.805ce2dc91036p+8)
    @test log(Interval(0x2.d572639dc5fa8p-468, 0x1.95cf42aa171cdp-160)) == Interval(-0x1.4359ecd75cb6cp+8, -0x6.e715e1ba0e35cp+4)
    @test log(Interval(0x4.705a028302db0p-532, 0x2.e57341c14970cp+324)) == Interval(-0x1.6f438ee9f6020p+8, +0xe.1a4a3523f2658p+4)
    @test log(Interval(0x4.dba1d21d6f308p+144, 0x3.667988c57865ap+196)) == Interval(0x6.564d09ad1d214p+4, 0x8.914a9531fd118p+4)
    @test log(Interval(0x4.9fa5a1e4df740p-328, 0x1.11b85141b78f6p-240)) == Interval(-0xe.1d2336a5be1a8p+4, -0xa.649d44362a2f0p+4)
    @test log(Interval(0xa.0cde9dc015b08p+360, 0xf.99d84f862ac58p+524)) == Interval(0xf.bd7308ed73ff0p+4, 0x1.6df4da39dc5ddp+8)
    @test log(Interval(0x6.88441038d56b8p-108, 0x3.3d65c09938132p+136)) == Interval(-0x4.8fbaef1169c24p+4, +0x5.f718bbf0ce2f8p+4)
    @test log(Interval(0x7.1761cab055134p-356, 0x1.92efd09488689p-76)) == Interval(-0xf.4cd3094a3b4b8p+4, -0x3.439bfd719bae8p+4)
    @test log(Interval(0x6.2085e427413c8p-252, 0xb.8cdd3b024ea10p-36)) == Interval(-0xa.cdc41aee74318p+4, -0x1.681aff89e9c89p+4)
    @test log(Interval(0xb.f5f1c0fa33978p-504, 0x4.924dd8d50b1ccp+72)) == Interval(-0x1.5add53379ef4dp+8, +0x3.36d2b121508a8p+4)
    @test log(Interval(0xb.bc7e37eb2d388p-216, 0x1.cfe27bb53debbp+192)) == Interval(-0x9.341d196ad2d58p+4, +0x8.5adc069f618a8p+4)
    @test log(Interval(0x1.e139dd116f868p-688, 0xd.2545346d68fd0p-148)) == Interval(-0x1.dc410cbc8e1c8p+8, -0x6.4027b79d2eaa8p+4)
    @test log(Interval(0x2.e0c8e64a890acp+192, 0x2.6a898d2caa9a4p+260)) == Interval(0x8.6243148f46208p+4, 0xb.519b6e544f898p+4)
    @test log(Interval(0x5.9c4642ed78bc8p-340, 0x4.631bd2232f0c0p+588)) == Interval(-0xe.9f20674285418p+4, +0x1.990c99b6124fep+8)
    @test log(Interval(0xf.c05ea810dfe88p-180, 0xa.05884fbed5f48p-152)) == Interval(-0x7.a02728d7d3790p+4, -0x6.70dba893a16e0p+4)
    @test log2(Interval(0xc.4b4a6eb6b3af0p-264, 0xa.dd2c4c1be4b30p+92)) == Interval(-0x1.04614e93ea794p+8, +0x5.f7104b04804e4p+4)
    @test log2(Interval(0x2.6213e21b14894p-516, 0x6.6606f0995e5f4p-224)) == Interval(-0x2.02bf4547cf74ap+8, -0xd.d527f669b7aa0p+4)
    @test log2(Interval(0x9.0ff2caa1b3048p-240, 0x1.95f14b9ba7449p+236)) == Interval(-0xe.cd1f394a2c268p+4, +0xe.caa4613c31fd0p+4)
    @test log2(Interval(0x8.e2ada8dfbe938p-492, 0x3.67cb3be0bb146p-452)) == Interval(-0x1.e8d93ac78e47cp+8, -0x1.c23b6e9f9be73p+8)
    @test log2(Interval(0x1.394270bbcba7ep+196, 0x8.4976f0bf45a40p+224)) == Interval(0xc.44a8d0a480900p+4, 0xe.30d042bd32e08p+4)
    @test log2(Interval(0x6.a000a12839a50p-44, 0x3.86dc59439415ap+276)) == Interval(-0x2.945a6de3564f2p+4, +0x1.15d18004da527p+8)
    @test log2(Interval(0x1.3c84e4f9c80cep-476, 0x9.1e9439c3b4358p+196)) == Interval(-0x1.dbb1a03ad9911p+8, +0xc.7305ecf8e75d8p+4)
    @test log2(Interval(0x8.41d2db6d93548p-376, 0x2.edcf4a7919034p+140)) == Interval(-0x1.74f450fb5f194p+8, +0x8.d8ce5c08208d0p+4)
    @test log2(Interval(0x1.2c18feebcaeaep-768, 0x1.c369e759df5e3p-328)) == Interval(-0x2.ffc54d5ef9e5ap+8, -0x1.472e83799ccfap+8)
    @test log2(Interval(0x4.d94e91619d3f0p-580, 0x2.9f6caf6b5513ep-132)) == Interval(-0x2.41b8ec5041b68p+8, -0x8.29be215800410p+4)
    @test log2(Interval(0x2.9cd12c1d0aac4p+116, 0x3.bf7e0e52dc1aap+276)) == Interval(0x7.562ae05df4698p+4, 0x1.15e7f7fa196aap+8)
    @test log2(Interval(0x3.36de5c55594eep-100, 0x1.d0460177b1553p+204)) == Interval(-0x6.250c3695fcf20p+4, +0xc.cdbdc5938d560p+4)
    @test log2(Interval(0x4.bd4031736f7a8p+4, 0xf.a10bb3c91c7b0p+592)) == Interval(0x6.3ea22bed11920p+0, 0x2.53f7565a6fa4cp+8)
    @test log2(Interval(0x2.8e258db3c44f8p+20, 0x3.1a4ede719a4c0p+628)) == Interval(0x1.55a7d090e9bc4p+4, 0x2.75a230a6ef148p+8)
    @test log2(Interval(0x2.33950f38f830ep-176, 0x5.be0388619b018p-24)) == Interval(-0xa.edc8c6ae09a00p+4, -0x1.57a778189781ep+4)
    @test log2(Interval(0x3.24f03df33568cp-560, 0xe.67255823421e8p+920)) == Interval(-0x2.2e58e661bef52p+8, +0x3.9bd9297418726p+8)
    @test log2(Interval(0x2.d572639dc5fa8p-468, 0x1.95cf42aa171cdp-160)) == Interval(-0x1.d27f4d5811ec0p+8, -0x9.f55d8e4a51f88p+4)
    @test log2(Interval(0x4.705a028302db0p-532, 0x2.e57341c14970cp+324)) == Interval(-0x2.11d98ce9f01e8p+8, +0x1.4588c1b9f05fcp+8)
    @test log2(Interval(0x4.dba1d21d6f308p+144, 0x3.667988c57865ap+196)) == Interval(0x9.247c4a0d6a240p+4, 0xc.5c40234316de0p+4)
    @test log2(Interval(0x4.9fa5a1e4df740p-328, 0x1.11b85141b78f6p-240)) == Interval(-0x1.45ca7d7508d73p+8, -0xe.fe7480a8a6a70p+4)
    @test log2(Interval(0xa.0cde9dc015b08p+360, 0xf.99d84f862ac58p+524)) == Interval(0x1.6b54440063a2fp+8, 0x2.0ff6ac0a1df08p+8)
    @test log2(Interval(0x6.88441038d56b8p-108, 0x3.3d65c09938132p+136)) == Interval(-0x6.94adb7a807630p+4, +0x8.9b227cd69b7b0p+4)
    @test log2(Interval(0x7.1761cab055134p-356, 0x1.92efd09488689p-76)) == Interval(-0x1.612c877fdefc9p+8, -0x4.b58789b7d2ab8p+4)
    @test log2(Interval(0x6.2085e427413c8p-252, 0xb.8cdd3b024ea10p-36)) == Interval(-0xf.96282d809ede0p+4, -0x2.0785b9a270c10p+4)
    @test log2(Interval(0xb.f5f1c0fa33978p-504, 0x4.924dd8d50b1ccp+72)) == Interval(-0x1.f46b75e4932f4p+8, +0x4.a3152ac221298p+4)
    @test log2(Interval(0xb.bc7e37eb2d388p-216, 0x1.cfe27bb53debbp+192)) == Interval(-0xd.47274c2e0b298p+4, +0xc.0db8d252704a8p+4)
    @test log2(Interval(0x1.e139dd116f868p-688, 0xd.2545346d68fd0p-148)) == Interval(-0x2.af16e4d3d6128p+8, -0x9.048930492a7a0p+4)
    @test log2(Interval(0x2.e0c8e64a890acp+192, 0x2.6a898d2caa9a4p+260)) == Interval(0xc.1866cea5b0408p+4, 0x1.0545d0c4da7bap+8)
    @test log2(Interval(0x5.9c4642ed78bc8p-340, 0x4.631bd2232f0c0p+588)) == Interval(-0x1.51830ad8b30fcp+8, +0x2.4e221ec1db53ep+8)
    @test log2(Interval(0xf.c05ea810dfe88p-180, 0xa.05884fbed5f48p-152)) == Interval(-0xb.005c8501548a8p+4, -0x9.4acca02a24828p+4)
    @test log10(Interval(0xc.4b4a6eb6b3af0p-264, 0xa.dd2c4c1be4b30p+92)) == Interval(-0x4.e61d94c4c8d58p+4, +0x1.cbb1247192ae0p+4)
    @test log10(Interval(0x2.6213e21b14894p-516, 0x6.6606f0995e5f4p-224)) == Interval(-0x9.af44f24283358p+4, -0x4.29fe8451f9e24p+4)
    @test log10(Interval(0x9.0ff2caa1b3048p-240, 0x1.95f14b9ba7449p+236)) == Interval(-0x4.74a3adb971c48p+4, +0x4.73e4925024c64p+4)
    @test log10(Interval(0x8.e2ada8dfbe938p-492, 0x3.67cb3be0bb146p-452)) == Interval(-0x9.32877ca0160b8p+4, -0x8.7888bddbce5d0p+4)
    @test log10(Interval(0x1.394270bbcba7ep+196, 0x8.4976f0bf45a40p+224)) == Interval(0x3.b16ec52507df2p+4, 0x4.4595f97548968p+4)
    @test log10(Interval(0x6.a000a12839a50p-44, 0x3.86dc59439415ap+276)) == Interval(-0xc.6c93ffef64f78p+0, +0x5.3a1b471a21ff4p+4)
    @test log10(Interval(0x1.3c84e4f9c80cep-476, 0x9.1e9439c3b4358p+196)) == Interval(-0x8.f32b7dbb21008p+4, +0x3.bf63ba7a3c658p+4)
    @test log10(Interval(0x8.41d2db6d93548p-376, 0x2.edcf4a7919034p+140)) == Interval(-0x7.0453c2f061648p+4, +0x2.a9c64a16830fcp+4)
    @test log10(Interval(0x1.2c18feebcaeaep-768, 0x1.c369e759df5e3p-328)) == Interval(-0xe.71f3c5029d848p+4, -0x6.27dd331c437f0p+4)
    @test log10(Interval(0x4.d94e91619d3f0p-580, 0x2.9f6caf6b5513ep-132)) == Interval(-0xa.de968fd95abe0p+4, -0x2.7513429684674p+4)
    @test log10(Interval(0x2.9cd12c1d0aac4p+116, 0x3.bf7e0e52dc1aap+276)) == Interval(0x2.35627efd00a60p+4, 0x5.3a877f4ad58e8p+4)
    @test log10(Interval(0x3.36de5c55594eep-100, 0x1.d0460177b1553p+204)) == Interval(-0x1.d988d7ebc5ae3p+4, +0x3.dab2cd7f2625ep+4)
    @test log10(Interval(0x4.bd4031736f7a8p+4, 0xf.a10bb3c91c7b0p+592)) == Interval(0x1.e13c93cf0c5d8p+0, 0xb.367584ac914d0p+4)
    @test log10(Interval(0x2.8e258db3c44f8p+20, 0x3.1a4ede719a4c0p+628)) == Interval(0x6.6d93b54d66420p+0, 0xb.d89e0ca927598p+4)
    @test log10(Interval(0x2.33950f38f830ep-176, 0x5.be0388619b018p-24)) == Interval(-0x3.4a378caad54dap+4, -0x6.773414d886c14p+0)
    @test log10(Interval(0x3.24f03df33568cp-560, 0xe.67255823421e8p+920)) == Interval(-0xa.8144b5b8f5dd8p+4, +0x1.161b25dac86ecp+8)
    @test log10(Interval(0x2.d572639dc5fa8p-468, 0x1.95cf42aa171cdp-160)) == Interval(-0x8.c6dff01c76970p+4, -0x2.ff6f7b088b0ccp+4)
    @test log10(Interval(0x4.705a028302db0p-532, 0x2.e57341c14970cp+324)) == Interval(-0x9.f802ce339e840p+4, +0x6.1fedd0fb88d78p+4)
    @test log10(Interval(0x4.dba1d21d6f308p+144, 0x3.667988c57865ap+196)) == Interval(0x2.c08e6c63f32e4p+4, 0x3.b888c99289754p+4)
    @test log10(Interval(0x4.9fa5a1e4df740p-328, 0x1.11b85141b78f6p-240)) == Interval(-0x6.212a6b69124f0p+4, -0x4.837d7868c93bcp+4)
    @test log10(Interval(0xa.0cde9dc015b08p+360, 0xf.99d84f862ac58p+524)) == Interval(0x6.d5f7b5f14dd48p+4, 0x9.eeed0801ea480p+4)
    @test log10(Interval(0x6.88441038d56b8p-108, 0x3.3d65c09938132p+136)) == Interval(-0x1.fb238786d64f9p+4, +0x2.9735aa99f42aap+4)
    @test log10(Interval(0x7.1761cab055134p-356, 0x1.92efd09488689p-76)) == Interval(-0x6.a50e2200dff14p+4, -0x1.6ae688b7c8203p+4)
    @test log10(Interval(0x6.2085e427413c8p-252, 0xb.8cdd3b024ea10p-36)) == Interval(-0x4.b1282c68fe4f8p+4, -0x9.c644dfb9ee3e0p+0)
    @test log10(Interval(0xb.f5f1c0fa33978p-504, 0x4.924dd8d50b1ccp+72)) == Interval(-0x9.6a430336ad680p+4, +0x1.6558f570c1420p+4)
    @test log10(Interval(0xb.bc7e37eb2d388p-216, 0x1.cfe27bb53debbp+192)) == Interval(-0x3.ff3f46384e0e2p+4, +0x3.a0e51611ff75ep+4)
    @test log10(Interval(0x1.e139dd116f868p-688, 0xd.2545346d68fd0p-148)) == Interval(-0xc.ed5a39e5d4878p+4, -0x2.b6f044cde4a0cp+4)
    @test log10(Interval(0x2.e0c8e64a890acp+192, 0x2.6a898d2caa9a4p+260)) == Interval(0x3.a41c190fe9e7ap+4, 0x4.ea6a3021e4fb8p+4)
    @test log10(Interval(0x5.9c4642ed78bc8p-340, 0x4.631bd2232f0c0p+588)) == Interval(-0x6.599e84fef71bcp+4, +0xb.1a5d77bc55f98p+4)
    @test log10(Interval(0xf.c05ea810dfe88p-180, 0xa.05884fbed5f48p-152)) == Interval(-0x3.4fcf2bc10b840p+4, -0x2.cc1706e0167d2p+4)
    @test sin(Interval(-0xa.644c9d88ea8c8p-152, -0xd.8ec7927926f18p-944)) == Interval(-0xa.644c9d88ea8c8p-152, -0xd.8ec7927926f10p-944)
    @test sin(Interval(-0x1.9ee1a9db994f5p-436, -0x6.d914701c82fecp-624)) == Interval(-0x1.9ee1a9db994f5p-436, -0x6.d914701c82fe8p-624)
    @test sin(Interval(-0x5.65057f3effc60p+4, -0x2.3617cf5815ecap-960)) == Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0)
    @test sin(Interval(-0x1.975299ccb0e08p-372, +0xb.bec7d35b45b00p-588)) == Interval(-0x1.975299ccb0e08p-372, +0xb.bec7d35b45b00p-588)
    @test sin(Interval(-0x3.51d388d47aed2p-356, -0x1.c3a9cd7025105p-564)) == Interval(-0x3.51d388d47aed2p-356, -0x1.c3a9cd7025104p-564)
    @test sin(Interval(-0xc.db363268cf708p-332, -0x2.171b7d7bfe4e0p-412)) == Interval(-0xc.db363268cf708p-332, -0x2.171b7d7bfe4dep-412)
    @test sin(Interval(-0x1.32690aac2472dp-40, -0x8.706ebdcf39c88p-792)) == Interval(-0x1.32690aac2472dp-40, -0x8.706ebdcf39c80p-792)
    @test sin(Interval(-0x5.0145af0c53324p-200, -0x2.f5a0cb3301856p-204)) == Interval(-0x5.0145af0c53324p-200, -0x2.f5a0cb3301854p-204)
    @test sin(Interval(0xf.4077c7e8cd6a0p-268, 0x3.753426098ac5ap-80)) == Interval(0xf.4077c7e8cd698p-268, 0x3.753426098ac5ap-80)
    @test sin(Interval(-0xb.b25f8d8bb7fb8p-376, -0x2.017a332f9b05cp-916)) == Interval(-0xb.b25f8d8bb7fb8p-376, -0x2.017a332f9b05ap-916)
    @test sin(Interval(-0xd.947ca427fdfe0p-592, +0xe.3be493b5bc8e8p-16)) == Interval(-0xd.947ca427fdfe0p-592, +0xe.3be491d517170p-16)
    @test sin(Interval(-0x9.c46198b2471f0p-336, -0x1.65ed85df2d4b7p-576)) == Interval(-0x9.c46198b2471f0p-336, -0x1.65ed85df2d4b6p-576)
    @test sin(Interval(-0x3.2c867c027db44p-936, +0x6.1883ea827ab6cp-388)) == Interval(-0x3.2c867c027db44p-936, +0x6.1883ea827ab6cp-388)
    @test sin(Interval(-0x3.560ef91c47deap-492, +0x5.413664dd17abcp-20)) == Interval(-0x3.560ef91c47deap-492, +0x5.413664dcff7d4p-20)
    @test sin(Interval(-0x8.36bfcd74a6d68p-304, -0x3.2c20eb130d510p-836)) == Interval(-0x8.36bfcd74a6d68p-304, -0x3.2c20eb130d50ep-836)
    @test sin(Interval(-0x6.bcec84603958cp-500, -0x1.068b13da99666p-760)) == Interval(-0x6.bcec84603958cp-500, -0x1.068b13da99665p-760)
    @test sin(Interval(-0x1.2789c2d583bcdp-568, -0x1.f2bd89dad0665p-780)) == Interval(-0x1.2789c2d583bcdp-568, -0x1.f2bd89dad0664p-780)
    @test sin(Interval(-0xc.fe4e8d857e3e0p-548, +0x1.580844b9dc45cp-780)) == Interval(-0xc.fe4e8d857e3e0p-548, +0x1.580844b9dc45cp-780)
    @test sin(Interval(-0xc.508d29acb01b8p-52, +0x1.b1e6b793078ddp-664)) == Interval(-0xc.508d29acb01b8p-52, +0x1.b1e6b793078ddp-664)
    @test sin(Interval(-0xa.12f7783880a78p-124, -0x3.765df69ee106ep-548)) == Interval(-0xa.12f7783880a78p-124, -0x3.765df69ee106cp-548)
    @test sin(Interval(-0x6.3a58d52fdf844p-896, -0x1.039e2518cf503p-1008)) == Interval(-0x6.3a58d52fdf844p-896, -0x1.039e2518cf502p-1008)
    @test sin(Interval(-0xb.dd3171fdeec18p-168, +0x1.069e434ee9e0fp-740)) == Interval(-0xb.dd3171fdeec18p-168, +0x1.069e434ee9e0fp-740)
    @test sin(Interval(-0x3.cf0053257533ap-776, -0x1.7883a587654e5p-928)) == Interval(-0x3.cf0053257533ap-776, -0x1.7883a587654e4p-928)
    @test sin(Interval(0x1.455801d3d2b63p-704, 0x3.a4c915783d07ap-28)) == Interval(0x1.455801d3d2b62p-704, 0x3.a4c915783d07ap-28)
    @test sin(Interval(-0x2.097d06f4de3e2p-376, +0x2.2e7561fd9255ep-772)) == Interval(-0x2.097d06f4de3e2p-376, +0x2.2e7561fd9255ep-772)
    @test sin(Interval(-0x1.7e13dbb66e5a3p-84, -0x6.bc8f45d6a8f48p-540)) == Interval(-0x1.7e13dbb66e5a3p-84, -0x6.bc8f45d6a8f44p-540)
    @test sin(Interval(-0x4.1f50c5f2cda54p-276, -0x3.df16f79756422p-496)) == Interval(-0x4.1f50c5f2cda54p-276, -0x3.df16f79756420p-496)
    @test sin(Interval(-0x7.ecc4c5eec4cacp-328, -0x2.e02e1db7a08f6p-876)) == Interval(-0x7.ecc4c5eec4cacp-328, -0x2.e02e1db7a08f4p-876)
    @test sin(Interval(-0xc.1bc7a4c89d440p-256, +0x2.a7f56252d1d34p-608)) == Interval(-0xc.1bc7a4c89d440p-256, +0x2.a7f56252d1d34p-608)
    @test sin(Interval(-0xb.ce50d7b2f2868p-236, -0xe.6b08988339b80p-432)) == Interval(-0xb.ce50d7b2f2868p-236, -0xe.6b08988339b78p-432)
    @test cos(Interval(-0xa.644c9d88ea8c8p-152, -0xd.8ec7927926f18p-944)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0x1.9ee1a9db994f5p-436, -0x6.d914701c82fecp-624)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0x5.65057f3effc60p+4, -0x2.3617cf5815ecap-960)) == Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0)
    @test cos(Interval(-0x1.975299ccb0e08p-372, +0xb.bec7d35b45b00p-588)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0x3.51d388d47aed2p-356, -0x1.c3a9cd7025105p-564)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0xc.db363268cf708p-332, -0x2.171b7d7bfe4e0p-412)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0x1.32690aac2472dp-40, -0x8.706ebdcf39c88p-792)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0x5.0145af0c53324p-200, -0x2.f5a0cb3301856p-204)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(0xf.4077c7e8cd6a0p-268, 0x3.753426098ac5ap-80)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0xb.b25f8d8bb7fb8p-376, -0x2.017a332f9b05cp-916)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0xd.947ca427fdfe0p-592, +0xe.3be493b5bc8e8p-16)) == Interval(0xf.fffff9ab27e58p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0x9.c46198b2471f0p-336, -0x1.65ed85df2d4b7p-576)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0x3.2c867c027db44p-936, +0x6.1883ea827ab6cp-388)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0x3.560ef91c47deap-492, +0x5.413664dd17abcp-20)) == Interval(0xf.ffffffff231a0p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0x8.36bfcd74a6d68p-304, -0x3.2c20eb130d510p-836)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0x6.bcec84603958cp-500, -0x1.068b13da99666p-760)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0x1.2789c2d583bcdp-568, -0x1.f2bd89dad0665p-780)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0xc.fe4e8d857e3e0p-548, +0x1.580844b9dc45cp-780)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0xc.508d29acb01b8p-52, +0x1.b1e6b793078ddp-664)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0xa.12f7783880a78p-124, -0x3.765df69ee106ep-548)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0x6.3a58d52fdf844p-896, -0x1.039e2518cf503p-1008)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0xb.dd3171fdeec18p-168, +0x1.069e434ee9e0fp-740)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0x3.cf0053257533ap-776, -0x1.7883a587654e5p-928)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(0x1.455801d3d2b63p-704, 0x3.a4c915783d07ap-28)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0x2.097d06f4de3e2p-376, +0x2.2e7561fd9255ep-772)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0x1.7e13dbb66e5a3p-84, -0x6.bc8f45d6a8f48p-540)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0x4.1f50c5f2cda54p-276, -0x3.df16f79756422p-496)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0x7.ecc4c5eec4cacp-328, -0x2.e02e1db7a08f6p-876)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0xc.1bc7a4c89d440p-256, +0x2.a7f56252d1d34p-608)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test cos(Interval(-0xb.ce50d7b2f2868p-236, -0xe.6b08988339b80p-432)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test tan(Interval(0x4.6af931a62eb70p+4, 0x4.6c0d89acf83f0p+4)) == Interval(-0x4.2b94a5b864748p+16, -0xe.cc7effc39bbe8p+0)
    @test tan(Interval(0x9.b824319678e98p+4, 0x9.b8365416b3188p+4)) == Interval(-0x9.517610c9ff4f0p+28, -0xe.1dcebd0aba128p+4)
    @test tan(Interval(0xe.231d6de6b2910p+0, 0xe.232155989fd58p+0)) == Interval(-0x1.1a74cc770ca81p+20, -0x4.09e5fc000b430p+12)
    @test tan(Interval(0x3.a1e994576af38p+4, 0x3.a1f62cb3d8b0cp+4)) == Interval(-0x3.edbbe63a85a20p+12, -0x1.3ec2e09b0b82dp+8)
    @test tan(Interval(0x4.504512c674c88p+8, 0x4.5045147df4570p+8)) == Interval(-0xc.5e819f2bca708p+28, -0x9.51d20751384c0p+12)
    @test tan(Interval(0x7.da9e8c267b000p+0, 0xa.ccc7028a13e50p+0)) == Interval(-0x8.ce26da7b8cca8p+20, +0x5.0ba299c8f763cp+0)
    @test tan(Interval(0xc.ca9e956e09870p+12, 0xc.ca9feb35e8d28p+12)) == Interval(-0x9.40d68d3420248p+16, -0xb.f4cb43c962b98p+0)
    @test tan(Interval(0x2.f6b1d30e1ac2cp+8, 0x2.f6b1ead90ed6ep+8)) == Interval(-0x1.1e211833a60a2p+20, -0xa.bbfd5c235e8e8p+8)
    @test tan(Interval(0xb.c33774ac8c510p+8, 0xb.c3378f9640b80p+8)) == Interval(-0x3.b8e9a3359ea76p+12, -0x8.33c065b080f78p+8)
    @test tan(Interval(0x4.b65f2027400ecp+0, 0x4.b65f690a4503cp+0)) == Interval(-0x2.d46ad27ddb548p+24, -0x3.7ecf31f99adc4p+16)
    @test tan(Interval(0x3.c60a2c774d8a6p+8, 0x3.c60a76b28e42cp+8)) == Interval(-0x3.28e3c44c11b44p+24, -0x3.72d85b31bd660p+8)
    @test tan(Interval(0x7.da9e8a5df3b7cp+0, 0x7.daa9cfe45466cp+0)) == Interval(-0x1.d9b11082e8fc3p+28, -0x1.6b6333e88c1dfp+12)
    @test tan(Interval(0x3.a1e953315b022p+4, 0x3.a3624fc9b84c0p+4)) == Interval(-0x4.91a5298a762fcp+24, -0xa.d59baca695f48p+0)
    @test tan(Interval(0x7.da9e8ab1b7b7cp+0, 0x8.e4a2bcbb988b0p+0)) == Interval(-0x2.c52ad8545ac54p+24, -0x9.691ccdb9751e8p-4)
    @test tan(Interval(0x5.48783c12b018cp+8, 0x5.487863a8a0c78p+8)) == Interval(-0x4.7465d978ff1e8p+4, -0x4.455187267b294p+4)
    @test tan(Interval(0x1.ab41b772619c2p+4, 0x1.ab96c295e1a23p+4)) == Interval(-0x2.55de9f429f276p+16, -0x3.02439c1296068p+4)
    @test tan(Interval(0x1.87e20c8b7ccc1p+16, 0x1.87e20e060934fp+16)) == Interval(-0x7.5f7bb0c55311cp+28, -0xa.d1f5d5f3730e8p+4)
    @test tan(Interval(0x2.5ba5629043048p+16, 0x2.5ba5a6106ddf4p+16)) == Interval(-0x4.bde3c915168d8p+4, -0x3.84ed584601b4cp+0)
    @test tan(Interval(0x1.a9af913ee27cfp+8, 0x1.a9afa6d06e549p+8)) == Interval(-0x2.cb455269cb954p+16, -0xb.ace6e2eaa9098p+8)
    @test tan(Interval(0x7.64cf403a51948p+8, 0x7.64d139f1912e4p+8)) == Interval(-0x5.38f704820a47cp+28, -0x8.19686283b81e8p+4)
    @test tan(Interval(0x4.1437b08f8ba70p+16, 0x4.1439a27e86d50p+16)) == Interval(-0x1.3adb30f7a9b56p+24, +0x6.48c7464a8f9a0p-4)
    @test tan(Interval(0x2.74518b3bafb7cp+4, 0x2.74518de5a60c0p+4)) == Interval(-0xf.8e3a10db36640p+24, -0x5.ff456443fd8b8p+16)
    @test tan(Interval(0x1.dd85a7816a0ffp+4, 0x1.dd89849dfdf09p+4)) == Interval(-0x3.fa5c8bd1a67ecp+20, -0x4.23d96b0387510p+8)
    @test tan(Interval(0x1.ab41b29964887p+4, 0x1.b5cbd4ed0d1ddp+4)) == Interval(-0x7.fc8b577b97310p+16, -0x1.4ab8a7bb81552p+0)
    @test tan(Interval(0x1.19454e95bc804p+12, 0x1.194551e9ad95ap+12)) == Interval(-0x1.2a53ecf4c9b1ap+12, -0x3.d27f074c2da94p+8)
    @test tan(Interval(0x4.c4823d2c30d00p+8, 0x4.c482deae395ccp+8)) == Interval(-0x7.f7b434a3f3544p+28, -0x1.95c659f53b09bp+8)
    @test tan(Interval(0x1.dd85baab9baf9p+4, 0x1.dd8660423baacp+4)) == Interval(-0xd.2f5338751c9c8p+12, -0x1.623d682415be0p+12)
    @test tan(Interval(0x2.f798bb3536690p+16, 0x2.f79a363308c32p+16)) == Interval(-0x2.f8c1ac15a9ccep+16, -0x1.731b7acf94603p-4)
    @test tan(Interval(0x1.78fdb9f143616p+4, 0x1.78fdb9f143616p+4)) == Interval(-0xc.9cfd638fe0a18p+24, -0xc.9cfd638fe0a10p+24)
    @test tan(Interval(0x1.78fdb9f143616p+4, 0x1.79367e02d4eaap+4)) == Interval(-0xc.9cfd638fe0a18p+24, -0x4.826bf805c4e68p+4)
    @test cot(Interval(0x4.51d73651ea89cp+4, 0x4.52eb8e58b411cp+4)) == Interval(0xe.cc7effc39de08p+0, 0x4.2b94a5e391e20p+16)
    @test cot(Interval(0x9.9f02364234bc8p+4, 0x9.9f1458c26eeb8p+4)) == Interval(0xe.1dcebd0aa72d0p+4, 0x9.516dd4fa21cf0p+28)
    @test cot(Interval(0xc.90fdb8a26fbf8p+0, 0xc.9101a0545d040p+0)) == Interval(0x4.09e5fc0006c38p+12, 0x1.1a74cc76b6b71p+20)
    @test cot(Interval(0x3.88c7990326c68p+4, 0x3.88d4315f9483cp+4)) == Interval(0x1.3ec2e09b0928ap+8, 0x3.edbbe6390ef44p+12)
    @test cot(Interval(0x4.4eb2f3113085cp+8, 0x4.4eb2f4c8b0144p+8)) == Interval(0x9.51d206f220e70p+12, 0xc.5dda26e3680b8p+28)
    @test cot(Interval(0x6.487ed6e2382ecp+0, 0x9.3aa74d45d1138p+0)) == Interval(-0x5.0ba299c8f7644p+0, +0x8.ce26d93009840p+20)
    @test cot(Interval(0xc.ca857372b5428p+12, 0xc.ca86c93a948e0p+12)) == Interval(0xb.f4cb43cc4c9e8p+0, 0x9.40d848ddfc130p+16)
    @test cot(Interval(0x2.f51fb358d6800p+8, 0x2.f51fcb23ca942p+8)) == Interval(0xa.bbfd5c1b7c1d8p+8, 0x1.1e2116d584957p+20)
    @test cot(Interval(0xb.c1a554f7480e0p+8, 0xb.c1a56fe0fc750p+8)) == Interval(0x8.33c065bcb81c8p+8, 0x3.b8e9a35ddf6bcp+12)
    @test cot(Interval(0x3.243f6ae2fd3d8p+0, 0x3.243fb3c602324p+0)) == Interval(0x3.7ecf31f964f42p+16, 0x2.d46ad05a0b746p+24)
    @test cot(Interval(0x3.c4780cc209478p+8, 0x3.c47856fd49ffep+8)) == Interval(0x3.72d85b3269a44p+8, 0x3.28e454e439a90p+24)
    @test cot(Interval(0x6.487ed519b0e68p+0, 0x6.488a1aa011958p+0)) == Interval(0x1.6b6333e883806p+12, 0x1.d9b101df34e20p+28)
    @test cot(Interval(0x3.88c757dd16d52p+4, 0x3.8a405475741f0p+4)) == Interval(0xa.d59baca695410p+0, 0x4.91a509de53224p+24)
    @test cot(Interval(0x6.487ed56d74e68p+0, 0x7.5283077755b9cp+0)) == Interval(0x9.691ccdb975190p-4, 0x2.c52ad6475d346p+24)
    @test cot(Interval(0x5.46e61c5d6bd60p+8, 0x5.46e643f35c84cp+8)) == Interval(0x4.4551872667304p+4, 0x4.7465d978e9638p+4)
    @test cot(Interval(0x1.921fbc1e1d6f1p+4, 0x1.9274c7419d752p+4)) == Interval(0x3.02439c1295bb8p+4, 0x2.55de9f3fccf28p+16)
    @test cot(Interval(0x1.87e07a6bc787dp+16, 0x1.87e07be653f0bp+16)) == Interval(0xa.d1f5d5ded35e0p+4, 0x7.55f4abd4357c8p+28)
    @test cot(Interval(0x2.5ba3d0708dc04p+16, 0x2.5ba413f0b89b0p+16)) == Interval(0x3.84ed5845dbfb2p+0, 0x4.bde3c91120740p+4)
    @test cot(Interval(0x1.a81d71899e3a2p+8, 0x1.a81d871b2a11cp+8)) == Interval(0xb.ace6e2e9da370p+8, 0x2.cb45525df368ep+16)
    @test cot(Interval(0x7.633d20850d51cp+8, 0x7.633f1a3c4ceb8p+8)) == Interval(0x8.19686283704c0p+4, 0x5.38d928bc4d11cp+28)
    @test cot(Interval(0x4.14361e6fd662cp+16, 0x4.1438105ed190cp+16)) == Interval(-0x6.48c7464ac3a74p-4, +0x1.3ad6ed9b4c193p+24)
    @test cot(Interval(0x2.5b2f8fe76b8acp+4, 0x2.5b2f929161df0p+4)) == Interval(0x5.ff45640d6bf8cp+16, 0xf.8e38a1b8f3ce0p+24)
    @test cot(Interval(0x1.c463ac2d25e2ep+4, 0x1.c4678949b9c38p+4)) == Interval(0x4.23d96b037e734p+8, 0x3.fa5c8b4eb13bap+20)
    @test cot(Interval(0x1.921fb745205b6p+4, 0x1.9ca9d998c8f0cp+4)) == Interval(0x1.4ab8a7bb8153cp+0, 0x7.fc8b575a99618p+16)
    @test cot(Interval(0x1.192c2c9a683c1p+12, 0x1.192c2fee59517p+12)) == Interval(0x3.d27f074ed4c1ap+8, 0x1.2a53ecf8bbb09p+12)
    @test cot(Interval(0x4.c2f01d76ec8d4p+8, 0x4.c2f0bef8f51a0p+8)) == Interval(0x1.95c659f50f06fp+8, 0x7.f76eb663a7898p+28)
    @test cot(Interval(0x1.c463bf5757828p+4, 0x1.c46464edf77dbp+4)) == Interval(0x1.623d682405e56p+12, 0xd.2f53386f7df28p+12)
    @test cot(Interval(0x2.f79729158124cp+16, 0x2.f798a413537eep+16)) == Interval(0x1.731b7acf66e92p-4, 0x2.f8c19331ecbfcp+16)
    @test cot(Interval(0x3.371943e536e9ep+8, 0x3.371d0784693fap+8)) == Interval(0x3.e06d09fc7ddc2p+4, 0x2.c1b5e6f32fdeep+8)
    @test cot(Interval(0x1.5fdbbe9cff344p+4, 0x1.601482ae90bd8p+4)) == Interval(0x4.826bf805c583cp+4, 0xc.9cfdb05def930p+24)
    @test asin(Interval(-0x3.11a309475e762p-164, -0xc.3784302e15500p-680)) == Interval(-0x3.11a309475e764p-164, -0xc.3784302e15500p-680)
    @test asin(Interval(-0x5.7dd17a4248d38p-280, -0x2.898fc0f386f74p-640)) == Interval(-0x5.7dd17a4248d3cp-280, -0x2.898fc0f386f74p-640)
    @test asin(Interval(-0xe.d83dcd7f564a0p-296, -0x1.62f61fba0f40fp-764)) == Interval(-0xe.d83dcd7f564a8p-296, -0x1.62f61fba0f40fp-764)
    @test asin(Interval(-0x1.67712a1e64c2cp-944, -0x1.c0102c4d258efp-976)) == Interval(-0x1.67712a1e64c2dp-944, -0x1.c0102c4d258efp-976)
    @test asin(Interval(0x2.e3d991ae84668p-728, 0x1.92c3c728ccf4ap-612)) == Interval(0x2.e3d991ae84668p-728, 0x1.92c3c728ccf4bp-612)
    @test asin(Interval(-0x1.bcd3feb3b0175p-640, +0x1.bebe69e3bf3c2p-536)) == Interval(-0x1.bcd3feb3b0176p-640, +0x1.bebe69e3bf3c3p-536)
    @test asin(Interval(-0x1.2469575189327p-372, -0x7.51c0c39f58a4cp-1008)) == Interval(-0x1.2469575189328p-372, -0x7.51c0c39f58a4cp-1008)
    @test asin(Interval(-0x1.c4d163a6cccd9p-336, -0x1.3bee6dab70397p-796)) == Interval(-0x1.c4d163a6cccdap-336, -0x1.3bee6dab70397p-796)
    @test asin(Interval(-0x2.0fae5de90c98cp-896, -0x2.2079777ec2418p-976)) == Interval(-0x2.0fae5de90c98ep-896, -0x2.2079777ec2418p-976)
    @test asin(Interval(-0x1.08c248c37e53bp-816, +0x2.8c9f04ee5de84p-948)) == Interval(-0x1.08c248c37e53cp-816, +0x2.8c9f04ee5de86p-948)
    @test asin(Interval(-0x2.0002542b01474p-228, +0x2.4d59f217bf74cp-796)) == Interval(-0x2.0002542b01476p-228, +0x2.4d59f217bf74ep-796)
    @test asin(Interval(0xd.d4033889729a0p-844, 0x7.44451bf919d78p-556)) == Interval(0xd.d4033889729a0p-844, 0x7.44451bf919d7cp-556)
    @test asin(Interval(-0x2.08918b016995cp-64, +0x3.3fc26450c6e4ap-268)) == Interval(-0x2.08918b016995ep-64, +0x3.3fc26450c6e4cp-268)
    @test asin(Interval(-0x2.66c95bd8d7716p-388, +0x1.7e16b310f878ap-232)) == Interval(-0x2.66c95bd8d7718p-388, +0x1.7e16b310f878bp-232)
    @test asin(Interval(-0x3.d9c66bd30b774p-256, -0x4.a8c30f678cb68p-456)) == Interval(-0x3.d9c66bd30b776p-256, -0x4.a8c30f678cb68p-456)
    @test asin(Interval(-0x1.aa045ccb15aedp-804, +0xd.450c473265610p-24)) == Interval(-0x1.aa045ccb15aeep-804, +0xd.450c473266e68p-24)
    @test asin(Interval(-0x2.23adfa571fc3cp-344, -0x1.30d1074dc059ep-868)) == Interval(-0x2.23adfa571fc3ep-344, -0x1.30d1074dc059ep-868)
    @test asin(Interval(-0x3.dfbc1a4bf3888p-68, -0x4.a89e39b247c84p-840)) == Interval(-0x3.dfbc1a4bf388ap-68, -0x4.a89e39b247c84p-840)
    @test asin(Interval(0x9.583064525d370p-496, 0x2.c67652f06a55ep-408)) == Interval(0x9.583064525d370p-496, 0x2.c67652f06a560p-408)
    @test asin(Interval(-0x3.38bf880ec3082p-304, -0x7.7b19877e536acp-512)) == Interval(-0x3.38bf880ec3084p-304, -0x7.7b19877e536acp-512)
    @test asin(Interval(-0x2.adbf037238702p-44, +0x1.98dc940c3ae1ep-564)) == Interval(-0x2.adbf037238704p-44, +0x1.98dc940c3ae1fp-564)
    @test asin(Interval(-0x4.e4a79c48b3a58p-328, +0xa.28b02e59d39d8p-856)) == Interval(-0x4.e4a79c48b3a5cp-328, +0xa.28b02e59d39e0p-856)
    @test asin(Interval(-0x6.80d3e87b911d8p-232, -0x2.3df54212c46e4p-520)) == Interval(-0x6.80d3e87b911dcp-232, -0x2.3df54212c46e4p-520)
    @test asin(Interval(-0x1.4e54c309c46f8p-480, +0x9.47e982ac83f98p-688)) == Interval(-0x1.4e54c309c46f9p-480, +0x9.47e982ac83fa0p-688)
    @test asin(Interval(-0x2.276202227a6dep-808, +0x1.c53e9ba64fadfp-768)) == Interval(-0x2.276202227a6e0p-808, +0x1.c53e9ba64fae0p-768)
    @test asin(Interval(-0x4.8e4b4d7ba6dd0p-212, -0x1.4b35284c1064bp-548)) == Interval(-0x4.8e4b4d7ba6dd4p-212, -0x1.4b35284c1064bp-548)
    @test asin(Interval(-0x3.5c52b8d9ff582p-248, -0x2.af868d652b866p-912)) == Interval(-0x3.5c52b8d9ff584p-248, -0x2.af868d652b866p-912)
    @test asin(Interval(0x1.6938cc5ee183ap-692, 0xb.f7a583ac38168p-664)) == Interval(0x1.6938cc5ee183ap-692, 0xb.f7a583ac38170p-664)
    @test asin(Interval(-0x3.68b35f23b2506p-560, +0x9.f9c9246d05138p-304)) == Interval(-0x3.68b35f23b2508p-560, +0x9.f9c9246d05140p-304)
    @test asin(Interval(-0xa.bde70b6850ea0p-516, +0x2.bb76d5bf703fap-1020)) == Interval(-0xa.bde70b6850ea8p-516, +0x2.bb76d5bf703fcp-1020)
    @test acos(Interval(-0x3.11a309475e762p-164, -0xc.3784302e15500p-680)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x5.7dd17a4248d38p-280, -0x2.898fc0f386f74p-640)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0xe.d83dcd7f564a0p-296, -0x1.62f61fba0f40fp-764)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x1.67712a1e64c2cp-944, -0x1.c0102c4d258efp-976)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(0x2.e3d991ae84668p-728, 0x1.92c3c728ccf4ap-612)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x1.bcd3feb3b0175p-640, +0x1.bebe69e3bf3c2p-536)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x1.2469575189327p-372, -0x7.51c0c39f58a4cp-1008)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x1.c4d163a6cccd9p-336, -0x1.3bee6dab70397p-796)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x2.0fae5de90c98cp-896, -0x2.2079777ec2418p-976)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x1.08c248c37e53bp-816, +0x2.8c9f04ee5de84p-948)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x2.0002542b01474p-228, +0x2.4d59f217bf74cp-796)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(0xd.d4033889729a0p-844, 0x7.44451bf919d78p-556)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x2.08918b016995cp-64, +0x3.3fc26450c6e4ap-268)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x2.66c95bd8d7716p-388, +0x1.7e16b310f878ap-232)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x3.d9c66bd30b774p-256, -0x4.a8c30f678cb68p-456)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x1.aa045ccb15aedp-804, +0xd.450c473265610p-24)) == Interval(0x1.921fa7ff368a5p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x2.23adfa571fc3cp-344, -0x1.30d1074dc059ep-868)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x3.dfbc1a4bf3888p-68, -0x4.a89e39b247c84p-840)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(0x9.583064525d370p-496, 0x2.c67652f06a55ep-408)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x3.38bf880ec3082p-304, -0x7.7b19877e536acp-512)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x2.adbf037238702p-44, +0x1.98dc940c3ae1ep-564)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442fc7p+0)
    @test acos(Interval(-0x4.e4a79c48b3a58p-328, +0xa.28b02e59d39d8p-856)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x6.80d3e87b911d8p-232, -0x2.3df54212c46e4p-520)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x1.4e54c309c46f8p-480, +0x9.47e982ac83f98p-688)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x2.276202227a6dep-808, +0x1.c53e9ba64fadfp-768)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x4.8e4b4d7ba6dd0p-212, -0x1.4b35284c1064bp-548)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x3.5c52b8d9ff582p-248, -0x2.af868d652b866p-912)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(0x1.6938cc5ee183ap-692, 0xb.f7a583ac38168p-664)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0x3.68b35f23b2506p-560, +0x9.f9c9246d05138p-304)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test acos(Interval(-0xa.bde70b6850ea0p-516, +0x2.bb76d5bf703fap-1020)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test atan(Interval(0x1.7a77bfccf5a9ep-232, 0x2.8457bc029986ep+112)) == Interval(0x1.7a77bfccf5a9dp-232, 0x1.921fb54442d19p+0)
    @test atan(Interval(0x3.c5ec30fbb68c8p-508, 0x6.05c0bb1bcb730p-220)) == Interval(0x3.c5ec30fbb68c6p-508, 0x6.05c0bb1bcb730p-220)
    @test atan(Interval(0xe.20ff41bd18058p-204, 0x2.9b09919bf9d9ep+272)) == Interval(0xe.20ff41bd18050p-204, 0x1.921fb54442d19p+0)
    @test atan(Interval(0x2.075df98b2478cp-456, 0x1.1503444763fc5p-416)) == Interval(0x2.075df98b2478ap-456, 0x1.1503444763fc5p-416)
    @test atan(Interval(0x1.5444e676976f1p+252, 0x2.7c064f6929234p+292)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test atan(Interval(0x1.3a01905e36f84p+0, 0x4.ecbc855871080p+332)) == Interval(0xe.3062e34353278p-4, 0x1.921fb54442d19p+0)
    @test atan(Interval(0x2.404e44c49c644p-440, 0x7.32edab7f60a50p+236)) == Interval(0x2.404e44c49c642p-440, 0x1.921fb54442d19p+0)
    @test atan(Interval(0x1.63a15e999eb64p-344, 0x6.5263cf84ef388p+172)) == Interval(0x1.63a15e999eb63p-344, 0x1.921fb54442d19p+0)
    @test atan(Interval(0x6.941f470a70074p-756, 0x1.4171976a1ca54p-288)) == Interval(0x6.941f470a70070p-756, 0x1.4171976a1ca54p-288)
    @test atan(Interval(0x7.78a1f475a306cp-564, 0x4.69bb1d34b9570p-76)) == Interval(0x7.78a1f475a3068p-564, 0x4.69bb1d34b9570p-76)
    @test atan(Interval(0x1.ba04d452bbb35p+180, 0x1.f0d19adcb5d74p+312)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test atan(Interval(0x2.6abc15579b2b2p-48, 0x2.e046db554037cp+256)) == Interval(0x2.6abc15579b2b0p-48, 0x1.921fb54442d19p+0)
    @test atan(Interval(0x8.297a99ed9ed08p+8, 0xe.33c49cf5b8790p+652)) == Interval(0x1.920057e3a66f1p+0, 0x1.921fb54442d19p+0)
    @test atan(Interval(0x3.436dfe8f08194p+48, 0x2.a69a969772fdep+688)) == Interval(0x1.921fb54442d13p+0, 0x1.921fb54442d19p+0)
    @test atan(Interval(0x6.3e590e626451cp-172, 0x1.7aaa15ebbd3f2p+8)) == Interval(0x6.3e590e6264518p-172, 0x1.9172a3136eb8dp+0)
    @test atan(Interval(0x6.acfa418d8f92cp-544, 0x2.8f9204bc4041ep+988)) == Interval(0x6.acfa418d8f928p-544, 0x1.921fb54442d19p+0)
    @test atan(Interval(0x2.bb570b356c6cap-440, 0x2.b00450a48d586p-148)) == Interval(0x2.bb570b356c6c8p-440, 0x2.b00450a48d586p-148)
    @test atan(Interval(0xc.41329461a0c30p-512, 0x1.9e7ddbbe00f75p+352)) == Interval(0xc.41329461a0c28p-512, 0x1.921fb54442d19p+0)
    @test atan(Interval(0x6.6978492a3064cp+188, 0xd.5e2045cee9720p+236)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test atan(Interval(0x7.dea605dec97ccp-316, 0x1.5bd629b25aa23p-236)) == Interval(0x7.dea605dec97c8p-316, 0x1.5bd629b25aa23p-236)
    @test atan(Interval(0xd.05e9ccf66cf58p+424, 0xb.a944253373080p+564)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test atan(Interval(0x6.65d7e0a247778p-56, 0x3.ae1dc13a652cap+168)) == Interval(0x6.65d7e0a247774p-56, 0x1.921fb54442d19p+0)
    @test atan(Interval(0x5.2b55801231ec8p-344, 0xa.27b4555158148p-68)) == Interval(0x5.2b55801231ec4p-344, 0xa.27b4555158148p-68)
    @test atan(Interval(0x6.36b661dce2688p-236, 0x1.d68a6ba7e617fp+12)) == Interval(0x6.36b661dce2684p-236, 0x1.921700d14cfe5p+0)
    @test atan(Interval(0x1.eb0e1ab78f314p-480, 0x1.98ef0c6a8bd66p+132)) == Interval(0x1.eb0e1ab78f313p-480, 0x1.921fb54442d19p+0)
    @test atan(Interval(0x7.4cf193131fa64p-192, 0x1.c08152cc09416p+220)) == Interval(0x7.4cf193131fa60p-192, 0x1.921fb54442d19p+0)
    @test atan(Interval(0x1.7036c237d5b00p-672, 0x6.f70e0da4d2ba0p-140)) == Interval(0x1.7036c237d5affp-672, 0x6.f70e0da4d2ba0p-140)
    @test atan(Interval(0x1.d283cf8f05665p+252, 0xb.24d19e00c8460p+324)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)
    @test atan(Interval(0x3.a0ee84451c92cp-324, 0xf.cc937fa330e40p+648)) == Interval(0x3.a0ee84451c92ap-324, 0x1.921fb54442d19p+0)
    @test atan(Interval(0x1.8bca641025a83p-124, 0x5.f775993940188p-120)) == Interval(0x1.8bca641025a82p-124, 0x5.f775993940188p-120)
    @test sinh(Interval(-0x3.53dc9496de0a0p-160, -0xc.287e0e10ec1b8p-960)) == Interval(-0x3.53dc9496de0a2p-160, -0xc.287e0e10ec1b8p-960)
    @test sinh(Interval(-0x1.cf3637dcbcc9ap-452, -0x5.e4846462ff33cp-636)) == Interval(-0x1.cf3637dcbcc9bp-452, -0x5.e4846462ff33cp-636)
    @test sinh(Interval(-0x1.0362421843787p+0, -0x3.3d2ccef698a5ap-972)) == Interval(-0x1.32197576f3697p+0, -0x3.3d2ccef698a5ap-972)
    @test sinh(Interval(-0x1.494a24a7585d1p-380, +0x1.a0790a9e3013ep-604)) == Interval(-0x1.494a24a7585d2p-380, +0x1.a0790a9e3013fp-604)
    @test sinh(Interval(-0x2.b64bc5e999866p-368, -0xf.0633041110c28p-572)) == Interval(-0x2.b64bc5e999868p-368, -0xf.0633041110c28p-572)
    @test sinh(Interval(-0x7.56f52f4fed854p-336, -0x4.f40a3934b3354p-416)) == Interval(-0x7.56f52f4fed858p-336, -0x4.f40a3934b3354p-416)
    @test sinh(Interval(-0xa.0e33c2ba95c88p-48, -0x1.1927ca3847669p-808)) == Interval(-0xa.0e33c2ba95c90p-48, -0x1.1927ca3847669p-808)
    @test sinh(Interval(-0x1.1bbbd6fe8b950p-208, -0x1.463a32dba649dp-220)) == Interval(-0x1.1bbbd6fe8b951p-208, -0x1.463a32dba649dp-220)
    @test sinh(Interval(0x5.290fe84915530p-268, 0x1.8c9af520c22c3p-96)) == Interval(0x5.290fe84915530p-268, 0x1.8c9af520c22c4p-96)
    @test sinh(Interval(-0x2.e7332c654abb6p-384, -0x1.4363967367f55p-932)) == Interval(-0x2.e7332c654abb8p-384, -0x1.4363967367f55p-932)
    @test sinh(Interval(-0x1.55ebb1d70a46ep-592, +0x4.733fa51468530p-20)) == Interval(-0x1.55ebb1d70a46fp-592, +0x4.733fa51477038p-20)
    @test sinh(Interval(-0x1.1b4b8388a3d92p-340, -0xd.51d4a3ce4c490p-600)) == Interval(-0x1.1b4b8388a3d93p-340, -0xd.51d4a3ce4c490p-600)
    @test sinh(Interval(-0x4.21b73745bc4c0p-952, +0xd.e40d83923c3e0p-404)) == Interval(-0x4.21b73745bc4c4p-952, +0xd.e40d83923c3e8p-404)
    @test sinh(Interval(-0x1.73d14fa7da1cbp-504, +0x1.5b3afeeb17a85p-28)) == Interval(-0x1.73d14fa7da1ccp-504, +0x1.5b3afeeb17a86p-28)
    @test sinh(Interval(-0x3.3cd34997df066p-320, -0x1.606c7bce75819p-852)) == Interval(-0x3.3cd34997df068p-320, -0x1.606c7bce75819p-852)
    @test sinh(Interval(-0xc.5356a56e59748p-516, -0x1.33b9a95c55513p-772)) == Interval(-0xc.5356a56e59750p-516, -0x1.33b9a95c55513p-772)
    @test sinh(Interval(-0x5.fa887950a63ccp-588, -0x2.b707741b15478p-800)) == Interval(-0x5.fa887950a63d0p-588, -0x2.b707741b15478p-800)
    @test sinh(Interval(-0x2.9476464aae5bap-548, +0x4.0734e17c026d4p-784)) == Interval(-0x2.9476464aae5bcp-548, +0x4.0734e17c026d8p-784)
    @test sinh(Interval(-0xf.a46ac05b0eaa8p-68, +0x1.efa89f34f4188p-684)) == Interval(-0xf.a46ac05b0eab0p-68, +0x1.efa89f34f4189p-684)
    @test sinh(Interval(-0x9.9488cb205afa8p-124, -0x2.940180d1aa2aep-556)) == Interval(-0x9.9488cb205afb0p-124, -0x2.940180d1aa2aep-556)
    @test sinh(Interval(-0x3.f9d9fe5792ce0p-912, -0x3.f00fc8ce24adcp-1016)) == Interval(-0x3.f9d9fe5792ce2p-912, -0x3.f00fc8ce24adcp-1016)
    @test sinh(Interval(-0x7.d5a28ef80d6b0p-176, +0xc.5d2b8ffcb2ad8p-756)) == Interval(-0x7.d5a28ef80d6b4p-176, +0xc.5d2b8ffcb2ae0p-756)
    @test sinh(Interval(-0x5.b5dcaa821a628p-784, -0x1.48532232c10fdp-940)) == Interval(-0x5.b5dcaa821a62cp-784, -0x1.48532232c10fdp-940)
    @test sinh(Interval(0x3.8110d13ab0378p-720, 0x2.77422e18981c2p-44)) == Interval(0x3.8110d13ab0378p-720, 0x2.77422e18981c4p-44)
    @test sinh(Interval(-0x1.4ad562c0b5178p-380, +0x3.ceb34f40ea9bap-792)) == Interval(-0x1.4ad562c0b5179p-380, +0x3.ceb34f40ea9bcp-792)
    @test sinh(Interval(-0x7.ed02ef56e40b0p-92, -0x1.8c80275a696b0p-552)) == Interval(-0x7.ed02ef56e40b4p-92, -0x1.8c80275a696b0p-552)
    @test sinh(Interval(-0x1.56fbe834fc822p-296, -0x3.66041558baca8p-516)) == Interval(-0x1.56fbe834fc823p-296, -0x3.66041558baca8p-516)
    @test sinh(Interval(-0x6.44524f6fccf8cp-340, -0x5.3e8ed576a1334p-896)) == Interval(-0x6.44524f6fccf90p-340, -0x5.3e8ed576a1334p-896)
    @test sinh(Interval(-0x8.92f5beda59c78p-268, +0x2.51b11c2ec76bap-612)) == Interval(-0x8.92f5beda59c80p-268, +0x2.51b11c2ec76bcp-612)
    @test sinh(Interval(-0x4.785c46bdc2a50p-244, -0x1.ba5c062de8f00p-432)) == Interval(-0x4.785c46bdc2a54p-244, -0x1.ba5c062de8f00p-432)
    @test cosh(Interval(-0x3.53dc9496de0a0p-160, -0xc.287e0e10ec1b8p-960)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x1.cf3637dcbcc9ap-452, -0x5.e4846462ff33cp-636)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x1.0362421843787p+0, -0x3.3d2ccef698a5ap-972)) == Interval(0x1.0000000000000p+0, 0x1.8f0a39674b193p+0)
    @test cosh(Interval(-0x1.494a24a7585d1p-380, +0x1.a0790a9e3013ep-604)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x2.b64bc5e999866p-368, -0xf.0633041110c28p-572)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x7.56f52f4fed854p-336, -0x4.f40a3934b3354p-416)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0xa.0e33c2ba95c88p-48, -0x1.1927ca3847669p-808)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x1.1bbbd6fe8b950p-208, -0x1.463a32dba649dp-220)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(0x5.290fe84915530p-268, 0x1.8c9af520c22c3p-96)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x2.e7332c654abb6p-384, -0x1.4363967367f55p-932)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x1.55ebb1d70a46ep-592, +0x4.733fa51468530p-20)) == Interval(0x1.0000000000000p+0, 0x1.0000000009e6fp+0)
    @test cosh(Interval(-0x1.1b4b8388a3d92p-340, -0xd.51d4a3ce4c490p-600)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x4.21b73745bc4c0p-952, +0xd.e40d83923c3e0p-404)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x1.73d14fa7da1cbp-504, +0x1.5b3afeeb17a85p-28)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x3.3cd34997df066p-320, -0x1.606c7bce75819p-852)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0xc.5356a56e59748p-516, -0x1.33b9a95c55513p-772)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x5.fa887950a63ccp-588, -0x2.b707741b15478p-800)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x2.9476464aae5bap-548, +0x4.0734e17c026d4p-784)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0xf.a46ac05b0eaa8p-68, +0x1.efa89f34f4188p-684)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x9.9488cb205afa8p-124, -0x2.940180d1aa2aep-556)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x3.f9d9fe5792ce0p-912, -0x3.f00fc8ce24adcp-1016)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x7.d5a28ef80d6b0p-176, +0xc.5d2b8ffcb2ad8p-756)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x5.b5dcaa821a628p-784, -0x1.48532232c10fdp-940)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(0x3.8110d13ab0378p-720, 0x2.77422e18981c2p-44)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x1.4ad562c0b5178p-380, +0x3.ceb34f40ea9bap-792)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x7.ed02ef56e40b0p-92, -0x1.8c80275a696b0p-552)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x1.56fbe834fc822p-296, -0x3.66041558baca8p-516)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x6.44524f6fccf8cp-340, -0x5.3e8ed576a1334p-896)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x8.92f5beda59c78p-268, +0x2.51b11c2ec76bap-612)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test cosh(Interval(-0x4.785c46bdc2a50p-244, -0x1.ba5c062de8f00p-432)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test tanh(Interval(0x1.7a77bfccf5a9ep-232, 0x2.8457bc029986ep+112)) == Interval(0x1.7a77bfccf5a9dp-232, 0x1.0000000000000p+0)
    @test tanh(Interval(0x3.c5ec30fbb68c8p-508, 0x6.05c0bb1bcb730p-220)) == Interval(0x3.c5ec30fbb68c6p-508, 0x6.05c0bb1bcb730p-220)
    @test tanh(Interval(0xe.20ff41bd18058p-204, 0x2.9b09919bf9d9ep+272)) == Interval(0xe.20ff41bd18050p-204, 0x1.0000000000000p+0)
    @test tanh(Interval(0x2.075df98b2478cp-456, 0x1.1503444763fc5p-416)) == Interval(0x2.075df98b2478ap-456, 0x1.1503444763fc5p-416)
    @test tanh(Interval(0x1.5444e676976f1p+252, 0x2.7c064f6929234p+292)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test tanh(Interval(0x1.3a01905e36f84p+0, 0x4.ecbc855871080p+332)) == Interval(0xd.772335e624b98p-4, 0x1.0000000000000p+0)
    @test tanh(Interval(0x2.404e44c49c644p-440, 0x7.32edab7f60a50p+236)) == Interval(0x2.404e44c49c642p-440, 0x1.0000000000000p+0)
    @test tanh(Interval(0x1.63a15e999eb64p-344, 0x6.5263cf84ef388p+172)) == Interval(0x1.63a15e999eb63p-344, 0x1.0000000000000p+0)
    @test tanh(Interval(0x6.941f470a70074p-756, 0x1.4171976a1ca54p-288)) == Interval(0x6.941f470a70070p-756, 0x1.4171976a1ca54p-288)
    @test tanh(Interval(0x7.78a1f475a306cp-564, 0x4.69bb1d34b9570p-76)) == Interval(0x7.78a1f475a3068p-564, 0x4.69bb1d34b9570p-76)
    @test tanh(Interval(0x1.ba04d452bbb35p+180, 0x1.f0d19adcb5d74p+312)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test tanh(Interval(0x2.6abc15579b2b2p-48, 0x2.e046db554037cp+256)) == Interval(0x2.6abc15579b2b0p-48, 0x1.0000000000000p+0)
    @test tanh(Interval(0x8.297a99ed9ed08p+8, 0xe.33c49cf5b8790p+652)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test tanh(Interval(0x3.436dfe8f08194p+48, 0x2.a69a969772fdep+688)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test tanh(Interval(0x6.3e590e626451cp-172, 0x1.7aaa15ebbd3f2p+8)) == Interval(0x6.3e590e6264518p-172, 0x1.0000000000000p+0)
    @test tanh(Interval(0x6.acfa418d8f92cp-544, 0x2.8f9204bc4041ep+988)) == Interval(0x6.acfa418d8f928p-544, 0x1.0000000000000p+0)
    @test tanh(Interval(0x2.bb570b356c6cap-440, 0x2.b00450a48d586p-148)) == Interval(0x2.bb570b356c6c8p-440, 0x2.b00450a48d586p-148)
    @test tanh(Interval(0xc.41329461a0c30p-512, 0x1.9e7ddbbe00f75p+352)) == Interval(0xc.41329461a0c28p-512, 0x1.0000000000000p+0)
    @test tanh(Interval(0x6.6978492a3064cp+188, 0xd.5e2045cee9720p+236)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test tanh(Interval(0x7.dea605dec97ccp-316, 0x1.5bd629b25aa23p-236)) == Interval(0x7.dea605dec97c8p-316, 0x1.5bd629b25aa23p-236)
    @test tanh(Interval(0xd.05e9ccf66cf58p+424, 0xb.a944253373080p+564)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test tanh(Interval(0x6.65d7e0a247778p-56, 0x3.ae1dc13a652cap+168)) == Interval(0x6.65d7e0a247774p-56, 0x1.0000000000000p+0)
    @test tanh(Interval(0x5.2b55801231ec8p-344, 0xa.27b4555158148p-68)) == Interval(0x5.2b55801231ec4p-344, 0xa.27b4555158148p-68)
    @test tanh(Interval(0x6.36b661dce2688p-236, 0x1.d68a6ba7e617fp+12)) == Interval(0x6.36b661dce2684p-236, 0x1.0000000000000p+0)
    @test tanh(Interval(0x1.eb0e1ab78f314p-480, 0x1.98ef0c6a8bd66p+132)) == Interval(0x1.eb0e1ab78f313p-480, 0x1.0000000000000p+0)
    @test tanh(Interval(0x7.4cf193131fa64p-192, 0x1.c08152cc09416p+220)) == Interval(0x7.4cf193131fa60p-192, 0x1.0000000000000p+0)
    @test tanh(Interval(0x1.7036c237d5b00p-672, 0x6.f70e0da4d2ba0p-140)) == Interval(0x1.7036c237d5affp-672, 0x6.f70e0da4d2ba0p-140)
    @test tanh(Interval(0x1.d283cf8f05665p+252, 0xb.24d19e00c8460p+324)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0)
    @test tanh(Interval(0x3.a0ee84451c92cp-324, 0xf.cc937fa330e40p+648)) == Interval(0x3.a0ee84451c92ap-324, 0x1.0000000000000p+0)
    @test tanh(Interval(0x1.8bca641025a83p-124, 0x5.f775993940188p-120)) == Interval(0x1.8bca641025a82p-124, 0x5.f775993940188p-120)
    @test coth(Interval(0x5.9d7eeea9b9ee0p-264, 0x3.f03d06503caa2p+92)) == Interval(0x1.0000000000000p+0, 0x2.d97240157d2c8p+260)
    @test coth(Interval(-0x3.f03d06503caa2p+92, -0x5.9d7eeea9b9ee0p-264)) == Interval(-0x2.d97240157d2c8p+260, -0x1.0000000000000p+0)
    @test coth(Interval(0xb.6600f238fe060p-520, 0x1.bb63631b595b0p-224)) == Interval(0x9.3cea8a8c76fc0p+220, 0x1.6758d7d180f69p+516)
    @test coth(Interval(-0x1.bb63631b595b0p-224, -0xb.6600f238fe060p-520)) == Interval(-0x1.6758d7d180f69p+516, -0x9.3cea8a8c76fc0p+220)
    @test coth(Interval(0x4.dc89ed0034c6cp-240, 0xd.a1d118a3891e8p+232)) == Interval(0x1.0000000000000p+0, 0x3.4a8ab6b06359ap+236)
    @test coth(Interval(-0xd.a1d118a3891e8p+232, -0x4.dc89ed0034c6cp-240)) == Interval(-0x3.4a8ab6b06359ap+236, -0x1.0000000000000p+0)
    @test coth(Interval(0x4.7f93f879a61a4p-492, 0x1.bdc6388153882p-452)) == Interval(0x9.3041f45fa3d78p+448, 0x3.8e8e46d77a03ep+488)
    @test coth(Interval(-0x1.bdc6388153882p-452, -0x4.7f93f879a61a4p-492)) == Interval(-0x3.8e8e46d77a03ep+488, -0x9.3041f45fa3d78p+448)
    @test coth(Interval(0xf.c7c928d9bb718p+192, 0x8.41a7954605a98p+224)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test coth(Interval(-0x8.41a7954605a98p+224, -0xf.c7c928d9bb718p+192)) == Interval(-0x1.0000000000001p+0, -0x1.0000000000000p+0)
    @test coth(Interval(0x3.f07c0b8005270p-44, 0x2.dd3c8580fcbe0p+276)) == Interval(0x1.0000000000000p+0, 0x4.0fc1103283a70p+40)
    @test coth(Interval(-0x2.dd3c8580fcbe0p+276, -0x3.f07c0b8005270p-44)) == Interval(-0x4.0fc1103283a70p+40, -0x1.0000000000000p+0)
    @test coth(Interval(0xa.a97ded29fff30p-480, 0x5.35eea9c504860p+196)) == Interval(0x1.0000000000000p+0, 0x1.802a4f4efe3b2p+476)
    @test coth(Interval(-0x5.35eea9c504860p+196, -0xa.a97ded29fff30p-480)) == Interval(-0x1.802a4f4efe3b2p+476, -0x1.0000000000000p+0)
    @test coth(Interval(0x3.cf4b727451402p-376, 0x1.759f6c21daf9ap+140)) == Interval(0x1.0000000000000p+0, 0x4.33233873998c8p+372)
    @test coth(Interval(-0x1.759f6c21daf9ap+140, -0x3.cf4b727451402p-376)) == Interval(-0x4.33233873998c8p+372, -0x1.0000000000000p+0)
    @test coth(Interval(0x6.55376f4c1c50cp-772, 0x1.0120dd4ebc019p-328)) == Interval(0xf.ee06735c6d910p+324, 0x2.86c88f09a2cbep+768)
    @test coth(Interval(-0x1.0120dd4ebc019p-328, -0x6.55376f4c1c50cp-772)) == Interval(-0x2.86c88f09a2cbep+768, -0xf.ee06735c6d910p+324)
    @test coth(Interval(0x1.b63f1f7aed49ep-580, 0x2.245af5bcb3356p-132)) == Interval(0x7.7838528478bf8p+128, 0x9.58a984202b8e8p+576)
    @test coth(Interval(-0x2.245af5bcb3356p-132, -0x1.b63f1f7aed49ep-580)) == Interval(-0x9.58a984202b8e8p+576, -0x7.7838528478bf8p+128)
    @test coth(Interval(0x2.73b23cc8d8f76p+116, 0x1.f1e4f59403fc3p+276)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test coth(Interval(-0x1.f1e4f59403fc3p+276, -0x2.73b23cc8d8f76p+116)) == Interval(-0x1.0000000000001p+0, -0x1.0000000000000p+0)
    @test coth(Interval(0x2.5b4f5f71ca5fcp-100, 0x1.5c244ce1ac6b3p+204)) == Interval(0x1.0000000000000p+0, 0x6.ca09d0ddc330cp+96)
    @test coth(Interval(-0x1.5c244ce1ac6b3p+204, -0x2.5b4f5f71ca5fcp-100)) == Interval(-0x6.ca09d0ddc330cp+96, -0x1.0000000000000p+0)
    @test coth(Interval(0x1.4e7212dd5abb9p+4, 0xd.9f35e61fdf7e8p+592)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test coth(Interval(-0xd.9f35e61fdf7e8p+592, -0x1.4e7212dd5abb9p+4)) == Interval(-0x1.0000000000001p+0, -0x1.0000000000000p+0)
    @test coth(Interval(0x1.271b33491e515p+20, 0x2.b3031cf3af4ecp+628)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0)
    @test coth(Interval(-0x2.b3031cf3af4ecp+628, -0x1.271b33491e515p+20)) == Interval(-0x1.0000000000001p+0, -0x1.0000000000000p+0)
    @test coth(Interval(0x9.db635e2ff52b0p-180, 0x2.af04176524d06p-24)) == Interval(0x5.f646a7779f114p+20, 0x1.9f8afaa8dbff9p+176)
    @test coth(Interval(-0x2.af04176524d06p-24, -0x9.db635e2ff52b0p-180)) == Interval(-0x1.9f8afaa8dbff9p+176, -0x5.f646a7779f114p+20)
    @test asinh(Interval(0x1.7a77bfccf5a9ep-232, 0x2.8457bc029986ep+112)) == Interval(0x1.7a77bfccf5a9dp-232, 0x4.f3fa9cd060658p+4)
    @test asinh(Interval(0x3.c5ec30fbb68c8p-508, 0x6.05c0bb1bcb730p-220)) == Interval(0x3.c5ec30fbb68c6p-508, 0x6.05c0bb1bcb730p-220)
    @test asinh(Interval(0xe.20ff41bd18058p-204, 0x2.9b09919bf9d9ep+272)) == Interval(0xe.20ff41bd18050p-204, 0xb.e2fd554e373e0p+4)
    @test asinh(Interval(0x2.075df98b2478cp-456, 0x1.1503444763fc5p-416)) == Interval(0x2.075df98b2478ap-456, 0x1.1503444763fc5p-416)
    @test asinh(Interval(0x1.5444e676976f1p+252, 0x2.7c064f6929234p+292)) == Interval(0xa.fa69a93525138p+4, 0xc.c008f1dba8390p+4)
    @test asinh(Interval(0x1.3a01905e36f84p+0, 0x4.ecbc855871080p+332)) == Interval(0x1.086affae230b6p+0, 0xe.8698b81e22ab0p+4)
    @test asinh(Interval(0x2.404e44c49c644p-440, 0x7.32edab7f60a50p+236)) == Interval(0x2.404e44c49c642p-440, 0xa.63ff3e7d6b730p+4)
    @test asinh(Interval(0x1.63a15e999eb64p-344, 0x6.5263cf84ef388p+172)) == Interval(0x1.63a15e999eb63p-344, 0x7.9c22b35b1cee0p+4)
    @test asinh(Interval(0x6.941f470a70074p-756, 0x1.4171976a1ca54p-288)) == Interval(0x6.941f470a70070p-756, 0x1.4171976a1ca54p-288)
    @test asinh(Interval(0x7.78a1f475a306cp-564, 0x4.69bb1d34b9570p-76)) == Interval(0x7.78a1f475a3068p-564, 0x4.69bb1d34b9570p-76)
    @test asinh(Interval(0x1.ba04d452bbb35p+180, 0x1.f0d19adcb5d74p+312)) == Interval(0x7.e017d1421aed4p+4, 0xd.99e3ccf428d70p+4)
    @test asinh(Interval(0x2.6abc15579b2b2p-48, 0x2.e046db554037cp+256)) == Interval(0x2.6abc15579b2b0p-48, 0xb.331fc2bc20e70p+4)
    #asinh [0X8.297A99ED9ED08P+8, 0XE.33C49CF5B8790P+652] = [0X8.567B3095B8380P+0, 0X1.C7474C3E00682P+8];
    #asinh [0X3.436DFE8F08194P+48, 0X2.A69A969772FDEP+688] = [0X2.325A084AF897EP+4, 0X1.DE8DA2F064858P+8];
    @test asinh(Interval(0x6.3e590e626451cp-172, 0x1.7aaa15ebbd3f2p+8)) == Interval(0x6.3e590e6264518p-172, 0x6.a13a85e654788p+0)
    @test asinh(Interval(0x6.acfa418d8f92cp-544, 0x2.8f9204bc4041ep+988)) == Interval(0x6.acfa418d8f928p-544, 0x2.ae767ff2330e0p+8)
    @test asinh(Interval(0x2.bb570b356c6cap-440, 0x2.b00450a48d586p-148)) == Interval(0x2.bb570b356c6c8p-440, 0x2.b00450a48d586p-148)
    @test asinh(Interval(0xc.41329461a0c30p-512, 0x1.9e7ddbbe00f75p+352)) == Interval(0xc.41329461a0c28p-512, 0xf.529af3b8107e0p+4)
    @test asinh(Interval(0x6.6978492a3064cp+188, 0xd.5e2045cee9720p+236)) == Interval(0x8.4dcecb852e1e8p+4, 0xa.6de648aa01a20p+4)
    @test asinh(Interval(0x7.dea605dec97ccp-316, 0x1.5bd629b25aa23p-236)) == Interval(0x7.dea605dec97c8p-316, 0x1.5bd629b25aa23p-236)
    #asinh [0XD.05E9CCF66CF58P+424, 0XB.A944253373080P+564] = [0X1.29277EA798036P+8, 0X1.8A159CCBD552AP+8];
    @test asinh(Interval(0x6.65d7e0a247778p-56, 0x3.ae1dc13a652cap+168)) == Interval(0x6.65d7e0a247774p-56, 0x7.671e008768830p+4)
    @test asinh(Interval(0x5.2b55801231ec8p-344, 0xa.27b4555158148p-68)) == Interval(0x5.2b55801231ec4p-344, 0xa.27b4555158148p-68)
    @test asinh(Interval(0x6.36b661dce2688p-236, 0x1.d68a6ba7e617fp+12)) == Interval(0x6.36b661dce2684p-236, 0x9.9e9f4f5a56088p+0)
    @test asinh(Interval(0x1.eb0e1ab78f314p-480, 0x1.98ef0c6a8bd66p+132)) == Interval(0x1.eb0e1ab78f313p-480, 0x5.ca82dedb3d320p+4)
    @test asinh(Interval(0x7.4cf193131fa64p-192, 0x1.c08152cc09416p+220)) == Interval(0x7.4cf193131fa60p-192, 0x9.9bf0b87669850p+4)
    @test asinh(Interval(0x1.7036c237d5b00p-672, 0x6.f70e0da4d2ba0p-140)) == Interval(0x1.7036c237d5affp-672, 0x6.f70e0da4d2ba0p-140)
    @test asinh(Interval(0x1.d283cf8f05665p+252, 0xb.24d19e00c8460p+324)) == Interval(0xa.ff762a8b30ea0p+4, 0xe.3af0836b2f5b0p+4)
    #asinh [0X3.A0EE84451C92CP-324, 0XF.CC937FA330E40P+648] = [0X3.A0EE84451C92AP-324, 0X1.C49CCB25BBD50P+8];
    @test asinh(Interval(0x1.8bca641025a83p-124, 0x5.f775993940188p-120)) == Interval(0x1.8bca641025a82p-124, 0x5.f775993940188p-120)
    @test acosh(Interval(0x5.ad89ad14ddc74p+272, 0x2.6ec5d31670a5ep+860)) == Interval(0xb.ef73bf42c19d8p+4, 0x2.55b05064b6c2ap+8)
    @test acosh(Interval(0x4.a457c35864940p+344, 0x2.3adefb54bc048p+444)) == Interval(0xf.0abc113db1af0p+4, 0x1.3540a29bc6b5ep+8)
    @test acosh(Interval(0x6.941c8b9506d90p+56, 0x3.b11d8083ae958p+744)) == Interval(0x2.964a9197bf832p+4, 0x2.05b3663fae652p+8)
    @test acosh(Interval(0x1.09a940a083ee3p+132, 0x1.047fd514adf08p+384)) == Interval(0x5.c39c22d7aa908p+4, 0x1.0ae10bdf7fe81p+8)
    @test acosh(Interval(0x7.710740b71a0d4p+256, 0xf.c0798d156bfa0p+560)) == Interval(0xb.42559b5cf34e8p+4, 0x1.879cce87ee3a1p+8)
    @test acosh(Interval(0x2.3721a01f70456p+564, 0x9.c62bbf31fd290p+728)) == Interval(0x1.886c6f1dddff7p+8, 0x1.fb958311209bfp+8)
    @test acosh(Interval(0x6.f06d452bdcef0p+44, 0x2.4825931366bbcp+520)) == Interval(0x2.120f95bd1f706p+4, 0x1.69f464545899ap+8)
    @test acosh(Interval(0x5.d326d4b0883d8p+76, 0x1.77175c5a113adp+528)) == Interval(0x3.7226bf0157930p+4, 0x1.6f0e8dbf98710p+8)
    @test acosh(Interval(0x1.05adfe119d4c2p+296, 0x2.6bcdf50e05e34p+1020)) == Interval(0xc.de2fbe78fec28p+4, 0x2.c49666459e1a4p+8)
    @test acosh(Interval(0xa.7f5d255b81268p+408, 0x1.9d1eddc132b36p+864)) == Interval(0x1.1dd92c82827a1p+8, 0x2.580d06072bf20p+8)
    @test acosh(Interval(0xc.fbe4e2c6d0a80p+484, 0x4.df75bdc17c330p+868)) == Interval(0x1.52bd770642386p+8, 0x2.5bedb7e376e18p+8)
    @test acosh(Interval(0xb.241032f9700a0p+380, 0x1.04a65b06b2920p+640)) == Interval(0x1.0a7fec190cceep+8, 0x1.bc5349b021815p+8)
    @test acosh(Interval(0x5.f207eaf5f8bb4p+608, 0xa.bc87c6f90aee0p+648)) == Interval(0x1.a7e8c5069ea32p+8, 0x1.c439e5e8a511cp+8)
    @test acosh(Interval(0x1.bcd62c46adfd7p+16, 0xa.cd289b35ecd00p+564)) == Interval(0xc.56062c0c41518p+0, 0x1.8a0201556d85ap+8)
    @test acosh(Interval(0x6.534bba40a0b44p+224, 0x1.8de35856e91fbp+452)) == Interval(0x9.dcd7cc0c7ffb8p+4, 0x1.3a6fc95911674p+8)
    @test acosh(Interval(0x2.c4f59012f4e48p+508, 0x1.1854765a9a205p+688)) == Interval(0x1.61d49df92ab79p+8, 0x1.ddab5081e5a0ep+8)
    @test acosh(Interval(0x8.6f890522c18b0p+44, 0x3.f87592d71e06cp+220)) == Interval(0x2.152f7d2dbf2bcp+4, 0x9.a907e7c701690p+4)
    @test acosh(Interval(0x9.2a9035a578970p+124, 0x1.35ee42dca8b75p+608)) == Interval(0x5.8dbe2a7e96990p+4, 0x1.a6515b9ecf2f1p+8)
    @test acosh(Interval(0x5.2641115f86d38p+204, 0x7.be33d080e6584p+252)) == Interval(0x8.fbbeb3b84c708p+4, 0xb.169bbe1313f68p+4)
    @test acosh(Interval(0xa.8746f72a1bd90p+72, 0x5.6abe29a315520p+872)) == Interval(0x3.4f42dbfc0e4b4p+4, 0x2.5ece9922c7894p+8)
    @test acosh(Interval(0xb.d0973ff704000p+224, 0x2.2fd9abbd09d34p+976)) == Interval(0x9.e6d6ea0633070p+4, 0x2.a5fcbedd15f2cp+8)
    @test acosh(Interval(0xa.c15d51db7d9f0p+536, 0x1.7207a70831d7ap+796)) == Interval(0x1.76986e964982dp+8, 0x2.28ce847f69dcap+8)
    @test acosh(Interval(0x4.280bec7911e7cp+180, 0x6.b4f11e86eca38p+792)) == Interval(0x7.ee261446dd5f8p+4, 0x2.27919f48f2c20p+8)
    @test acosh(Interval(0x3.4b22674960b0ep+468, 0xa.505a061df4cd8p+808)) == Interval(0x1.4647297977e4ep+8, 0x2.3316ed57009d4p+8)
    @test acosh(Interval(0x2.383fc27d5e4e4p+756, 0x5.88e9c96565e54p+920)) == Interval(0x2.0d82822002358p+8, 0x2.801980299550cp+8)
    @test acosh(Interval(0x1.20e762c8aab55p+72, 0x1.dbb7b8fe35847p+960)) == Interval(0x3.2b87d37c9eafap+4, 0x2.9abbed2a77e62p+8)
    @test acosh(Interval(0x1.1265074e9e3dfp+792, 0x2.229b285a709c0p+920)) == Interval(0x2.25bc2fc876ebcp+8, 0x2.7f25a89fe16e6p+8)
    @test acosh(Interval(0x1.054dcdef21349p+436, 0x1.618994d07d9a7p+636)) == Interval(0x1.2eed02d819a15p+8, 0x1.b9db8970cc5ecp+8)
    @test acosh(Interval(0x4.5be0d9a7ff0ccp+460, 0x2.6f2c55f16354ap+568)) == Interval(0x1.4103588c86ab6p+8, 0x1.8b4a572e180d4p+8)
    @test acosh(Interval(0x9.bd8b9a7fb6630p+80, 0x2.ad5f8458c8722p+768)) == Interval(0x3.a6bd416fccf70p+4, 0x2.1603d4edcb36ap+8)
    @test atanh(Interval(-0x3.11a309475e762p-164, -0xc.3784302e15500p-680)) == Interval(-0x3.11a309475e764p-164, -0xc.3784302e15500p-680)
    @test atanh(Interval(-0x5.7dd17a4248d38p-280, -0x2.898fc0f386f74p-640)) == Interval(-0x5.7dd17a4248d3cp-280, -0x2.898fc0f386f74p-640)
    @test atanh(Interval(-0xe.d83dcd7f564a0p-296, -0x1.62f61fba0f40fp-764)) == Interval(-0xe.d83dcd7f564a8p-296, -0x1.62f61fba0f40fp-764)
    @test atanh(Interval(-0x1.67712a1e64c2cp-944, -0x1.c0102c4d258efp-976)) == Interval(-0x1.67712a1e64c2dp-944, -0x1.c0102c4d258efp-976)
    @test atanh(Interval(0x2.e3d991ae84668p-728, 0x1.92c3c728ccf4ap-612)) == Interval(0x2.e3d991ae84668p-728, 0x1.92c3c728ccf4bp-612)
    @test atanh(Interval(-0x1.bcd3feb3b0175p-640, +0x1.bebe69e3bf3c2p-536)) == Interval(-0x1.bcd3feb3b0176p-640, +0x1.bebe69e3bf3c3p-536)
    @test atanh(Interval(-0x1.2469575189327p-372, -0x7.51c0c39f58a4cp-1008)) == Interval(-0x1.2469575189328p-372, -0x7.51c0c39f58a4cp-1008)
    @test atanh(Interval(-0x1.c4d163a6cccd9p-336, -0x1.3bee6dab70397p-796)) == Interval(-0x1.c4d163a6cccdap-336, -0x1.3bee6dab70397p-796)
    @test atanh(Interval(-0x2.0fae5de90c98cp-896, -0x2.2079777ec2418p-976)) == Interval(-0x2.0fae5de90c98ep-896, -0x2.2079777ec2418p-976)
    @test atanh(Interval(-0x1.08c248c37e53bp-816, +0x2.8c9f04ee5de84p-948)) == Interval(-0x1.08c248c37e53cp-816, +0x2.8c9f04ee5de86p-948)
    @test atanh(Interval(-0x2.0002542b01474p-228, +0x2.4d59f217bf74cp-796)) == Interval(-0x2.0002542b01476p-228, +0x2.4d59f217bf74ep-796)
    @test atanh(Interval(0xd.d4033889729a0p-844, 0x7.44451bf919d78p-556)) == Interval(0xd.d4033889729a0p-844, 0x7.44451bf919d7cp-556)
    @test atanh(Interval(-0x2.08918b016995cp-64, +0x3.3fc26450c6e4ap-268)) == Interval(-0x2.08918b016995ep-64, +0x3.3fc26450c6e4cp-268)
    @test atanh(Interval(-0x2.66c95bd8d7716p-388, +0x1.7e16b310f878ap-232)) == Interval(-0x2.66c95bd8d7718p-388, +0x1.7e16b310f878bp-232)
    @test atanh(Interval(-0x3.d9c66bd30b774p-256, -0x4.a8c30f678cb68p-456)) == Interval(-0x3.d9c66bd30b776p-256, -0x4.a8c30f678cb68p-456)
    @test atanh(Interval(-0x1.aa045ccb15aedp-804, +0xd.450c473265610p-24)) == Interval(-0x1.aa045ccb15aeep-804, +0xd.450c4732686c0p-24)
    @test atanh(Interval(-0x2.23adfa571fc3cp-344, -0x1.30d1074dc059ep-868)) == Interval(-0x2.23adfa571fc3ep-344, -0x1.30d1074dc059ep-868)
    @test atanh(Interval(-0x3.dfbc1a4bf3888p-68, -0x4.a89e39b247c84p-840)) == Interval(-0x3.dfbc1a4bf388ap-68, -0x4.a89e39b247c84p-840)
    @test atanh(Interval(0x9.583064525d370p-496, 0x2.c67652f06a55ep-408)) == Interval(0x9.583064525d370p-496, 0x2.c67652f06a560p-408)
    @test atanh(Interval(-0x3.38bf880ec3082p-304, -0x7.7b19877e536acp-512)) == Interval(-0x3.38bf880ec3084p-304, -0x7.7b19877e536acp-512)
    @test atanh(Interval(-0x2.adbf037238702p-44, +0x1.98dc940c3ae1ep-564)) == Interval(-0x2.adbf037238704p-44, +0x1.98dc940c3ae1fp-564)
    @test atanh(Interval(-0x4.e4a79c48b3a58p-328, +0xa.28b02e59d39d8p-856)) == Interval(-0x4.e4a79c48b3a5cp-328, +0xa.28b02e59d39e0p-856)
    @test atanh(Interval(-0x6.80d3e87b911d8p-232, -0x2.3df54212c46e4p-520)) == Interval(-0x6.80d3e87b911dcp-232, -0x2.3df54212c46e4p-520)
    @test atanh(Interval(-0x1.4e54c309c46f8p-480, +0x9.47e982ac83f98p-688)) == Interval(-0x1.4e54c309c46f9p-480, +0x9.47e982ac83fa0p-688)
    @test atanh(Interval(-0x2.276202227a6dep-808, +0x1.c53e9ba64fadfp-768)) == Interval(-0x2.276202227a6e0p-808, +0x1.c53e9ba64fae0p-768)
    @test atanh(Interval(-0x4.8e4b4d7ba6dd0p-212, -0x1.4b35284c1064bp-548)) == Interval(-0x4.8e4b4d7ba6dd4p-212, -0x1.4b35284c1064bp-548)
    @test atanh(Interval(-0x3.5c52b8d9ff582p-248, -0x2.af868d652b866p-912)) == Interval(-0x3.5c52b8d9ff584p-248, -0x2.af868d652b866p-912)
    @test atanh(Interval(0x1.6938cc5ee183ap-692, 0xb.f7a583ac38168p-664)) == Interval(0x1.6938cc5ee183ap-692, 0xb.f7a583ac38170p-664)
    @test atanh(Interval(-0x3.68b35f23b2506p-560, +0x9.f9c9246d05138p-304)) == Interval(-0x3.68b35f23b2508p-560, +0x9.f9c9246d05140p-304)
    @test atanh(Interval(-0xa.bde70b6850ea0p-516, +0x2.bb76d5bf703fap-1020)) == Interval(-0xa.bde70b6850ea8p-516, +0x2.bb76d5bf703fcp-1020)
    @test expm1(Interval(-0x1.16cc0df1540f5p+112, -0x1.b3e4076622f04p-232)) == Interval(-0x1.0000000000000p+0, -0x1.b3e4076622f03p-232)
    @test expm1(Interval(-0x2.42042b9a88438p-220, -0x2.a213429db0508p-508)) == Interval(-0x2.42042b9a88438p-220, -0x2.a213429db0506p-508)
    @test expm1(Interval(-0x2.0e2e40b15d814p+272, -0x1.5d74cfda6b292p-200)) == Interval(-0x1.0000000000000p+0, -0x1.5d74cfda6b291p-200)
    @test expm1(Interval(-0x2.0ea791886f712p-416, -0x3.fe66a8d1a3472p-456)) == Interval(-0x2.0ea791886f712p-416, -0x3.fe66a8d1a3470p-456)
    #expm1 [-0X6.FF424CB26239CP+292, -0X2.89F6682121BA8P+252] = [-0X1.0000000000000P+0, -0X1.0000000000000P+0];
    @test expm1(Interval(-0x8.80eefdf700148p+332, -0x1.c4e85e50a626dp+0)) == Interval(-0x1.0000000000000p+0, -0xd.45bcba84ee268p-4)
    @test expm1(Interval(-0x6.ca83546563a5cp+236, -0x4.f0f28370909fcp-440)) == Interval(-0x1.0000000000000p+0, -0x4.f0f28370909f8p-440)
    @test expm1(Interval(-0x4.e60572d4fcfd0p+172, -0x1.eb095183538c8p-344)) == Interval(-0x1.0000000000000p+0, -0x1.eb095183538c7p-344)
    @test expm1(Interval(-0x2.7ed8954764b12p-288, -0x8.71dc22117be90p-756)) == Interval(-0x2.7ed8954764b12p-288, -0x8.71dc22117be88p-756)
    @test expm1(Interval(-0xd.cf39b8dd68b98p-76, -0x8.0205c5b1357b0p-564)) == Interval(-0xd.cf39b8dd68b98p-76, -0x8.0205c5b1357a8p-564)
    #expm1 [-0X1.582D3AFB2C63DP+312, -0X5.08DC843E57ED4P+180] = [-0X1.0000000000000P+0, -0X1.0000000000000P+0];
    @test expm1(Interval(-0x4.af296dd37fd74p+256, -0x5.cbe2bd423b02cp-48)) == Interval(-0x1.0000000000000p+0, -0x5.cbe2bd423af1cp-48)
    @test expm1(Interval(-0x1.1fba2d1252d2bp+656, -0x2.4b7a4095c91b4p+8)) == Interval(-0x1.0000000000000p+0, -0xf.ffffffffffff8p-4)
    #expm1 [-0X3.2FD3FDE325402P+688, -0X2.738623C238270P+48] = [-0X1.0000000000000P+0, -0X1.0000000000000P+0];
    @test expm1(Interval(-0x1.44f2134e1901ep+8, -0x2.581dad9afe6dcp-172)) == Interval(-0x1.0000000000000p+0, -0x2.581dad9afe6dap-172)
    @test expm1(Interval(-0x2.9529e333f2abap+988, -0x7.19390f862f49cp-544)) == Interval(-0x1.0000000000000p+0, -0x7.19390f862f498p-544)
    @test expm1(Interval(-0x1.58391fd92c387p-148, -0x4.0c12426a57194p-440)) == Interval(-0x1.58391fd92c387p-148, -0x4.0c12426a57190p-440)
    @test expm1(Interval(-0xb.fadc4fb83e140p+348, -0xf.13e388b2165f0p-512)) == Interval(-0x1.0000000000000p+0, -0xf.13e388b2165e8p-512)
    #expm1 [-0XD.F2552B8F60978P+236, -0X7.FBDBC320979A4P+188] = [-0X1.0000000000000P+0, -0X1.0000000000000P+0];
    @test expm1(Interval(-0x8.86826ce1ab700p-240, -0x4.fea8d3a3ed018p-316)) == Interval(-0x8.86826ce1ab700p-240, -0x4.fea8d3a3ed014p-316)
    @test expm1(Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0)) == Interval(0x1.b7e151628aed2p+0, 0x6.63992e35376b8p+0)
    @test expm1(Interval(-0x1.0000000000000p+0, +0x2.0000000000000p+0)) == Interval(-0xa.1d2a7274c4328p-4, +0x6.63992e35376b8p+0)
    @test expm1(Interval(-0x5.0000000000000p+0, -0x3.0000000000000p+0)) == Interval(-0xf.e466c01ff2ad0p-4, -0xf.341279998a7a8p-4)
    @test expm1(Interval(-0x2.0000000000000p+0, +0x9.9999999999998p-4)) == Interval(-0xd.d5aaab880fc70p-4, +0xd.27660b11a9ef8p-4)
    @test expm1(Interval(0x4.0000000000000p-1076, 0x4.4444400000000p-1056)) == Interval(0x4.0000000000000p-1076, 0x4.4444800000000p-1056)
    @test expm1(Interval(0x4.4440000000000p-1064, 0x1.0000000000000p+0)) == Interval(0x4.4440000000000p-1064, 0x1.b7e151628aed3p+0)
    @test expm1(Interval(-0x4.4444000000000p-1060, +0x4.4444000000000p-1060)) == Interval(-0x4.4444000000000p-1060, +0x4.4448000000000p-1060)
    @test expm1(Interval(-0x4.4400000000000p-1068, +0x1.fff0000000000p+0)) == Interval(-0x4.4400000000000p-1068, +0x6.6322f8540cfb4p+0)
    @test expm1(Interval(-0x1.ffff000000000p+0, -0x8.8888880000000p-1052)) == Interval(-0xd.d5a88131a6240p-4, -0x8.8888840000000p-1052)
    @test expm1(Interval(-0x1.fffffff000000p+0, +0x8.cd11555400000p-1044)) == Interval(-0xd.d5aaab656a718p-4, +0x8.cd11555800000p-1044)
    @test log1p(Interval(0xc.4b4a6eb6b3af0p-264, 0xa.dd2c4c1be4b30p+92)) == Interval(0xc.4b4a6eb6b3ae8p-264, 0x4.227ad8183fb70p+4)
    @test log1p(Interval(0x2.6213e21b14894p-516, 0x6.6606f0995e5f4p-224)) == Interval(0x2.6213e21b14892p-516, 0x6.6606f0995e5f4p-224)
    @test log1p(Interval(0x9.0ff2caa1b3048p-240, 0x1.95f14b9ba7449p+236)) == Interval(0x9.0ff2caa1b3040p-240, 0xa.40b346f454218p+4)
    @test log1p(Interval(0x8.e2ada8dfbe938p-492, 0x3.67cb3be0bb146p-452)) == Interval(0x8.e2ada8dfbe930p-492, 0x3.67cb3be0bb146p-452)
    @test log1p(Interval(0x1.394270bbcba7ep+196, 0x8.4976f0bf45a40p+224)) == Interval(0x8.80f0717a1dc40p+4, 0x9.d6130f01f8b78p+4)
    @test log1p(Interval(0x6.a000a12839a50p-44, 0x3.86dc59439415ap+276)) == Interval(0x6.a000a1283845cp-44, 0xc.091aad1207058p+4)
    @test log1p(Interval(0x1.3c84e4f9c80cep-476, 0x9.1e9439c3b4358p+196)) == Interval(0x1.3c84e4f9c80cdp-476, 0x8.a1137bde55cf8p+4)
    @test log1p(Interval(0x8.41d2db6d93548p-376, 0x2.edcf4a7919034p+140)) == Interval(0x8.41d2db6d93540p-376, 0x6.21d80d9193ab8p+4)
    @test log1p(Interval(0x1.2c18feebcaeaep-768, 0x1.c369e759df5e3p-328)) == Interval(0x1.2c18feebcaeadp-768, 0x1.c369e759df5e3p-328)
    @test log1p(Interval(0x4.d94e91619d3f0p-580, 0x2.9f6caf6b5513ep-132)) == Interval(0x4.d94e91619d3ecp-580, 0x2.9f6caf6b5513ep-132)
    @test log1p(Interval(0x2.9cd12c1d0aac4p+116, 0x3.bf7e0e52dc1aap+276)) == Interval(0x5.15d8b410e0a5cp+4, 0xc.0a13dc536cd58p+4)
    @test log1p(Interval(0x3.36de5c55594eep-100, 0x1.d0460177b1553p+204)) == Interval(0x3.36de5c55594ecp-100, 0x8.dff506fe0d9f8p+4)
    @test log1p(Interval(0x4.bd4031736f7a8p+4, 0xf.a10bb3c91c7b0p+592)) == Interval(0x4.5771391f308d8p+0, 0x1.9d179ea5204d0p+8)
    @test log1p(Interval(0x2.8e258db3c44f8p+20, 0x3.1a4ede719a4c0p+628)) == Interval(0xe.cd14c501247c0p+0, 0x1.b46dc0d02b874p+8)
    @test log1p(Interval(0x2.33950f38f830ep-176, 0x5.be0388619b018p-24)) == Interval(0x2.33950f38f830cp-176, 0x5.be0377e504f78p-24)
    @test log1p(Interval(0x3.24f03df33568cp-560, 0xe.67255823421e8p+920)) == Interval(0x3.24f03df33568ap-560, 0x2.805ce2dc91036p+8)
    @test log1p(Interval(0x2.d572639dc5fa8p-468, 0x1.95cf42aa171cdp-160)) == Interval(0x2.d572639dc5fa6p-468, 0x1.95cf42aa171cdp-160)
    @test log1p(Interval(0x4.705a028302db0p-532, 0x2.e57341c14970cp+324)) == Interval(0x4.705a028302dacp-532, 0xe.1a4a3523f2658p+4)
    @test log1p(Interval(0x4.dba1d21d6f308p+144, 0x3.667988c57865ap+196)) == Interval(0x6.564d09ad1d214p+4, 0x8.914a9531fd118p+4)
    @test log1p(Interval(0x4.9fa5a1e4df740p-328, 0x1.11b85141b78f6p-240)) == Interval(0x4.9fa5a1e4df73cp-328, 0x1.11b85141b78f6p-240)
    @test log1p(Interval(0xa.0cde9dc015b08p+360, 0xf.99d84f862ac58p+524)) == Interval(0xf.bd7308ed73ff0p+4, 0x1.6df4da39dc5ddp+8)
    @test log1p(Interval(0x6.88441038d56b8p-108, 0x3.3d65c09938132p+136)) == Interval(0x6.88441038d56b4p-108, 0x5.f718bbf0ce2f8p+4)
    @test log1p(Interval(0x7.1761cab055134p-356, 0x1.92efd09488689p-76)) == Interval(0x7.1761cab055130p-356, 0x1.92efd09488689p-76)
    @test log1p(Interval(0x6.2085e427413c8p-252, 0xb.8cdd3b024ea10p-36)) == Interval(0x6.2085e427413c4p-252, 0xb.8cdd3afe235d0p-36)
    @test log1p(Interval(0xb.f5f1c0fa33978p-504, 0x4.924dd8d50b1ccp+72)) == Interval(0xb.f5f1c0fa33970p-504, 0x3.36d2b121508a8p+4)
    @test log1p(Interval(0xb.bc7e37eb2d388p-216, 0x1.cfe27bb53debbp+192)) == Interval(0xb.bc7e37eb2d380p-216, 0x8.5adc069f618a8p+4)
    @test log1p(Interval(0x1.e139dd116f868p-688, 0xd.2545346d68fd0p-148)) == Interval(0x1.e139dd116f867p-688, 0xd.2545346d68fd0p-148)
    @test log1p(Interval(0x2.e0c8e64a890acp+192, 0x2.6a898d2caa9a4p+260)) == Interval(0x8.6243148f46208p+4, 0xb.519b6e544f898p+4)
    @test log1p(Interval(0x5.9c4642ed78bc8p-340, 0x4.631bd2232f0c0p+588)) == Interval(0x5.9c4642ed78bc4p-340, 0x1.990c99b6124fep+8)
    @test log1p(Interval(0xf.c05ea810dfe88p-180, 0xa.05884fbed5f48p-152)) == Interval(0xf.c05ea810dfe80p-180, 0xa.05884fbed5f48p-152)
    @test sqrt(Interval(0xc.4b4a6eb6b3af0p-264, 0xa.dd2c4c1be4b30p+92)) == Interval(0x3.819c8c44fcae8p-132, 0xd.2f2830fa93228p+44)
    @test (Interval(0xc.4b4a6eb6b3af0p-264, 0xa.dd2c4c1be4b30p+92))^(1/2) == Interval(0x3.819c8c44fcae8p-132, 0xd.2f2830fa93228p+44)
    @test (Interval(0xc.4b4a6eb6b3af0p-264, 0xa.dd2c4c1be4b30p+92))^(0.5) == Interval(0x3.819c8c44fcae8p-132, 0xd.2f2830fa93228p+44)
    @test (Interval(0xc.4b4a6eb6b3af0p-264, 0xa.dd2c4c1be4b30p+92))^(1//2) == Interval(0x3.819c8c44fcae8p-132, 0xd.2f2830fa93228p+44)
    @test sqrt(Interval(0x2.6213e21b14894p-516, 0x6.6606f0995e5f4p-224)) == Interval(0x6.2cc8b5d1b7648p-260, 0x2.878f8e10e2752p-112)
    @test (Interval(0x2.6213e21b14894p-516, 0x6.6606f0995e5f4p-224))^(1/2) == Interval(0x6.2cc8b5d1b7648p-260, 0x2.878f8e10e2752p-112)
    @test (Interval(0x2.6213e21b14894p-516, 0x6.6606f0995e5f4p-224))^(0.5) == Interval(0x6.2cc8b5d1b7648p-260, 0x2.878f8e10e2752p-112)
    @test (Interval(0x2.6213e21b14894p-516, 0x6.6606f0995e5f4p-224))^(1//2) == Interval(0x6.2cc8b5d1b7648p-260, 0x2.878f8e10e2752p-112)
    @test sqrt(Interval(0x9.0ff2caa1b3048p-240, 0x1.95f14b9ba7449p+236)) == Interval(0x3.02a74ab0bbf36p-120, 0x5.0979194446a10p+116)
    @test (Interval(0x9.0ff2caa1b3048p-240, 0x1.95f14b9ba7449p+236))^(1/2) == Interval(0x3.02a74ab0bbf36p-120, 0x5.0979194446a10p+116)
    @test (Interval(0x9.0ff2caa1b3048p-240, 0x1.95f14b9ba7449p+236))^(0.5) == Interval(0x3.02a74ab0bbf36p-120, 0x5.0979194446a10p+116)
    @test (Interval(0x9.0ff2caa1b3048p-240, 0x1.95f14b9ba7449p+236))^(1//2) == Interval(0x3.02a74ab0bbf36p-120, 0x5.0979194446a10p+116)
    @test sqrt(Interval(0x8.e2ada8dfbe938p-492, 0x3.67cb3be0bb146p-452)) == Interval(0xb.ec63bfe10bcc8p-248, 0x7.61ac89cf17804p-228)
    @test (Interval(0x8.e2ada8dfbe938p-492, 0x3.67cb3be0bb146p-452))^(1/2) == Interval(0xb.ec63bfe10bcc8p-248, 0x7.61ac89cf17804p-228)
    @test (Interval(0x8.e2ada8dfbe938p-492, 0x3.67cb3be0bb146p-452))^(0.5) == Interval(0xb.ec63bfe10bcc8p-248, 0x7.61ac89cf17804p-228)
    @test (Interval(0x8.e2ada8dfbe938p-492, 0x3.67cb3be0bb146p-452))^(1//2) == Interval(0xb.ec63bfe10bcc8p-248, 0x7.61ac89cf17804p-228)
    @test sqrt(Interval(0x1.394270bbcba7ep+196, 0x8.4976f0bf45a40p+224)) == Interval(0x4.6cbeb2d8f6718p+96, 0x2.e0f32319ac30ap+112)
    @test (Interval(0x1.394270bbcba7ep+196, 0x8.4976f0bf45a40p+224))^(1/2) == Interval(0x4.6cbeb2d8f6718p+96, 0x2.e0f32319ac30ap+112)
    @test (Interval(0x1.394270bbcba7ep+196, 0x8.4976f0bf45a40p+224))^(0.5) == Interval(0x4.6cbeb2d8f6718p+96, 0x2.e0f32319ac30ap+112)
    @test (Interval(0x1.394270bbcba7ep+196, 0x8.4976f0bf45a40p+224))^(1//2) == Interval(0x4.6cbeb2d8f6718p+96, 0x2.e0f32319ac30ap+112)
    @test sqrt(Interval(0x6.a000a12839a50p-44, 0x3.86dc59439415ap+276)) == Interval(0xa.4baee7f482900p-24, 0x7.830c8d5a5f3d8p+136)
    @test (Interval(0x6.a000a12839a50p-44, 0x3.86dc59439415ap+276))^(1/2) == Interval(0xa.4baee7f482900p-24, 0x7.830c8d5a5f3d8p+136)
    @test (Interval(0x6.a000a12839a50p-44, 0x3.86dc59439415ap+276))^(0.5) == Interval(0xa.4baee7f482900p-24, 0x7.830c8d5a5f3d8p+136)
    @test (Interval(0x6.a000a12839a50p-44, 0x3.86dc59439415ap+276))^(1//2) == Interval(0xa.4baee7f482900p-24, 0x7.830c8d5a5f3d8p+136)
    @test sqrt(Interval(0x1.3c84e4f9c80cep-476, 0x9.1e9439c3b4358p+196)) == Interval(0x4.729f7c344ce30p-240, 0xc.14519d6697ff0p+96)
    @test (Interval(0x1.3c84e4f9c80cep-476, 0x9.1e9439c3b4358p+196))^(1/2) == Interval(0x4.729f7c344ce30p-240, 0xc.14519d6697ff0p+96)
    @test (Interval(0x1.3c84e4f9c80cep-476, 0x9.1e9439c3b4358p+196))^(0.5) == Interval(0x4.729f7c344ce30p-240, 0xc.14519d6697ff0p+96)
    @test (Interval(0x1.3c84e4f9c80cep-476, 0x9.1e9439c3b4358p+196))^(1//2) == Interval(0x4.729f7c344ce30p-240, 0xc.14519d6697ff0p+96)
    @test sqrt(Interval(0x8.41d2db6d93548p-376, 0x2.edcf4a7919034p+140)) == Interval(0x2.df9f14a64c77ap-188, 0x6.d87d667089bd8p+68)
    @test (Interval(0x8.41d2db6d93548p-376, 0x2.edcf4a7919034p+140))^(1/2) == Interval(0x2.df9f14a64c77ap-188, 0x6.d87d667089bd8p+68)
    @test (Interval(0x8.41d2db6d93548p-376, 0x2.edcf4a7919034p+140))^(0.5) == Interval(0x2.df9f14a64c77ap-188, 0x6.d87d667089bd8p+68)
    @test (Interval(0x8.41d2db6d93548p-376, 0x2.edcf4a7919034p+140))^(1//2) == Interval(0x2.df9f14a64c77ap-188, 0x6.d87d667089bd8p+68)
    @test sqrt(Interval(0x1.2c18feebcaeaep-768, 0x1.c369e759df5e3p-328)) == Interval(0x1.152c585eddb6ap-384, 0x1.53f1a81caa4a0p-164)
    @test (Interval(0x1.2c18feebcaeaep-768, 0x1.c369e759df5e3p-328))^(1/2) == Interval(0x1.152c585eddb6ap-384, 0x1.53f1a81caa4a0p-164)
    @test (Interval(0x1.2c18feebcaeaep-768, 0x1.c369e759df5e3p-328))^(0.5) == Interval(0x1.152c585eddb6ap-384, 0x1.53f1a81caa4a0p-164)
    @test (Interval(0x1.2c18feebcaeaep-768, 0x1.c369e759df5e3p-328))^(1//2) == Interval(0x1.152c585eddb6ap-384, 0x1.53f1a81caa4a0p-164)
    @test sqrt(Interval(0x4.d94e91619d3f0p-580, 0x2.9f6caf6b5513ep-132)) == Interval(0x8.cedc2135e05e8p-292, 0x6.7a5bef2579c34p-68)
    @test (Interval(0x4.d94e91619d3f0p-580, 0x2.9f6caf6b5513ep-132))^(1/2) == Interval(0x8.cedc2135e05e8p-292, 0x6.7a5bef2579c34p-68)
    @test (Interval(0x4.d94e91619d3f0p-580, 0x2.9f6caf6b5513ep-132))^(0.5) == Interval(0x8.cedc2135e05e8p-292, 0x6.7a5bef2579c34p-68)
    @test (Interval(0x4.d94e91619d3f0p-580, 0x2.9f6caf6b5513ep-132))^(1//2) == Interval(0x8.cedc2135e05e8p-292, 0x6.7a5bef2579c34p-68)
    @test sqrt(Interval(0x2.9cd12c1d0aac4p+116, 0x3.bf7e0e52dc1aap+276)) == Interval(0x6.7722c88d985d8p+56, 0x7.be7173245a668p+136)
    @test (Interval(0x2.9cd12c1d0aac4p+116, 0x3.bf7e0e52dc1aap+276))^(1/2) == Interval(0x6.7722c88d985d8p+56, 0x7.be7173245a668p+136)
    @test (Interval(0x2.9cd12c1d0aac4p+116, 0x3.bf7e0e52dc1aap+276))^(0.5) == Interval(0x6.7722c88d985d8p+56, 0x7.be7173245a668p+136)
    @test (Interval(0x2.9cd12c1d0aac4p+116, 0x3.bf7e0e52dc1aap+276))^(1//2) == Interval(0x6.7722c88d985d8p+56, 0x7.be7173245a668p+136)
    @test sqrt(Interval(0x3.36de5c55594eep-100, 0x1.d0460177b1553p+204)) == Interval(0x7.2be248a308d24p-52, 0x5.630224b50bcf8p+100)
    @test (Interval(0x3.36de5c55594eep-100, 0x1.d0460177b1553p+204))^(1/2) == Interval(0x7.2be248a308d24p-52, 0x5.630224b50bcf8p+100)
    @test (Interval(0x3.36de5c55594eep-100, 0x1.d0460177b1553p+204))^(0.5) == Interval(0x7.2be248a308d24p-52, 0x5.630224b50bcf8p+100)
    @test (Interval(0x3.36de5c55594eep-100, 0x1.d0460177b1553p+204))^(1//2) == Interval(0x7.2be248a308d24p-52, 0x5.630224b50bcf8p+100)
    @test sqrt(Interval(0x4.bd4031736f7a8p+4, 0xf.a10bb3c91c7b0p+592)) == Interval(0x8.b53b61217b4f8p+0, 0x3.f40fa54a699e2p+296)
    @test (Interval(0x4.bd4031736f7a8p+4, 0xf.a10bb3c91c7b0p+592))^(1/2) == Interval(0x8.b53b61217b4f8p+0, 0x3.f40fa54a699e2p+296)
    @test (Interval(0x4.bd4031736f7a8p+4, 0xf.a10bb3c91c7b0p+592))^(0.5) == Interval(0x8.b53b61217b4f8p+0, 0x3.f40fa54a699e2p+296)
    @test (Interval(0x4.bd4031736f7a8p+4, 0xf.a10bb3c91c7b0p+592))^(1//2) == Interval(0x8.b53b61217b4f8p+0, 0x3.f40fa54a699e2p+296)
    @test sqrt(Interval(0x2.8e258db3c44f8p+20, 0x3.1a4ede719a4c0p+628)) == Interval(0x6.64e1f64817930p+8, 0x7.0bbe006e8934cp+312)
    @test (Interval(0x2.8e258db3c44f8p+20, 0x3.1a4ede719a4c0p+628))^(1/2) == Interval(0x6.64e1f64817930p+8, 0x7.0bbe006e8934cp+312)
    @test (Interval(0x2.8e258db3c44f8p+20, 0x3.1a4ede719a4c0p+628))^(0.5) == Interval(0x6.64e1f64817930p+8, 0x7.0bbe006e8934cp+312)
    @test (Interval(0x2.8e258db3c44f8p+20, 0x3.1a4ede719a4c0p+628))^(1//2) == Interval(0x6.64e1f64817930p+8, 0x7.0bbe006e8934cp+312)
    @test sqrt(Interval(0x2.33950f38f830ep-176, 0x5.be0388619b018p-24)) == Interval(0x1.7bd69462cdad2p-88, 0x2.6573bfb248ef0p-12)
    @test (Interval(0x2.33950f38f830ep-176, 0x5.be0388619b018p-24))^(1/2) == Interval(0x1.7bd69462cdad2p-88, 0x2.6573bfb248ef0p-12)
    @test (Interval(0x2.33950f38f830ep-176, 0x5.be0388619b018p-24))^(0.5) == Interval(0x1.7bd69462cdad2p-88, 0x2.6573bfb248ef0p-12)
    @test (Interval(0x2.33950f38f830ep-176, 0x5.be0388619b018p-24))^(1//2) == Interval(0x1.7bd69462cdad2p-88, 0x2.6573bfb248ef0p-12)
    @test sqrt(Interval(0x3.24f03df33568cp-560, 0xe.67255823421e8p+920)) == Interval(0x1.c5f168118c2b1p-280, 0x3.cb8ccad62ed10p+460)
    @test (Interval(0x3.24f03df33568cp-560, 0xe.67255823421e8p+920))^(1/2) == Interval(0x1.c5f168118c2b1p-280, 0x3.cb8ccad62ed10p+460)
    @test (Interval(0x3.24f03df33568cp-560, 0xe.67255823421e8p+920))^(0.5) == Interval(0x1.c5f168118c2b1p-280, 0x3.cb8ccad62ed10p+460)
    @test (Interval(0x3.24f03df33568cp-560, 0xe.67255823421e8p+920))^(1//2) == Interval(0x1.c5f168118c2b1p-280, 0x3.cb8ccad62ed10p+460)
    @test sqrt(Interval(0x2.d572639dc5fa8p-468, 0x1.95cf42aa171cdp-160)) == Interval(0x6.bbc8a036cc930p-236, 0x1.4250c275a7b2bp-80)
    @test (Interval(0x2.d572639dc5fa8p-468, 0x1.95cf42aa171cdp-160))^(1/2) == Interval(0x6.bbc8a036cc930p-236, 0x1.4250c275a7b2bp-80)
    @test (Interval(0x2.d572639dc5fa8p-468, 0x1.95cf42aa171cdp-160))^(0.5) == Interval(0x6.bbc8a036cc930p-236, 0x1.4250c275a7b2bp-80)
    @test (Interval(0x2.d572639dc5fa8p-468, 0x1.95cf42aa171cdp-160))^(1//2) == Interval(0x6.bbc8a036cc930p-236, 0x1.4250c275a7b2bp-80)
    @test sqrt(Interval(0x4.705a028302db0p-532, 0x2.e57341c14970cp+324)) == Interval(0x8.6d6d9a3ea2160p-268, 0x6.ceb17f56f1b50p+160)
    @test (Interval(0x4.705a028302db0p-532, 0x2.e57341c14970cp+324))^(1/2) == Interval(0x8.6d6d9a3ea2160p-268, 0x6.ceb17f56f1b50p+160)
    @test (Interval(0x4.705a028302db0p-532, 0x2.e57341c14970cp+324))^(0.5) == Interval(0x8.6d6d9a3ea2160p-268, 0x6.ceb17f56f1b50p+160)
    @test (Interval(0x4.705a028302db0p-532, 0x2.e57341c14970cp+324))^(1//2) == Interval(0x8.6d6d9a3ea2160p-268, 0x6.ceb17f56f1b50p+160)
    @test sqrt(Interval(0x4.dba1d21d6f308p+144, 0x3.667988c57865ap+196)) == Interval(0x2.343e215eb2264p+72, 0x7.603e67f0e1dd0p+96)
    @test (Interval(0x4.dba1d21d6f308p+144, 0x3.667988c57865ap+196))^(1/2) == Interval(0x2.343e215eb2264p+72, 0x7.603e67f0e1dd0p+96)
    @test (Interval(0x4.dba1d21d6f308p+144, 0x3.667988c57865ap+196))^(0.5) == Interval(0x2.343e215eb2264p+72, 0x7.603e67f0e1dd0p+96)
    @test (Interval(0x4.dba1d21d6f308p+144, 0x3.667988c57865ap+196))^(1//2) == Interval(0x2.343e215eb2264p+72, 0x7.603e67f0e1dd0p+96)
    @test sqrt(Interval(0x4.9fa5a1e4df740p-328, 0x1.11b85141b78f6p-240)) == Interval(0x2.26777c4e368bep-164, 0x1.08b63617a4210p-120)
    @test (Interval(0x4.9fa5a1e4df740p-328, 0x1.11b85141b78f6p-240))^(1/2) == Interval(0x2.26777c4e368bep-164, 0x1.08b63617a4210p-120)
    @test (Interval(0x4.9fa5a1e4df740p-328, 0x1.11b85141b78f6p-240))^(0.5) == Interval(0x2.26777c4e368bep-164, 0x1.08b63617a4210p-120)
    @test (Interval(0x4.9fa5a1e4df740p-328, 0x1.11b85141b78f6p-240))^(1//2) == Interval(0x2.26777c4e368bep-164, 0x1.08b63617a4210p-120)
    @test sqrt(Interval(0xa.0cde9dc015b08p+360, 0xf.99d84f862ac58p+524)) == Interval(0x3.2b934cdcc29e0p+180, 0xf.cc99981010ad0p+260)
    @test (Interval(0xa.0cde9dc015b08p+360, 0xf.99d84f862ac58p+524))^(1/2) == Interval(0x3.2b934cdcc29e0p+180, 0xf.cc99981010ad0p+260)
    @test (Interval(0xa.0cde9dc015b08p+360, 0xf.99d84f862ac58p+524))^(0.5) == Interval(0x3.2b934cdcc29e0p+180, 0xf.cc99981010ad0p+260)
    @test (Interval(0xa.0cde9dc015b08p+360, 0xf.99d84f862ac58p+524))^(1//2) == Interval(0x3.2b934cdcc29e0p+180, 0xf.cc99981010ad0p+260)
    @test sqrt(Interval(0x6.88441038d56b8p-108, 0x3.3d65c09938132p+136)) == Interval(0xa.392c9b2283838p-56, 0x1.ccc9c68e6b873p+68)
    @test (Interval(0x6.88441038d56b8p-108, 0x3.3d65c09938132p+136))^(1/2) == Interval(0xa.392c9b2283838p-56, 0x1.ccc9c68e6b873p+68)
    @test (Interval(0x6.88441038d56b8p-108, 0x3.3d65c09938132p+136))^(0.5) == Interval(0xa.392c9b2283838p-56, 0x1.ccc9c68e6b873p+68)
    @test (Interval(0x6.88441038d56b8p-108, 0x3.3d65c09938132p+136))^(1//2) == Interval(0xa.392c9b2283838p-56, 0x1.ccc9c68e6b873p+68)
    @test sqrt(Interval(0x7.1761cab055134p-356, 0x1.92efd09488689p-76)) == Interval(0xa.a6de001e1a878p-180, 0x5.04b0b42b185f4p-40)
    @test (Interval(0x7.1761cab055134p-356, 0x1.92efd09488689p-76))^(1/2) == Interval(0xa.a6de001e1a878p-180, 0x5.04b0b42b185f4p-40)
    @test (Interval(0x7.1761cab055134p-356, 0x1.92efd09488689p-76))^(0.5) == Interval(0xa.a6de001e1a878p-180, 0x5.04b0b42b185f4p-40)
    @test (Interval(0x7.1761cab055134p-356, 0x1.92efd09488689p-76))^(1//2) == Interval(0xa.a6de001e1a878p-180, 0x5.04b0b42b185f4p-40)
    @test sqrt(Interval(0x6.2085e427413c8p-252, 0xb.8cdd3b024ea10p-36)) == Interval(0x9.e6b17dd90b818p-128, 0xd.9821ae0a3f288p-20)
    @test (Interval(0x6.2085e427413c8p-252, 0xb.8cdd3b024ea10p-36))^(1/2) == Interval(0x9.e6b17dd90b818p-128, 0xd.9821ae0a3f288p-20)
    @test (Interval(0x6.2085e427413c8p-252, 0xb.8cdd3b024ea10p-36))^(0.5) == Interval(0x9.e6b17dd90b818p-128, 0xd.9821ae0a3f288p-20)
    @test (Interval(0x6.2085e427413c8p-252, 0xb.8cdd3b024ea10p-36))^(1//2) == Interval(0x9.e6b17dd90b818p-128, 0xd.9821ae0a3f288p-20)
    @test sqrt(Interval(0xb.f5f1c0fa33978p-504, 0x4.924dd8d50b1ccp+72)) == Interval(0x3.755b7f9b147fcp-252, 0x2.235af64aa2532p+36)
    @test (Interval(0xb.f5f1c0fa33978p-504, 0x4.924dd8d50b1ccp+72))^(1/2) == Interval(0x3.755b7f9b147fcp-252, 0x2.235af64aa2532p+36)
    @test (Interval(0xb.f5f1c0fa33978p-504, 0x4.924dd8d50b1ccp+72))^(0.5) == Interval(0x3.755b7f9b147fcp-252, 0x2.235af64aa2532p+36)
    @test (Interval(0xb.f5f1c0fa33978p-504, 0x4.924dd8d50b1ccp+72))^(1//2) == Interval(0x3.755b7f9b147fcp-252, 0x2.235af64aa2532p+36)
    @test sqrt(Interval(0xb.bc7e37eb2d388p-216, 0x1.cfe27bb53debbp+192)) == Interval(0x3.6d0318cb65970p-108, 0x1.589b93c7cc280p+96)
    @test (Interval(0xb.bc7e37eb2d388p-216, 0x1.cfe27bb53debbp+192))^(1/2) == Interval(0x3.6d0318cb65970p-108, 0x1.589b93c7cc280p+96)
    @test (Interval(0xb.bc7e37eb2d388p-216, 0x1.cfe27bb53debbp+192))^(0.5) == Interval(0x3.6d0318cb65970p-108, 0x1.589b93c7cc280p+96)
    @test (Interval(0xb.bc7e37eb2d388p-216, 0x1.cfe27bb53debbp+192))^(1//2) == Interval(0x3.6d0318cb65970p-108, 0x1.589b93c7cc280p+96)
    @test sqrt(Interval(0x1.e139dd116f868p-688, 0xd.2545346d68fd0p-148)) == Interval(0x1.5efd65c23f515p-344, 0xe.80b36809ca340p-76)
    @test (Interval(0x1.e139dd116f868p-688, 0xd.2545346d68fd0p-148))^(1/2) == Interval(0x1.5efd65c23f515p-344, 0xe.80b36809ca340p-76)
    @test (Interval(0x1.e139dd116f868p-688, 0xd.2545346d68fd0p-148))^(0.5) == Interval(0x1.5efd65c23f515p-344, 0xe.80b36809ca340p-76)
    @test (Interval(0x1.e139dd116f868p-688, 0xd.2545346d68fd0p-148))^(1//2) == Interval(0x1.5efd65c23f515p-344, 0xe.80b36809ca340p-76)
    @test sqrt(Interval(0x2.e0c8e64a890acp+192, 0x2.6a898d2caa9a4p+260)) == Interval(0x1.b24cebb3d4b84p+96, 0x6.37b4cd9068634p+128)
    @test (Interval(0x2.e0c8e64a890acp+192, 0x2.6a898d2caa9a4p+260))^(1/2) == Interval(0x1.b24cebb3d4b84p+96, 0x6.37b4cd9068634p+128)
    @test (Interval(0x2.e0c8e64a890acp+192, 0x2.6a898d2caa9a4p+260))^(0.5) == Interval(0x1.b24cebb3d4b84p+96, 0x6.37b4cd9068634p+128)
    @test (Interval(0x2.e0c8e64a890acp+192, 0x2.6a898d2caa9a4p+260))^(1//2) == Interval(0x1.b24cebb3d4b84p+96, 0x6.37b4cd9068634p+128)
    @test sqrt(Interval(0x5.9c4642ed78bc8p-340, 0x4.631bd2232f0c0p+588)) == Interval(0x9.797c4d6802170p-172, 0x8.60d1f01f1a8d8p+292)
    @test (Interval(0x5.9c4642ed78bc8p-340, 0x4.631bd2232f0c0p+588))^(1/2) == Interval(0x9.797c4d6802170p-172, 0x8.60d1f01f1a8d8p+292)
    @test (Interval(0x5.9c4642ed78bc8p-340, 0x4.631bd2232f0c0p+588))^(0.5) == Interval(0x9.797c4d6802170p-172, 0x8.60d1f01f1a8d8p+292)
    @test (Interval(0x5.9c4642ed78bc8p-340, 0x4.631bd2232f0c0p+588))^(1//2) == Interval(0x9.797c4d6802170p-172, 0x8.60d1f01f1a8d8p+292)
    @test sqrt(Interval(0xf.c05ea810dfe88p-180, 0xa.05884fbed5f48p-152)) == Interval(0xf.e00f72e6c82f8p-92, 0x3.2a6ad8acfcbb0p-76)
    @test (Interval(0xf.c05ea810dfe88p-180, 0xa.05884fbed5f48p-152))^(1/2) == Interval(0xf.e00f72e6c82f8p-92, 0x3.2a6ad8acfcbb0p-76)
    @test (Interval(0xf.c05ea810dfe88p-180, 0xa.05884fbed5f48p-152))^(0.5) == Interval(0xf.e00f72e6c82f8p-92, 0x3.2a6ad8acfcbb0p-76)
    @test (Interval(0xf.c05ea810dfe88p-180, 0xa.05884fbed5f48p-152))^(1//2) == Interval(0xf.e00f72e6c82f8p-92, 0x3.2a6ad8acfcbb0p-76)
    @test Interval(-0xa.644c9d88ea8c8p-152, -0xd.8ec7927926f18p-944) ^2 == Interval(0x0.0000000000000p+0, 0x6.bfd4840b33478p-300)
    @test Interval(-0xa.644c9d88ea8c8p-152, -0xd.8ec7927926f18p-944) ^(2//1) == Interval(0x0.0000000000000p+0, 0x6.bfd4840b33478p-300)
    @test Interval(-0xa.644c9d88ea8c8p-152, -0xd.8ec7927926f18p-944) ^(2.0) == Interval(0x0.0000000000000p+0, 0x6.bfd4840b33478p-300)
    @test Interval(-0x1.9ee1a9db994f5p-436, -0x6.d914701c82fecp-624) ^2 == Interval(0x0.0000000000000p+0, 0x2.a05ea84e4893cp-872)
    @test Interval(-0x1.9ee1a9db994f5p-436, -0x6.d914701c82fecp-624) ^(2//1) == Interval(0x0.0000000000000p+0, 0x2.a05ea84e4893cp-872)
    @test Interval(-0x1.9ee1a9db994f5p-436, -0x6.d914701c82fecp-624) ^(2.0) == Interval(0x0.0000000000000p+0, 0x2.a05ea84e4893cp-872)
    @test Interval(-0x5.65057f3effc60p+4, -0x2.3617cf5815ecap-960) ^2 == Interval(0x0.0000000000000p+0, 0x1.d1a144efbeb44p+12)
    @test Interval(-0x5.65057f3effc60p+4, -0x2.3617cf5815ecap-960) ^(2//1) == Interval(0x0.0000000000000p+0, 0x1.d1a144efbeb44p+12)
    @test Interval(-0x5.65057f3effc60p+4, -0x2.3617cf5815ecap-960) ^(2.0) == Interval(0x0.0000000000000p+0, 0x1.d1a144efbeb44p+12)
    @test Interval(-0x1.975299ccb0e08p-372, +0xb.bec7d35b45b00p-588) ^2 == Interval(0x0.0000000000000p+0, 0x2.8817bfafbdf18p-744)
    @test Interval(-0x1.975299ccb0e08p-372, +0xb.bec7d35b45b00p-588) ^(2//1) == Interval(0x0.0000000000000p+0, 0x2.8817bfafbdf18p-744)
    @test Interval(-0x1.975299ccb0e08p-372, +0xb.bec7d35b45b00p-588) ^(2.0) == Interval(0x0.0000000000000p+0, 0x2.8817bfafbdf18p-744)
    @test Interval(-0x3.51d388d47aed2p-356, -0x1.c3a9cd7025105p-564) ^2 == Interval(0x0.0000000000000p+0, 0xb.051cc05c2ebe0p-712)
    @test Interval(-0x3.51d388d47aed2p-356, -0x1.c3a9cd7025105p-564) ^(2//1) == Interval(0x0.0000000000000p+0, 0xb.051cc05c2ebe0p-712)
    @test Interval(-0x3.51d388d47aed2p-356, -0x1.c3a9cd7025105p-564) ^(2.0) == Interval(0x0.0000000000000p+0, 0xb.051cc05c2ebe0p-712)
    @test Interval(-0xc.db363268cf708p-332, -0x2.171b7d7bfe4e0p-412) ^2 == Interval(0x4.5e83e96ff693cp-824, 0xa.548ca7f8c13a0p-660)
    @test Interval(-0xc.db363268cf708p-332, -0x2.171b7d7bfe4e0p-412) ^(2//1) == Interval(0x4.5e83e96ff693cp-824, 0xa.548ca7f8c13a0p-660)
    @test Interval(-0xc.db363268cf708p-332, -0x2.171b7d7bfe4e0p-412) ^(2.0) == Interval(0x4.5e83e96ff693cp-824, 0xa.548ca7f8c13a0p-660)
    @test Interval(-0x1.32690aac2472dp-40, -0x8.706ebdcf39c88p-792) ^2 == Interval(0x0.0000000000000p+0, 0x1.6ebf489d48ca5p-80)
    @test Interval(-0x1.32690aac2472dp-40, -0x8.706ebdcf39c88p-792) ^(2//1) == Interval(0x0.0000000000000p+0, 0x1.6ebf489d48ca5p-80)
    @test Interval(-0x1.32690aac2472dp-40, -0x8.706ebdcf39c88p-792) ^(2.0) == Interval(0x0.0000000000000p+0, 0x1.6ebf489d48ca5p-80)
    @test Interval(-0x5.0145af0c53324p-200, -0x2.f5a0cb3301856p-204) ^2 == Interval(0x8.c23056ba480a8p-408, 0x1.90cba74d12cf4p-396)
    @test Interval(-0x5.0145af0c53324p-200, -0x2.f5a0cb3301856p-204) ^(2//1) == Interval(0x8.c23056ba480a8p-408, 0x1.90cba74d12cf4p-396)
    @test Interval(-0x5.0145af0c53324p-200, -0x2.f5a0cb3301856p-204) ^(2.0) == Interval(0x8.c23056ba480a8p-408, 0x1.90cba74d12cf4p-396)
    @test Interval(0xf.4077c7e8cd6a0p-268, 0x3.753426098ac5ap-80) ^2 == Interval(0xe.89e458947efa8p-532, 0xb.f4e1999d73020p-160)
    @test Interval(0xf.4077c7e8cd6a0p-268, 0x3.753426098ac5ap-80) ^(2//1) == Interval(0xe.89e458947efa8p-532, 0xb.f4e1999d73020p-160)
    @test Interval(0xf.4077c7e8cd6a0p-268, 0x3.753426098ac5ap-80) ^(2.0) == Interval(0xe.89e458947efa8p-532, 0xb.f4e1999d73020p-160)
    @test Interval(-0xb.b25f8d8bb7fb8p-376, -0x2.017a332f9b05cp-916) ^2 == Interval(0x0.0000000000000p+0, 0x8.8d07f2e827770p-748)
    @test Interval(-0xb.b25f8d8bb7fb8p-376, -0x2.017a332f9b05cp-916) ^(2//1) == Interval(0x0.0000000000000p+0, 0x8.8d07f2e827770p-748)
    @test Interval(-0xb.b25f8d8bb7fb8p-376, -0x2.017a332f9b05cp-916) ^(2.0) == Interval(0x0.0000000000000p+0, 0x8.8d07f2e827770p-748)
    @test Interval(-0xd.947ca427fdfe0p-592, +0xe.3be493b5bc8e8p-16) ^2 == Interval(0x0.0000000000000p+0, 0xc.a9b03500dd578p-28)
    @test Interval(-0xd.947ca427fdfe0p-592, +0xe.3be493b5bc8e8p-16) ^(2//1) == Interval(0x0.0000000000000p+0, 0xc.a9b03500dd578p-28)
    @test Interval(-0xd.947ca427fdfe0p-592, +0xe.3be493b5bc8e8p-16) ^(2.0) == Interval(0x0.0000000000000p+0, 0xc.a9b03500dd578p-28)
    @test Interval(-0x9.c46198b2471f0p-336, -0x1.65ed85df2d4b7p-576) ^2 == Interval(0x0.0000000000000p+0, 0x5.f6582538f0f44p-668)
    @test Interval(-0x9.c46198b2471f0p-336, -0x1.65ed85df2d4b7p-576) ^(2//1) == Interval(0x0.0000000000000p+0, 0x5.f6582538f0f44p-668)
    @test Interval(-0x9.c46198b2471f0p-336, -0x1.65ed85df2d4b7p-576) ^(2.0) == Interval(0x0.0000000000000p+0, 0x5.f6582538f0f44p-668)
    @test Interval(-0x3.2c867c027db44p-936, +0x6.1883ea827ab6cp-388) ^2 == Interval(0x0.0000000000000p+0, 0x2.52887fe100ff0p-772)
    @test Interval(-0x3.2c867c027db44p-936, +0x6.1883ea827ab6cp-388) ^(2//1) == Interval(0x0.0000000000000p+0, 0x2.52887fe100ff0p-772)
    @test Interval(-0x3.2c867c027db44p-936, +0x6.1883ea827ab6cp-388) ^(2.0) == Interval(0x0.0000000000000p+0, 0x2.52887fe100ff0p-772)
    @test Interval(-0x3.560ef91c47deap-492, +0x5.413664dd17abcp-20) ^2 == Interval(0x0.0000000000000p+0, 0x1.b9cbc9b69e7bfp-36)
    @test Interval(-0x3.560ef91c47deap-492, +0x5.413664dd17abcp-20) ^(2//1) == Interval(0x0.0000000000000p+0, 0x1.b9cbc9b69e7bfp-36)
    @test Interval(-0x3.560ef91c47deap-492, +0x5.413664dd17abcp-20) ^(2.0) == Interval(0x0.0000000000000p+0, 0x1.b9cbc9b69e7bfp-36)
    @test Interval(-0x8.36bfcd74a6d68p-304, -0x3.2c20eb130d510p-836) ^2 == Interval(0x0.0000000000000p+0, 0x4.377b251abdcc0p-604)
    @test Interval(-0x8.36bfcd74a6d68p-304, -0x3.2c20eb130d510p-836) ^(2//1) == Interval(0x0.0000000000000p+0, 0x4.377b251abdcc0p-604)
    @test Interval(-0x8.36bfcd74a6d68p-304, -0x3.2c20eb130d510p-836) ^(2.0) == Interval(0x0.0000000000000p+0, 0x4.377b251abdcc0p-604)
    @test Interval(-0x6.bcec84603958cp-500, -0x1.068b13da99666p-760) ^2 == Interval(0x0.0000000000000p+0, 0x2.d668271745a42p-996)
    @test Interval(-0x6.bcec84603958cp-500, -0x1.068b13da99666p-760) ^(2//1) == Interval(0x0.0000000000000p+0, 0x2.d668271745a42p-996)
    @test Interval(-0x6.bcec84603958cp-500, -0x1.068b13da99666p-760) ^(2.0) == Interval(0x0.0000000000000p+0, 0x2.d668271745a42p-996)
    @test Interval(-0x1.2789c2d583bcdp-568, -0x1.f2bd89dad0665p-780) ^2 == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076)
    @test Interval(-0x1.2789c2d583bcdp-568, -0x1.f2bd89dad0665p-780) ^(2//1) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076)
    @test Interval(-0x1.2789c2d583bcdp-568, -0x1.f2bd89dad0665p-780) ^(2.0) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076)
    @test Interval(-0xc.fe4e8d857e3e0p-548, +0x1.580844b9dc45cp-780) ^2 == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076)
    @test Interval(-0xc.fe4e8d857e3e0p-548, +0x1.580844b9dc45cp-780) ^(2//1) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076)
    @test Interval(-0xc.fe4e8d857e3e0p-548, +0x1.580844b9dc45cp-780) ^(2.0) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076)
    @test Interval(-0xc.508d29acb01b8p-52, +0x1.b1e6b793078ddp-664) ^2 == Interval(0x0.0000000000000p+0, 0x9.7a69470135fa8p-100)
    @test Interval(-0xc.508d29acb01b8p-52, +0x1.b1e6b793078ddp-664) ^(2//1) == Interval(0x0.0000000000000p+0, 0x9.7a69470135fa8p-100)
    @test Interval(-0xc.508d29acb01b8p-52, +0x1.b1e6b793078ddp-664) ^(2.0) == Interval(0x0.0000000000000p+0, 0x9.7a69470135fa8p-100)
    @test Interval(-0xa.12f7783880a78p-124, -0x3.765df69ee106ep-548) ^2 == Interval(0x0.0000000000000p+0, 0x6.57cbd208b34acp-244)
    @test Interval(-0xa.12f7783880a78p-124, -0x3.765df69ee106ep-548) ^(2//1) == Interval(0x0.0000000000000p+0, 0x6.57cbd208b34acp-244)
    @test Interval(-0xa.12f7783880a78p-124, -0x3.765df69ee106ep-548) ^(2.0) == Interval(0x0.0000000000000p+0, 0x6.57cbd208b34acp-244)
    @test Interval(-0x6.3a58d52fdf844p-896, -0x1.039e2518cf503p-1008) ^2 == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076)
    @test Interval(-0x6.3a58d52fdf844p-896, -0x1.039e2518cf503p-1008) ^(2//1) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076)
    @test Interval(-0x6.3a58d52fdf844p-896, -0x1.039e2518cf503p-1008) ^(2.0) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076)
    @test Interval(-0xb.dd3171fdeec18p-168, +0x1.069e434ee9e0fp-740) ^2 == Interval(0x0.0000000000000p+0, 0x8.cc15e342fc8d8p-332)
    @test Interval(-0xb.dd3171fdeec18p-168, +0x1.069e434ee9e0fp-740) ^(2//1) == Interval(0x0.0000000000000p+0, 0x8.cc15e342fc8d8p-332)
    @test Interval(-0xb.dd3171fdeec18p-168, +0x1.069e434ee9e0fp-740) ^(2.0) == Interval(0x0.0000000000000p+0, 0x8.cc15e342fc8d8p-332)
    @test Interval(-0x3.cf0053257533ap-776, -0x1.7883a587654e5p-928) ^2 == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076)
    @test Interval(-0x3.cf0053257533ap-776, -0x1.7883a587654e5p-928) ^(2//1) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076)
    @test Interval(-0x3.cf0053257533ap-776, -0x1.7883a587654e5p-928) ^(2.0) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076)
    @test Interval(0x1.455801d3d2b63p-704, 0x3.a4c915783d07ap-28) ^2 == Interval(0x0.0000000000000p+0, 0xd.46c8c24634fc8p-56)
    @test Interval(0x1.455801d3d2b63p-704, 0x3.a4c915783d07ap-28) ^(2//1) == Interval(0x0.0000000000000p+0, 0xd.46c8c24634fc8p-56)
    @test Interval(0x1.455801d3d2b63p-704, 0x3.a4c915783d07ap-28) ^(2.0) == Interval(0x0.0000000000000p+0, 0xd.46c8c24634fc8p-56)
    @test Interval(-0x2.097d06f4de3e2p-376, +0x2.2e7561fd9255ep-772) ^2 == Interval(0x0.0000000000000p+0, 0x4.264e23607bea8p-752)
    @test Interval(-0x2.097d06f4de3e2p-376, +0x2.2e7561fd9255ep-772) ^(2//1) == Interval(0x0.0000000000000p+0, 0x4.264e23607bea8p-752)
    @test Interval(-0x2.097d06f4de3e2p-376, +0x2.2e7561fd9255ep-772) ^(2.0) == Interval(0x0.0000000000000p+0, 0x4.264e23607bea8p-752)
    @test Interval(-0x1.7e13dbb66e5a3p-84, -0x6.bc8f45d6a8f48p-540) ^2 == Interval(0x0.0000000000000p+0, 0x2.3a3f453ecafb4p-168)
    @test Interval(-0x1.7e13dbb66e5a3p-84, -0x6.bc8f45d6a8f48p-540) ^(2//1) == Interval(0x0.0000000000000p+0, 0x2.3a3f453ecafb4p-168)
    @test Interval(-0x1.7e13dbb66e5a3p-84, -0x6.bc8f45d6a8f48p-540) ^(2.0) == Interval(0x0.0000000000000p+0, 0x2.3a3f453ecafb4p-168)
    @test Interval(-0x4.1f50c5f2cda54p-276, -0x3.df16f79756422p-496) ^2 == Interval(0xe.fcf2d2f52b4c0p-992, 0x1.0fe5ad9038bc9p-548)
    @test Interval(-0x4.1f50c5f2cda54p-276, -0x3.df16f79756422p-496) ^(2//1) == Interval(0xe.fcf2d2f52b4c0p-992, 0x1.0fe5ad9038bc9p-548)
    @test Interval(-0x4.1f50c5f2cda54p-276, -0x3.df16f79756422p-496) ^(2.0) == Interval(0xe.fcf2d2f52b4c0p-992, 0x1.0fe5ad9038bc9p-548)
    @test Interval(-0x7.ecc4c5eec4cacp-328, -0x2.e02e1db7a08f6p-876) ^2 == Interval(0x0.0000000000000p+0, 0x3.ecdbe373eac94p-652)
    @test Interval(-0x7.ecc4c5eec4cacp-328, -0x2.e02e1db7a08f6p-876) ^(2//1) == Interval(0x0.0000000000000p+0, 0x3.ecdbe373eac94p-652)
    @test Interval(-0x7.ecc4c5eec4cacp-328, -0x2.e02e1db7a08f6p-876) ^(2.0) == Interval(0x0.0000000000000p+0, 0x3.ecdbe373eac94p-652)
    @test Interval(-0xc.1bc7a4c89d440p-256, +0x2.a7f56252d1d34p-608) ^2 == Interval(0x0.0000000000000p+0, 0x9.29dbb2b42a988p-508)
    @test Interval(-0xc.1bc7a4c89d440p-256, +0x2.a7f56252d1d34p-608) ^(2//1) == Interval(0x0.0000000000000p+0, 0x9.29dbb2b42a988p-508)
    @test Interval(-0xc.1bc7a4c89d440p-256, +0x2.a7f56252d1d34p-608) ^(2.0) == Interval(0x0.0000000000000p+0, 0x9.29dbb2b42a988p-508)
    @test Interval(-0xb.ce50d7b2f2868p-236, -0xe.6b08988339b80p-432) ^2 == Interval(0xc.fe1b0de21e568p-860, 0x8.b6138be0c5b78p-468)
    @test Interval(-0xb.ce50d7b2f2868p-236, -0xe.6b08988339b80p-432) ^(2//1) == Interval(0xc.fe1b0de21e568p-860, 0x8.b6138be0c5b78p-468)
    @test Interval(-0xb.ce50d7b2f2868p-236, -0xe.6b08988339b80p-432) ^(2.0) == Interval(0xc.fe1b0de21e568p-860, 0x8.b6138be0c5b78p-468)
end
# FactCheck.exitstatus()