var data = {lines:[ {"lineNum":" 1","line":"// Ported from musl, which is licensed under the MIT license:"}, {"lineNum":" 2","line":"// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT"}, {"lineNum":" 3","line":"//"}, {"lineNum":" 4","line":"// https://git.musl-libc.org/cgit/musl/tree/src/math/coshf.c"}, {"lineNum":" 5","line":"// https://git.musl-libc.org/cgit/musl/tree/src/math/cosh.c"}, {"lineNum":" 6","line":""}, {"lineNum":" 7","line":"const builtin = @import(\"builtin\");"}, {"lineNum":" 8","line":"const std = @import(\"../std.zig\");"}, {"lineNum":" 9","line":"const math = std.math;"}, {"lineNum":" 10","line":"const expo2 = @import(\"expo2.zig\").expo2;"}, {"lineNum":" 11","line":"const expect = std.testing.expect;"}, {"lineNum":" 12","line":"const maxInt = std.math.maxInt;"}, {"lineNum":" 13","line":""}, {"lineNum":" 14","line":"/// Returns the hyperbolic cosine of x."}, {"lineNum":" 15","line":"///"}, {"lineNum":" 16","line":"/// Special Cases:"}, {"lineNum":" 17","line":"/// - cosh(+-0) = 1"}, {"lineNum":" 18","line":"/// - cosh(+-inf) = +inf"}, {"lineNum":" 19","line":"/// - cosh(nan) = nan"}, {"lineNum":" 20","line":"pub fn cosh(x: var) @TypeOf(x) {","class":"lineCov","hits":"2","order":"9803","possible_hits":"2",}, {"lineNum":" 21","line":" const T = @TypeOf(x);"}, {"lineNum":" 22","line":" return switch (T) {","class":"lineCov","hits":"2","order":"9846","possible_hits":"2",}, {"lineNum":" 23","line":" f32 => cosh32(x),","class":"lineCov","hits":"1","order":"9804","possible_hits":"1",}, {"lineNum":" 24","line":" f64 => cosh64(x),","class":"lineCov","hits":"1","order":"9848","possible_hits":"1",}, {"lineNum":" 25","line":" else => @compileError(\"cosh not implemented for \" ++ @typeName(T)),"}, {"lineNum":" 26","line":" };"}, {"lineNum":" 27","line":"}"}, {"lineNum":" 28","line":""}, {"lineNum":" 29","line":"// cosh(x) = (exp(x) + 1 / exp(x)) / 2"}, {"lineNum":" 30","line":"// = 1 + 0.5 * (exp(x) - 1) * (exp(x) - 1) / exp(x)"}, {"lineNum":" 31","line":"// = 1 + (x * x) / 2 + o(x^4)"}, {"lineNum":" 32","line":"fn cosh32(x: f32) f32 {","class":"lineCov","hits":"1","order":"9805","possible_hits":"1",}, {"lineNum":" 33","line":" const u = @bitCast(u32, x);","class":"lineCov","hits":"1","order":"9806","possible_hits":"1",}, {"lineNum":" 34","line":" const ux = u & 0x7FFFFFFF;","class":"lineCov","hits":"1","order":"9807","possible_hits":"1",}, {"lineNum":" 35","line":" const ax = @bitCast(f32, ux);","class":"lineCov","hits":"1","order":"9808","possible_hits":"1",}, {"lineNum":" 36","line":""}, {"lineNum":" 37","line":" // |x| < log(2)"}, {"lineNum":" 38","line":" if (ux < 0x3F317217) {","class":"lineCov","hits":"2","order":"9809","possible_hits":"2",}, {"lineNum":" 39","line":" if (ux < 0x3F800000 - (12 << 23)) {","class":"lineCov","hits":"2","order":"9884","possible_hits":"2",}, {"lineNum":" 40","line":" math.raiseOverflow();","class":"lineCov","hits":"1","order":"9885","possible_hits":"1",}, {"lineNum":" 41","line":" return 1.0;","class":"lineCov","hits":"1","order":"9887","possible_hits":"1",}, {"lineNum":" 42","line":" }"}, {"lineNum":" 43","line":" const t = math.expm1(ax);","class":"lineCov","hits":"1","order":"9889","possible_hits":"1",}, {"lineNum":" 44","line":" return 1 + t * t / (2 * (1 + t));","class":"lineCov","hits":"1","order":"9915","possible_hits":"1",}, {"lineNum":" 45","line":" }"}, {"lineNum":" 46","line":""}, {"lineNum":" 47","line":" // |x| < log(FLT_MAX)"}, {"lineNum":" 48","line":" if (ux < 0x42B17217) {","class":"lineCov","hits":"2","order":"9810","possible_hits":"2",}, {"lineNum":" 49","line":" const t = math.exp(ax);","class":"lineCov","hits":"1","order":"9811","possible_hits":"1",}, {"lineNum":" 50","line":" return 0.5 * (t + 1 / t);","class":"lineCov","hits":"1","order":"9845","possible_hits":"1",}, {"lineNum":" 51","line":" }"}, {"lineNum":" 52","line":""}, {"lineNum":" 53","line":" // |x| > log(FLT_MAX) or nan"}, {"lineNum":" 54","line":" return expo2(ax);","class":"lineCov","hits":"1","order":"9964","possible_hits":"1",}, {"lineNum":" 55","line":"}"}, {"lineNum":" 56","line":""}, {"lineNum":" 57","line":"fn cosh64(x: f64) f64 {","class":"lineCov","hits":"1","order":"9849","possible_hits":"1",}, {"lineNum":" 58","line":" const u = @bitCast(u64, x);","class":"lineCov","hits":"1","order":"9850","possible_hits":"1",}, {"lineNum":" 59","line":" const w = @intCast(u32, u >> 32) & (maxInt(u32) >> 1);","class":"linePartCov","hits":"2","order":"9851","possible_hits":"3",}, {"lineNum":" 60","line":" const ax = @bitCast(f64, u & (maxInt(u64) >> 1));","class":"lineCov","hits":"1","order":"9852","possible_hits":"1",}, {"lineNum":" 61","line":""}, {"lineNum":" 62","line":" // TODO: Shouldn\'t need this explicit check."}, {"lineNum":" 63","line":" if (x == 0.0) {","class":"lineCov","hits":"2","order":"9853","possible_hits":"2",}, {"lineNum":" 64","line":" return 1.0;","class":"lineCov","hits":"1","order":"9925","possible_hits":"1",}, {"lineNum":" 65","line":" }"}, {"lineNum":" 66","line":""}, {"lineNum":" 67","line":" // |x| < log(2)"}, {"lineNum":" 68","line":" if (w < 0x3FE62E42) {","class":"lineCov","hits":"2","order":"9854","possible_hits":"2",}, {"lineNum":" 69","line":" if (w < 0x3FF00000 - (26 << 20)) {","class":"lineCov","hits":"2","order":"9927","possible_hits":"2",}, {"lineNum":" 70","line":" if (x != 0) {","class":"lineNoCov","hits":"0","possible_hits":"2",}, {"lineNum":" 71","line":" math.raiseInexact();","class":"lineNoCov","hits":"0","possible_hits":"1",}, {"lineNum":" 72","line":" }"}, {"lineNum":" 73","line":" return 1.0;","class":"lineNoCov","hits":"0","possible_hits":"1",}, {"lineNum":" 74","line":" }"}, {"lineNum":" 75","line":" const t = math.expm1(ax);","class":"lineCov","hits":"1","order":"9928","possible_hits":"1",}, {"lineNum":" 76","line":" return 1 + t * t / (2 * (1 + t));","class":"lineCov","hits":"1","order":"9952","possible_hits":"1",}, {"lineNum":" 77","line":" }"}, {"lineNum":" 78","line":""}, {"lineNum":" 79","line":" // |x| < log(DBL_MAX)"}, {"lineNum":" 80","line":" if (w < 0x40862E42) {","class":"lineCov","hits":"2","order":"9855","possible_hits":"2",}, {"lineNum":" 81","line":" const t = math.exp(ax);","class":"lineCov","hits":"1","order":"9856","possible_hits":"1",}, {"lineNum":" 82","line":" // NOTE: If x > log(0x1p26) then 1/t is not required."}, {"lineNum":" 83","line":" return 0.5 * (t + 1 / t);","class":"lineCov","hits":"1","order":"9881","possible_hits":"1",}, {"lineNum":" 84","line":" }"}, {"lineNum":" 85","line":""}, {"lineNum":" 86","line":" // |x| > log(CBL_MAX) or nan"}, {"lineNum":" 87","line":" return expo2(ax);","class":"lineCov","hits":"1","order":"9980","possible_hits":"1",}, {"lineNum":" 88","line":"}"}, {"lineNum":" 89","line":""}, {"lineNum":" 90","line":"test \"math.cosh\" {","class":"lineCov","hits":"2","order":"9801","possible_hits":"2",}, {"lineNum":" 91","line":" expect(cosh(@as(f32, 1.5)) == cosh32(1.5));","class":"lineCov","hits":"1","order":"9802","possible_hits":"1",}, {"lineNum":" 92","line":" expect(cosh(@as(f64, 1.5)) == cosh64(1.5));","class":"lineCov","hits":"1","order":"9847","possible_hits":"1",}, {"lineNum":" 93","line":"}"}, {"lineNum":" 94","line":""}, {"lineNum":" 95","line":"test \"math.cosh32\" {","class":"lineCov","hits":"2","order":"9882","possible_hits":"2",}, {"lineNum":" 96","line":" const epsilon = 0.000001;"}, {"lineNum":" 97","line":""}, {"lineNum":" 98","line":" expect(math.approxEq(f32, cosh32(0.0), 1.0, epsilon));","class":"lineCov","hits":"1","order":"9883","possible_hits":"1",}, {"lineNum":" 99","line":" expect(math.approxEq(f32, cosh32(0.2), 1.020067, epsilon));","class":"lineCov","hits":"1","order":"9888","possible_hits":"1",}, {"lineNum":" 100","line":" expect(math.approxEq(f32, cosh32(0.8923), 1.425225, epsilon));","class":"lineCov","hits":"1","order":"9916","possible_hits":"1",}, {"lineNum":" 101","line":" expect(math.approxEq(f32, cosh32(1.5), 2.352410, epsilon));","class":"lineCov","hits":"1","order":"9918","possible_hits":"1",}, {"lineNum":" 102","line":" expect(math.approxEq(f32, cosh32(-0.0), 1.0, epsilon));","class":"lineCov","hits":"1","order":"9919","possible_hits":"1",}, {"lineNum":" 103","line":" expect(math.approxEq(f32, cosh32(-0.2), 1.020067, epsilon));","class":"lineCov","hits":"1","order":"9920","possible_hits":"1",}, {"lineNum":" 104","line":" expect(math.approxEq(f32, cosh32(-0.8923), 1.425225, epsilon));","class":"lineCov","hits":"1","order":"9921","possible_hits":"1",}, {"lineNum":" 105","line":" expect(math.approxEq(f32, cosh32(-1.5), 2.352410, epsilon));","class":"lineCov","hits":"1","order":"9922","possible_hits":"1",}, {"lineNum":" 106","line":"}"}, {"lineNum":" 107","line":""}, {"lineNum":" 108","line":"test \"math.cosh64\" {","class":"lineCov","hits":"2","order":"9923","possible_hits":"2",}, {"lineNum":" 109","line":" const epsilon = 0.000001;"}, {"lineNum":" 110","line":""}, {"lineNum":" 111","line":" expect(math.approxEq(f64, cosh64(0.0), 1.0, epsilon));","class":"lineCov","hits":"1","order":"9924","possible_hits":"1",}, {"lineNum":" 112","line":" expect(math.approxEq(f64, cosh64(0.2), 1.020067, epsilon));","class":"lineCov","hits":"1","order":"9926","possible_hits":"1",}, {"lineNum":" 113","line":" expect(math.approxEq(f64, cosh64(0.8923), 1.425225, epsilon));","class":"lineCov","hits":"1","order":"9953","possible_hits":"1",}, {"lineNum":" 114","line":" expect(math.approxEq(f64, cosh64(1.5), 2.352410, epsilon));","class":"lineCov","hits":"1","order":"9955","possible_hits":"1",}, {"lineNum":" 115","line":" expect(math.approxEq(f64, cosh64(-0.0), 1.0, epsilon));","class":"lineCov","hits":"1","order":"9956","possible_hits":"1",}, {"lineNum":" 116","line":" expect(math.approxEq(f64, cosh64(-0.2), 1.020067, epsilon));","class":"lineCov","hits":"1","order":"9957","possible_hits":"1",}, {"lineNum":" 117","line":" expect(math.approxEq(f64, cosh64(-0.8923), 1.425225, epsilon));","class":"lineCov","hits":"1","order":"9958","possible_hits":"1",}, {"lineNum":" 118","line":" expect(math.approxEq(f64, cosh64(-1.5), 2.352410, epsilon));","class":"lineCov","hits":"1","order":"9959","possible_hits":"1",}, {"lineNum":" 119","line":"}"}, {"lineNum":" 120","line":""}, {"lineNum":" 121","line":"test \"math.cosh32.special\" {","class":"lineCov","hits":"2","order":"9960","possible_hits":"2",}, {"lineNum":" 122","line":" expect(cosh32(0.0) == 1.0);","class":"lineCov","hits":"1","order":"9961","possible_hits":"1",}, {"lineNum":" 123","line":" expect(cosh32(-0.0) == 1.0);","class":"lineCov","hits":"1","order":"9962","possible_hits":"1",}, {"lineNum":" 124","line":" expect(math.isPositiveInf(cosh32(math.inf(f32))));","class":"lineCov","hits":"1","order":"9963","possible_hits":"1",}, {"lineNum":" 125","line":" expect(math.isPositiveInf(cosh32(-math.inf(f32))));","class":"lineCov","hits":"1","order":"9973","possible_hits":"1",}, {"lineNum":" 126","line":" expect(math.isNan(cosh32(math.nan(f32))));","class":"lineCov","hits":"1","order":"9974","possible_hits":"1",}, {"lineNum":" 127","line":"}"}, {"lineNum":" 128","line":""}, {"lineNum":" 129","line":"test \"math.cosh64.special\" {","class":"lineCov","hits":"2","order":"9976","possible_hits":"2",}, {"lineNum":" 130","line":" expect(cosh64(0.0) == 1.0);","class":"lineCov","hits":"1","order":"9977","possible_hits":"1",}, {"lineNum":" 131","line":" expect(cosh64(-0.0) == 1.0);","class":"lineCov","hits":"1","order":"9978","possible_hits":"1",}, {"lineNum":" 132","line":" expect(math.isPositiveInf(cosh64(math.inf(f64))));","class":"lineCov","hits":"1","order":"9979","possible_hits":"1",}, {"lineNum":" 133","line":" expect(math.isPositiveInf(cosh64(-math.inf(f64))));","class":"lineCov","hits":"1","order":"9988","possible_hits":"1",}, {"lineNum":" 134","line":" expect(math.isNan(cosh64(math.nan(f64))));","class":"lineCov","hits":"1","order":"9989","possible_hits":"1",}, {"lineNum":" 135","line":"}"}, ]}; var percent_low = 25;var percent_high = 75; var header = { "command" : "test", "date" : "2020-05-19 01:29:25", "instrumented" : 68, "covered" : 65,}; var merged_data = [];