The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Failed to build swift-blurhash, reference main (7fc727), with Swift 6.1 for Android on 29 May 2025 21:12:07 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-3":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.63.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/valeriyvan/swift-blurhash.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/valeriyvan/swift-blurhash
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 7fc7276 Update README.md
Cloned https://github.com/valeriyvan/swift-blurhash.git
Revision (git rev-parse @):
7fc7276f5d11fdd4e46e7c67765ed87278c4c80d
SUCCESS checkout https://github.com/valeriyvan/swift-blurhash.git at main
========================================
Build
========================================
Selected platform:         android
Swift version:             6.1
Building package at path:  $PWD
https://github.com/valeriyvan/swift-blurhash.git
https://github.com/valeriyvan/swift-blurhash.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
    {
      "identity" : "swift-algorithms",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.2.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-algorithms.git"
    }
  ],
  "manifest_display_name" : "swift-blurhash",
  "name" : "swift-blurhash",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "13.3"
    },
    {
      "name" : "ios",
      "version" : "16.4"
    }
  ],
  "products" : [
    {
      "name" : "Blurhash",
      "targets" : [
        "Blurhash"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "BlurhashTests",
      "module_type" : "SwiftTarget",
      "name" : "BlurhashTests",
      "path" : "Tests/BlurhashTests",
      "resources" : [
        {
          "path" : "/host/spi-builder-workspace/Tests/BlurhashTests/Resources/12c2aca29ea896a628be-blurred.ppm",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/host/spi-builder-workspace/Tests/BlurhashTests/Resources/12c2aca29ea896a628be.dat",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/host/spi-builder-workspace/Tests/BlurhashTests/Resources/12c2aca29ea896a628be.ppm",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/host/spi-builder-workspace/Tests/BlurhashTests/Resources/a355ab362a07a267e078-blurred.ppm",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/host/spi-builder-workspace/Tests/BlurhashTests/Resources/a355ab362a07a267e078.dat",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/host/spi-builder-workspace/Tests/BlurhashTests/Resources/a355ab362a07a267e078.ppm",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/host/spi-builder-workspace/Tests/BlurhashTests/Resources/e08adedc9f82ade9f9d5-blurred.ppm",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/host/spi-builder-workspace/Tests/BlurhashTests/Resources/e08adedc9f82ade9f9d5.dat",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/host/spi-builder-workspace/Tests/BlurhashTests/Resources/e08adedc9f82ade9f9d5.ppm",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/host/spi-builder-workspace/Tests/BlurhashTests/Resources/ea9e499f8080ce9956a8-blurred.ppm",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/host/spi-builder-workspace/Tests/BlurhashTests/Resources/ea9e499f8080ce9956a8.dat",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/host/spi-builder-workspace/Tests/BlurhashTests/Resources/ea9e499f8080ce9956a8.ppm",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "Base83EncodingDecodingTests.swift",
        "Bitmap+ppmBundleResource.swift",
        "Bitmap.swift",
        "Point.swift",
        "Rgba.swift",
        "blurhashDecodingTests.swift",
        "blurhashTests.swift",
        "dataTests.swift",
        "factorsTests.swift",
        "hashTests.swift"
      ],
      "target_dependencies" : [
        "Blurhash"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Blurhash",
      "module_type" : "SwiftTarget",
      "name" : "Blurhash",
      "path" : "Sources/Blurhash",
      "product_dependencies" : [
        "Algorithms"
      ],
      "product_memberships" : [
        "Blurhash"
      ],
      "sources" : [
        "CustomBase83EncodingDecoding.swift",
        "Data(ext).swift",
        "FloatingPoint.swift",
        "RGBFloat.swift",
        "UIImage(ext).swift",
        "UnsafeMutableRawBufferPointer(ext).swift",
        "UnsafeRawBufferPointer(ext).swift",
        "pow.swift",
        "sRGBLinear.swift",
        "signPow.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.10"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-3":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1
android-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:fe1962677657b2408c217cb5cceb3c09bc1d91486e360cebbc6eee461a5945d8
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.1-latest
Fetching https://github.com/apple/swift-algorithms.git
[1/5959] Fetching swift-algorithms
Fetched https://github.com/apple/swift-algorithms.git from cache (1.33s)
Computing version for https://github.com/apple/swift-algorithms.git
Computed https://github.com/apple/swift-algorithms.git at 1.2.1 (4.13s)
Fetching https://github.com/apple/swift-numerics.git
[1/5706] Fetching swift-numerics
Fetched https://github.com/apple/swift-numerics.git from cache (0.78s)
Computing version for https://github.com/apple/swift-numerics.git
Computed https://github.com/apple/swift-numerics.git at 1.0.3 (1.85s)
Creating working copy for https://github.com/apple/swift-numerics.git
Working copy of https://github.com/apple/swift-numerics.git resolved at 1.0.3
Creating working copy for https://github.com/apple/swift-algorithms.git
Working copy of https://github.com/apple/swift-algorithms.git resolved at 1.2.1
Building for debugging...
[0/5] Write sources
[3/5] Compiling _NumericsShims _NumericsShims.c
[4/5] Write swift-version-24593BA9C3E375BF.txt
[6/15] Compiling RealModule Real.swift
[7/16] Compiling RealModule Float80+Real.swift
[8/16] Compiling RealModule ElementaryFunctions.swift
[9/16] Compiling RealModule AlgebraicField.swift
[10/16] Compiling RealModule ApproximateEquality.swift
[11/16] Emitting module RealModule
[12/16] Compiling RealModule RealFunctions.swift
[13/16] Compiling RealModule Float+Real.swift
[14/16] Compiling RealModule AugmentedArithmetic.swift
[15/16] Compiling RealModule Double+Real.swift
[16/16] Compiling RealModule Float16+Real.swift
[18/42] Compiling Algorithms RandomSample.swift
[19/42] Compiling Algorithms Reductions.swift
[20/42] Compiling Algorithms Rotate.swift
[21/45] Compiling Algorithms Partition.swift
[22/45] Compiling Algorithms Permutations.swift
[23/45] Compiling Algorithms Product.swift
[24/45] Compiling Algorithms FlattenCollection.swift
[25/45] Compiling Algorithms Grouped.swift
[26/45] Compiling Algorithms Indexed.swift
[27/45] Compiling Algorithms Intersperse.swift
[28/45] Compiling Algorithms Compacted.swift
[29/45] Compiling Algorithms Cycle.swift
[30/45] Compiling Algorithms EitherSequence.swift
[31/45] Compiling Algorithms FirstNonNil.swift
[32/45] Compiling Algorithms Split.swift
[33/45] Compiling Algorithms Stride.swift
[34/45] Compiling Algorithms Suffix.swift
[35/45] Compiling Algorithms Joined.swift
[36/45] Compiling Algorithms Keyed.swift
[37/45] Compiling Algorithms MinMax.swift
[38/45] Compiling Algorithms Trim.swift
[39/45] Compiling Algorithms Unique.swift
[40/45] Compiling Algorithms Windows.swift
[41/45] Compiling Algorithms AdjacentPairs.swift
[42/45] Compiling Algorithms Chain.swift
[43/45] Compiling Algorithms Chunked.swift
[44/45] Compiling Algorithms Combinations.swift
[45/45] Emitting module Algorithms
[47/56] Compiling Blurhash pow.swift
[48/56] Compiling Blurhash sRGBLinear.swift
/host/spi-builder-workspace/Sources/Blurhash/sRGBLinear.swift:15:51: error: cannot assign value of type 'Double' to type 'Float'
13 |         } else {
14 |             // Apply gamma correction
15 |             transformed = 1.055 * pow(v, 1 / 2.4) - 0.055
   |                                                   `- error: cannot assign value of type 'Double' to type 'Float'
16 |         }
17 |         // Scale result to 0...255 range and round to the nearest integer
/host/spi-builder-workspace/Sources/Blurhash/sRGBLinear.swift:15:39: error: cannot convert value of type 'Float' to expected argument type 'Double'
13 |         } else {
14 |             // Apply gamma correction
15 |             transformed = 1.055 * pow(v, 1 / 2.4) - 0.055
   |                                       `- error: cannot convert value of type 'Float' to expected argument type 'Double'
16 |         }
17 |         // Scale result to 0...255 range and round to the nearest integer
/host/spi-builder-workspace/Sources/Blurhash/sRGBLinear.swift:35:20: error: cannot convert return expression of type 'Double' to return type 'Float'
33 |         } else {
34 |             // Apply gamma correction
35 |             return pow((v + 0.055) / 1.055, 2.4)
   |                    `- error: cannot convert return expression of type 'Double' to return type 'Float'
36 |         }
37 |     }
/host/spi-builder-workspace/Sources/Blurhash/sRGBLinear.swift:35:25: error: cannot convert value of type 'Float' to expected argument type 'Double'
33 |         } else {
34 |             // Apply gamma correction
35 |             return pow((v + 0.055) / 1.055, 2.4)
   |                         `- error: cannot convert value of type 'Float' to expected argument type 'Double'
36 |         }
37 |     }
[49/57] Compiling Blurhash signPow.swift
/host/spi-builder-workspace/Sources/Blurhash/signPow.swift:4:21: error: no exact matches in call to global function 'pow'
2 |
3 | func signPow(_ value: Float, _ exp: Float) -> Float {
4 |     return copysign(pow(abs(value), exp), value)
  |                     `- error: no exact matches in call to global function 'pow'
5 | }
6 |
Foundation.pow:1:13: note: candidate expects value of type 'CGFloat' for parameter #2 (got 'Float')
1 | public func pow(_ lhs: CGFloat, _ rhs: CGFloat) -> CGFloat
  |             `- note: candidate expects value of type 'CGFloat' for parameter #2 (got 'Float')
/root/.swiftpm/swift-sdks/swift-6.1-RELEASE-android-24-0.1.artifactbundle/swift-6.1-release-android-24-sdk/android-27c-sysroot/usr/include/math.h:196:8: note: candidate expects value of type 'Double' for parameter #2 (got 'Float')
194 | long double hypotl(long double __x, long double __y);
195 |
196 | double pow(double __x, double __y);
    |        `- note: candidate expects value of type 'Double' for parameter #2 (got 'Float')
197 | float powf(float __x, float __y);
198 | long double powl(long double __x, long double __y);
/host/spi-builder-workspace/Sources/Blurhash/signPow.swift:4:12: error: no exact matches in call to global function 'copysign'
2 |
3 | func signPow(_ value: Float, _ exp: Float) -> Float {
4 |     return copysign(pow(abs(value), exp), value)
  |            `- error: no exact matches in call to global function 'copysign'
5 | }
6 |
Foundation.copysign:1:13: note: candidate expects value of type 'CGFloat' for parameter #2 (got 'Float')
1 | public func copysign(_ lhs: CGFloat, _ rhs: CGFloat) -> CGFloat
  |             `- note: candidate expects value of type 'CGFloat' for parameter #2 (got 'Float')
/root/.swiftpm/swift-sdks/swift-6.1-RELEASE-android-24-0.1.artifactbundle/swift-6.1-release-android-24-sdk/android-27c-sysroot/usr/include/math.h:272:8: note: candidate expects value of type 'Double' for parameter #2 (got 'Float')
270 | long double remquol(long double __x, long double __y, int* _Nonnull __quotient_bits);
271 |
272 | double copysign(double __value, double __sign) __attribute_const__;
    |        `- note: candidate expects value of type 'Double' for parameter #2 (got 'Float')
273 | float copysignf(float __value, float __sign) __attribute_const__;
274 | long double copysignl(long double __value, long double __sign) __attribute_const__;
/host/spi-builder-workspace/Sources/Blurhash/signPow.swift:4:12: error: no 'copysign' candidates produce the expected contextual result type 'Float'
2 |
3 | func signPow(_ value: Float, _ exp: Float) -> Float {
4 |     return copysign(pow(abs(value), exp), value)
  |            `- error: no 'copysign' candidates produce the expected contextual result type 'Float'
5 | }
6 |
Foundation.copysign:1:13: note: 'copysign' produces 'CGFloat', not the expected contextual result type 'Float'
1 | public func copysign(_ lhs: CGFloat, _ rhs: CGFloat) -> CGFloat
  |             `- note: 'copysign' produces 'CGFloat', not the expected contextual result type 'Float'
/root/.swiftpm/swift-sdks/swift-6.1-RELEASE-android-24-0.1.artifactbundle/swift-6.1-release-android-24-sdk/android-27c-sysroot/usr/include/math.h:272:8: note: 'copysign' produces 'Double', not the expected contextual result type 'Float'
270 | long double remquol(long double __x, long double __y, int* _Nonnull __quotient_bits);
271 |
272 | double copysign(double __value, double __sign) __attribute_const__;
    |        `- note: 'copysign' produces 'Double', not the expected contextual result type 'Float'
273 | float copysignf(float __value, float __sign) __attribute_const__;
274 | long double copysignl(long double __value, long double __sign) __attribute_const__;
[50/57] Compiling Blurhash UIImage(ext).swift
[51/57] Emitting module Blurhash
[52/57] Compiling Blurhash CustomBase83EncodingDecoding.swift
[53/57] Compiling Blurhash Data(ext).swift
[54/57] Compiling Blurhash UnsafeRawBufferPointer(ext).swift
/host/spi-builder-workspace/Sources/Blurhash/UnsafeRawBufferPointer(ext).swift:51:37: error: no exact matches in call to global function 'cos'
49 |                     pixelOffset: 0
50 |                 ) {
51 |                     normalisation * cos(Float.pi * Float(x) * $0 / widthFloat) * cos(ypi * $1 / heightFloat)
   |                                     `- error: no exact matches in call to global function 'cos'
52 |                 }
53 |                 factors.append(factor)
Foundation.cos:1:13: note: candidate expects value of type 'CGFloat' for parameter #1 (got 'Float')
1 | public func cos(_ x: CGFloat) -> CGFloat
  |             `- note: candidate expects value of type 'CGFloat' for parameter #1 (got 'Float')
/root/.swiftpm/swift-sdks/swift-6.1-RELEASE-android-24-0.1.artifactbundle/swift-6.1-release-android-24-sdk/android-27c-sysroot/usr/include/math.h:92:8: note: candidate expects value of type 'Double' for parameter #1 (got 'Float')
 90 | long double atan2l(long double __y, long double __x);
 91 |
 92 | double cos(double __x);
    |        `- note: candidate expects value of type 'Double' for parameter #1 (got 'Float')
 93 | float cosf(float __x);
 94 | long double cosl(long double __x);
/host/spi-builder-workspace/Sources/Blurhash/UnsafeRawBufferPointer(ext).swift:51:82: error: no exact matches in call to global function 'cos'
49 |                     pixelOffset: 0
50 |                 ) {
51 |                     normalisation * cos(Float.pi * Float(x) * $0 / widthFloat) * cos(ypi * $1 / heightFloat)
   |                                                                                  `- error: no exact matches in call to global function 'cos'
52 |                 }
53 |                 factors.append(factor)
Foundation.cos:1:13: note: candidate expects value of type 'CGFloat' for parameter #1 (got 'Float')
1 | public func cos(_ x: CGFloat) -> CGFloat
  |             `- note: candidate expects value of type 'CGFloat' for parameter #1 (got 'Float')
/root/.swiftpm/swift-sdks/swift-6.1-RELEASE-android-24-0.1.artifactbundle/swift-6.1-release-android-24-sdk/android-27c-sysroot/usr/include/math.h:92:8: note: candidate expects value of type 'Double' for parameter #1 (got 'Float')
 90 | long double atan2l(long double __y, long double __x);
 91 |
 92 | double cos(double __x);
    |        `- note: candidate expects value of type 'Double' for parameter #1 (got 'Float')
 93 | float cosf(float __x);
 94 | long double cosl(long double __x);
/host/spi-builder-workspace/Sources/Blurhash/UnsafeRawBufferPointer(ext).swift:51:35: error: binary operator '*' cannot be applied to operands of type 'Float' and 'CGFloat'
49 |                     pixelOffset: 0
50 |                 ) {
51 |                     normalisation * cos(Float.pi * Float(x) * $0 / widthFloat) * cos(ypi * $1 / heightFloat)
   |                                   |- error: binary operator '*' cannot be applied to operands of type 'Float' and 'CGFloat'
   |                                   `- note: overloads for '*' exist with these partially matching parameter lists: (CGFloat, CGFloat), (Double, Double), (Duration, Double)
52 |                 }
53 |                 factors.append(factor)
[55/57] Compiling Blurhash UnsafeMutableRawBufferPointer(ext).swift
/host/spi-builder-workspace/Sources/Blurhash/UnsafeMutableRawBufferPointer(ext).swift:42:29: error: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
40 |                 for j in 0 ..< numY {
41 |                     for i in 0 ..< numX {
42 |                         let basis = cos(Float.pi * Float(x) * Float(i) / Float(width)) *
   |                             `- error: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
43 |                         cos(Float.pi * Float(y) * Float(j) / Float(height))
44 |                         let colour = colours[i + j * numX]
[56/57] Compiling Blurhash FloatingPoint.swift
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:28:63: error: cannot convert value of type 'Float' to expected argument type 'Double'
26 |     // AC stands for alternating current or AC coefficient
27 |     func encodeAC(maximumValue: Float) -> Int {
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                                               `- error: cannot convert value of type 'Float' to expected argument type 'Double'
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:28:32: error: cannot convert value of type 'Float' to expected argument type 'Double'
26 |     // AC stands for alternating current or AC coefficient
27 |     func encodeAC(maximumValue: Float) -> Int {
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                `- error: cannot convert value of type 'Float' to expected argument type 'Double'
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:29:63: error: cannot convert value of type 'Float' to expected argument type 'Double'
27 |     func encodeAC(maximumValue: Float) -> Int {
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                                               `- error: cannot convert value of type 'Float' to expected argument type 'Double'
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
31 |         return quantR * 19 * 19 + quantG * 19 + quantB
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:29:32: error: cannot convert value of type 'Float' to expected argument type 'Double'
27 |     func encodeAC(maximumValue: Float) -> Int {
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                `- error: cannot convert value of type 'Float' to expected argument type 'Double'
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
31 |         return quantR * 19 * 19 + quantG * 19 + quantB
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:30:32: error: cannot convert value of type 'Float' to expected argument type 'Double'
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                `- error: cannot convert value of type 'Float' to expected argument type 'Double'
31 |         return quantR * 19 * 19 + quantG * 19 + quantB
32 |     }
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:30:63: error: cannot convert value of type 'Float' to expected argument type 'Double'
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                                               `- error: cannot convert value of type 'Float' to expected argument type 'Double'
31 |         return quantR * 19 * 19 + quantG * 19 + quantB
32 |     }
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:62:97: error: cannot convert value of type 'Float' to expected argument type 'Double'
60 |         if ac.count > 0 {
61 |             let actualMaximumValue = ac.map({ Swift.max(abs($0.r), abs($0.g), abs($0.b)) }).max()!
62 |             let quantisedMaximumValue = Int(Swift.max(0, Swift.min(82, floor(actualMaximumValue * 166 - 0.5))))
   |                                                                                                 `- error: cannot convert value of type 'Float' to expected argument type 'Double'
63 |             maximumValue = Float(quantisedMaximumValue + 1) / 166
64 |             hash += quantisedMaximumValue.encode83(length: 1)
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:62:78: error: cannot convert value of type 'Float' to expected argument type 'Double'
60 |         if ac.count > 0 {
61 |             let actualMaximumValue = ac.map({ Swift.max(abs($0.r), abs($0.g), abs($0.b)) }).max()!
62 |             let quantisedMaximumValue = Int(Swift.max(0, Swift.min(82, floor(actualMaximumValue * 166 - 0.5))))
   |                                                                              `- error: cannot convert value of type 'Float' to expected argument type 'Double'
63 |             maximumValue = Float(quantisedMaximumValue + 1) / 166
64 |             hash += quantisedMaximumValue.encode83(length: 1)
[57/57] Compiling Blurhash RGBFloat.swift
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:28:63: error: cannot convert value of type 'Float' to expected argument type 'Double'
26 |     // AC stands for alternating current or AC coefficient
27 |     func encodeAC(maximumValue: Float) -> Int {
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                                               `- error: cannot convert value of type 'Float' to expected argument type 'Double'
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:28:32: error: cannot convert value of type 'Float' to expected argument type 'Double'
26 |     // AC stands for alternating current or AC coefficient
27 |     func encodeAC(maximumValue: Float) -> Int {
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                `- error: cannot convert value of type 'Float' to expected argument type 'Double'
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:29:63: error: cannot convert value of type 'Float' to expected argument type 'Double'
27 |     func encodeAC(maximumValue: Float) -> Int {
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                                               `- error: cannot convert value of type 'Float' to expected argument type 'Double'
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
31 |         return quantR * 19 * 19 + quantG * 19 + quantB
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:29:32: error: cannot convert value of type 'Float' to expected argument type 'Double'
27 |     func encodeAC(maximumValue: Float) -> Int {
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                `- error: cannot convert value of type 'Float' to expected argument type 'Double'
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
31 |         return quantR * 19 * 19 + quantG * 19 + quantB
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:30:32: error: cannot convert value of type 'Float' to expected argument type 'Double'
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                `- error: cannot convert value of type 'Float' to expected argument type 'Double'
31 |         return quantR * 19 * 19 + quantG * 19 + quantB
32 |     }
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:30:63: error: cannot convert value of type 'Float' to expected argument type 'Double'
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                                               `- error: cannot convert value of type 'Float' to expected argument type 'Double'
31 |         return quantR * 19 * 19 + quantG * 19 + quantB
32 |     }
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:62:97: error: cannot convert value of type 'Float' to expected argument type 'Double'
60 |         if ac.count > 0 {
61 |             let actualMaximumValue = ac.map({ Swift.max(abs($0.r), abs($0.g), abs($0.b)) }).max()!
62 |             let quantisedMaximumValue = Int(Swift.max(0, Swift.min(82, floor(actualMaximumValue * 166 - 0.5))))
   |                                                                                                 `- error: cannot convert value of type 'Float' to expected argument type 'Double'
63 |             maximumValue = Float(quantisedMaximumValue + 1) / 166
64 |             hash += quantisedMaximumValue.encode83(length: 1)
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:62:78: error: cannot convert value of type 'Float' to expected argument type 'Double'
60 |         if ac.count > 0 {
61 |             let actualMaximumValue = ac.map({ Swift.max(abs($0.r), abs($0.g), abs($0.b)) }).max()!
62 |             let quantisedMaximumValue = Int(Swift.max(0, Swift.min(82, floor(actualMaximumValue * 166 - 0.5))))
   |                                                                              `- error: cannot convert value of type 'Float' to expected argument type 'Double'
63 |             maximumValue = Float(quantisedMaximumValue + 1) / 166
64 |             hash += quantisedMaximumValue.encode83(length: 1)
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-3":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 2>&1
android-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:fe1962677657b2408c217cb5cceb3c09bc1d91486e360cebbc6eee461a5945d8
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.1-latest
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-24593BA9C3E375BF.txt
[2/11] Compiling RealModule Float80+Real.swift
[3/11] Compiling RealModule Real.swift
[4/12] Compiling RealModule Float16+Real.swift
[5/12] Compiling RealModule Float+Real.swift
[6/12] Compiling RealModule ElementaryFunctions.swift
[7/12] Compiling RealModule RealFunctions.swift
[8/12] Compiling RealModule AugmentedArithmetic.swift
[9/12] Compiling RealModule Double+Real.swift
[10/12] Compiling RealModule AlgebraicField.swift
[11/12] Compiling RealModule ApproximateEquality.swift
[12/12] Emitting module RealModule
[14/38] Compiling Algorithms Compacted.swift
[15/38] Compiling Algorithms Cycle.swift
[16/38] Compiling Algorithms EitherSequence.swift
[17/38] Compiling Algorithms FirstNonNil.swift
[18/41] Compiling Algorithms RandomSample.swift
[19/41] Compiling Algorithms Reductions.swift
[20/41] Compiling Algorithms Rotate.swift
[21/41] Compiling Algorithms FlattenCollection.swift
[22/41] Compiling Algorithms Grouped.swift
[23/41] Compiling Algorithms Indexed.swift
[24/41] Compiling Algorithms Intersperse.swift
[25/41] Compiling Algorithms Split.swift
[26/41] Compiling Algorithms Stride.swift
[27/41] Compiling Algorithms Suffix.swift
[28/41] Compiling Algorithms Partition.swift
[29/41] Compiling Algorithms Permutations.swift
[30/41] Compiling Algorithms Product.swift
[31/41] Compiling Algorithms Trim.swift
[32/41] Compiling Algorithms Unique.swift
[33/41] Compiling Algorithms Windows.swift
[34/41] Compiling Algorithms Joined.swift
[35/41] Compiling Algorithms Keyed.swift
[36/41] Compiling Algorithms MinMax.swift
[37/41] Compiling Algorithms AdjacentPairs.swift
[38/41] Compiling Algorithms Chain.swift
[39/41] Compiling Algorithms Chunked.swift
[40/41] Compiling Algorithms Combinations.swift
[41/41] Emitting module Algorithms
[43/52] Compiling Blurhash CustomBase83EncodingDecoding.swift
[44/52] Compiling Blurhash Data(ext).swift
[45/52] Emitting module Blurhash
[46/53] Compiling Blurhash signPow.swift
/host/spi-builder-workspace/Sources/Blurhash/signPow.swift:4:21: error: no exact matches in call to global function 'pow'
2 |
3 | func signPow(_ value: Float, _ exp: Float) -> Float {
4 |     return copysign(pow(abs(value), exp), value)
  |                     `- error: no exact matches in call to global function 'pow'
5 | }
6 |
Foundation.pow:1:13: note: candidate expects value of type 'CGFloat' for parameter #2 (got 'Float')
1 | public func pow(_ lhs: CGFloat, _ rhs: CGFloat) -> CGFloat
  |             `- note: candidate expects value of type 'CGFloat' for parameter #2 (got 'Float')
/root/.swiftpm/swift-sdks/swift-6.1-RELEASE-android-24-0.1.artifactbundle/swift-6.1-release-android-24-sdk/android-27c-sysroot/usr/include/math.h:196:8: note: candidate expects value of type 'Double' for parameter #2 (got 'Float')
194 | long double hypotl(long double __x, long double __y);
195 |
196 | double pow(double __x, double __y);
    |        `- note: candidate expects value of type 'Double' for parameter #2 (got 'Float')
197 | float powf(float __x, float __y);
198 | long double powl(long double __x, long double __y);
/host/spi-builder-workspace/Sources/Blurhash/signPow.swift:4:12: error: no exact matches in call to global function 'copysign'
2 |
3 | func signPow(_ value: Float, _ exp: Float) -> Float {
4 |     return copysign(pow(abs(value), exp), value)
  |            `- error: no exact matches in call to global function 'copysign'
5 | }
6 |
Foundation.copysign:1:13: note: candidate expects value of type 'CGFloat' for parameter #2 (got 'Float')
1 | public func copysign(_ lhs: CGFloat, _ rhs: CGFloat) -> CGFloat
  |             `- note: candidate expects value of type 'CGFloat' for parameter #2 (got 'Float')
/root/.swiftpm/swift-sdks/swift-6.1-RELEASE-android-24-0.1.artifactbundle/swift-6.1-release-android-24-sdk/android-27c-sysroot/usr/include/math.h:272:8: note: candidate expects value of type 'Double' for parameter #2 (got 'Float')
270 | long double remquol(long double __x, long double __y, int* _Nonnull __quotient_bits);
271 |
272 | double copysign(double __value, double __sign) __attribute_const__;
    |        `- note: candidate expects value of type 'Double' for parameter #2 (got 'Float')
273 | float copysignf(float __value, float __sign) __attribute_const__;
274 | long double copysignl(long double __value, long double __sign) __attribute_const__;
/host/spi-builder-workspace/Sources/Blurhash/signPow.swift:4:12: error: no 'copysign' candidates produce the expected contextual result type 'Float'
2 |
3 | func signPow(_ value: Float, _ exp: Float) -> Float {
4 |     return copysign(pow(abs(value), exp), value)
  |            `- error: no 'copysign' candidates produce the expected contextual result type 'Float'
5 | }
6 |
Foundation.copysign:1:13: note: 'copysign' produces 'CGFloat', not the expected contextual result type 'Float'
1 | public func copysign(_ lhs: CGFloat, _ rhs: CGFloat) -> CGFloat
  |             `- note: 'copysign' produces 'CGFloat', not the expected contextual result type 'Float'
/root/.swiftpm/swift-sdks/swift-6.1-RELEASE-android-24-0.1.artifactbundle/swift-6.1-release-android-24-sdk/android-27c-sysroot/usr/include/math.h:272:8: note: 'copysign' produces 'Double', not the expected contextual result type 'Float'
270 | long double remquol(long double __x, long double __y, int* _Nonnull __quotient_bits);
271 |
272 | double copysign(double __value, double __sign) __attribute_const__;
    |        `- note: 'copysign' produces 'Double', not the expected contextual result type 'Float'
273 | float copysignf(float __value, float __sign) __attribute_const__;
274 | long double copysignl(long double __value, long double __sign) __attribute_const__;
[47/53] Compiling Blurhash pow.swift
[48/53] Compiling Blurhash sRGBLinear.swift
/host/spi-builder-workspace/Sources/Blurhash/sRGBLinear.swift:15:51: error: cannot assign value of type 'Double' to type 'Float'
13 |         } else {
14 |             // Apply gamma correction
15 |             transformed = 1.055 * pow(v, 1 / 2.4) - 0.055
   |                                                   `- error: cannot assign value of type 'Double' to type 'Float'
16 |         }
17 |         // Scale result to 0...255 range and round to the nearest integer
/host/spi-builder-workspace/Sources/Blurhash/sRGBLinear.swift:15:39: error: cannot convert value of type 'Float' to expected argument type 'Double'
13 |         } else {
14 |             // Apply gamma correction
15 |             transformed = 1.055 * pow(v, 1 / 2.4) - 0.055
   |                                       `- error: cannot convert value of type 'Float' to expected argument type 'Double'
16 |         }
17 |         // Scale result to 0...255 range and round to the nearest integer
/host/spi-builder-workspace/Sources/Blurhash/sRGBLinear.swift:35:20: error: cannot convert return expression of type 'Double' to return type 'Float'
33 |         } else {
34 |             // Apply gamma correction
35 |             return pow((v + 0.055) / 1.055, 2.4)
   |                    `- error: cannot convert return expression of type 'Double' to return type 'Float'
36 |         }
37 |     }
/host/spi-builder-workspace/Sources/Blurhash/sRGBLinear.swift:35:25: error: cannot convert value of type 'Float' to expected argument type 'Double'
33 |         } else {
34 |             // Apply gamma correction
35 |             return pow((v + 0.055) / 1.055, 2.4)
   |                         `- error: cannot convert value of type 'Float' to expected argument type 'Double'
36 |         }
37 |     }
[49/53] Compiling Blurhash UnsafeRawBufferPointer(ext).swift
/host/spi-builder-workspace/Sources/Blurhash/UnsafeRawBufferPointer(ext).swift:51:35: error: binary operator '*' cannot be applied to operands of type 'Float' and 'CGFloat'
49 |                     pixelOffset: 0
50 |                 ) {
51 |                     normalisation * cos(Float.pi * Float(x) * $0 / widthFloat) * cos(ypi * $1 / heightFloat)
   |                                   |- error: binary operator '*' cannot be applied to operands of type 'Float' and 'CGFloat'
   |                                   `- note: overloads for '*' exist with these partially matching parameter lists: (CGFloat, CGFloat), (Double, Double), (Duration, Double)
52 |                 }
53 |                 factors.append(factor)
/host/spi-builder-workspace/Sources/Blurhash/UnsafeRawBufferPointer(ext).swift:51:82: error: no exact matches in call to global function 'cos'
49 |                     pixelOffset: 0
50 |                 ) {
51 |                     normalisation * cos(Float.pi * Float(x) * $0 / widthFloat) * cos(ypi * $1 / heightFloat)
   |                                                                                  `- error: no exact matches in call to global function 'cos'
52 |                 }
53 |                 factors.append(factor)
Foundation.cos:1:13: note: candidate expects value of type 'CGFloat' for parameter #1 (got 'Float')
1 | public func cos(_ x: CGFloat) -> CGFloat
  |             `- note: candidate expects value of type 'CGFloat' for parameter #1 (got 'Float')
/root/.swiftpm/swift-sdks/swift-6.1-RELEASE-android-24-0.1.artifactbundle/swift-6.1-release-android-24-sdk/android-27c-sysroot/usr/include/math.h:92:8: note: candidate expects value of type 'Double' for parameter #1 (got 'Float')
 90 | long double atan2l(long double __y, long double __x);
 91 |
 92 | double cos(double __x);
    |        `- note: candidate expects value of type 'Double' for parameter #1 (got 'Float')
 93 | float cosf(float __x);
 94 | long double cosl(long double __x);
/host/spi-builder-workspace/Sources/Blurhash/UnsafeRawBufferPointer(ext).swift:51:37: error: no exact matches in call to global function 'cos'
49 |                     pixelOffset: 0
50 |                 ) {
51 |                     normalisation * cos(Float.pi * Float(x) * $0 / widthFloat) * cos(ypi * $1 / heightFloat)
   |                                     `- error: no exact matches in call to global function 'cos'
52 |                 }
53 |                 factors.append(factor)
Foundation.cos:1:13: note: candidate expects value of type 'CGFloat' for parameter #1 (got 'Float')
1 | public func cos(_ x: CGFloat) -> CGFloat
  |             `- note: candidate expects value of type 'CGFloat' for parameter #1 (got 'Float')
/root/.swiftpm/swift-sdks/swift-6.1-RELEASE-android-24-0.1.artifactbundle/swift-6.1-release-android-24-sdk/android-27c-sysroot/usr/include/math.h:92:8: note: candidate expects value of type 'Double' for parameter #1 (got 'Float')
 90 | long double atan2l(long double __y, long double __x);
 91 |
 92 | double cos(double __x);
    |        `- note: candidate expects value of type 'Double' for parameter #1 (got 'Float')
 93 | float cosf(float __x);
 94 | long double cosl(long double __x);
[50/53] Compiling Blurhash UIImage(ext).swift
[51/53] Compiling Blurhash UnsafeMutableRawBufferPointer(ext).swift
/host/spi-builder-workspace/Sources/Blurhash/UnsafeMutableRawBufferPointer(ext).swift:42:29: error: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
40 |                 for j in 0 ..< numY {
41 |                     for i in 0 ..< numX {
42 |                         let basis = cos(Float.pi * Float(x) * Float(i) / Float(width)) *
   |                             `- error: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
43 |                         cos(Float.pi * Float(y) * Float(j) / Float(height))
44 |                         let colour = colours[i + j * numX]
[52/53] Compiling Blurhash FloatingPoint.swift
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:28:32: error: cannot convert value of type 'Float' to expected argument type 'Double'
26 |     // AC stands for alternating current or AC coefficient
27 |     func encodeAC(maximumValue: Float) -> Int {
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                `- error: cannot convert value of type 'Float' to expected argument type 'Double'
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:28:63: error: cannot convert value of type 'Float' to expected argument type 'Double'
26 |     // AC stands for alternating current or AC coefficient
27 |     func encodeAC(maximumValue: Float) -> Int {
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                                               `- error: cannot convert value of type 'Float' to expected argument type 'Double'
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:29:32: error: cannot convert value of type 'Float' to expected argument type 'Double'
27 |     func encodeAC(maximumValue: Float) -> Int {
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                `- error: cannot convert value of type 'Float' to expected argument type 'Double'
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
31 |         return quantR * 19 * 19 + quantG * 19 + quantB
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:29:63: error: cannot convert value of type 'Float' to expected argument type 'Double'
27 |     func encodeAC(maximumValue: Float) -> Int {
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                                               `- error: cannot convert value of type 'Float' to expected argument type 'Double'
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
31 |         return quantR * 19 * 19 + quantG * 19 + quantB
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:30:63: error: cannot convert value of type 'Float' to expected argument type 'Double'
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                                               `- error: cannot convert value of type 'Float' to expected argument type 'Double'
31 |         return quantR * 19 * 19 + quantG * 19 + quantB
32 |     }
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:30:32: error: cannot convert value of type 'Float' to expected argument type 'Double'
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                `- error: cannot convert value of type 'Float' to expected argument type 'Double'
31 |         return quantR * 19 * 19 + quantG * 19 + quantB
32 |     }
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:62:78: error: cannot convert value of type 'Float' to expected argument type 'Double'
60 |         if ac.count > 0 {
61 |             let actualMaximumValue = ac.map({ Swift.max(abs($0.r), abs($0.g), abs($0.b)) }).max()!
62 |             let quantisedMaximumValue = Int(Swift.max(0, Swift.min(82, floor(actualMaximumValue * 166 - 0.5))))
   |                                                                              `- error: cannot convert value of type 'Float' to expected argument type 'Double'
63 |             maximumValue = Float(quantisedMaximumValue + 1) / 166
64 |             hash += quantisedMaximumValue.encode83(length: 1)
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:62:97: error: cannot convert value of type 'Float' to expected argument type 'Double'
60 |         if ac.count > 0 {
61 |             let actualMaximumValue = ac.map({ Swift.max(abs($0.r), abs($0.g), abs($0.b)) }).max()!
62 |             let quantisedMaximumValue = Int(Swift.max(0, Swift.min(82, floor(actualMaximumValue * 166 - 0.5))))
   |                                                                                                 `- error: cannot convert value of type 'Float' to expected argument type 'Double'
63 |             maximumValue = Float(quantisedMaximumValue + 1) / 166
64 |             hash += quantisedMaximumValue.encode83(length: 1)
[53/53] Compiling Blurhash RGBFloat.swift
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:28:32: error: cannot convert value of type 'Float' to expected argument type 'Double'
26 |     // AC stands for alternating current or AC coefficient
27 |     func encodeAC(maximumValue: Float) -> Int {
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                `- error: cannot convert value of type 'Float' to expected argument type 'Double'
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:28:63: error: cannot convert value of type 'Float' to expected argument type 'Double'
26 |     // AC stands for alternating current or AC coefficient
27 |     func encodeAC(maximumValue: Float) -> Int {
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                                               `- error: cannot convert value of type 'Float' to expected argument type 'Double'
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:29:32: error: cannot convert value of type 'Float' to expected argument type 'Double'
27 |     func encodeAC(maximumValue: Float) -> Int {
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                `- error: cannot convert value of type 'Float' to expected argument type 'Double'
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
31 |         return quantR * 19 * 19 + quantG * 19 + quantB
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:29:63: error: cannot convert value of type 'Float' to expected argument type 'Double'
27 |     func encodeAC(maximumValue: Float) -> Int {
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                                               `- error: cannot convert value of type 'Float' to expected argument type 'Double'
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
31 |         return quantR * 19 * 19 + quantG * 19 + quantB
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:30:63: error: cannot convert value of type 'Float' to expected argument type 'Double'
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                                               `- error: cannot convert value of type 'Float' to expected argument type 'Double'
31 |         return quantR * 19 * 19 + quantG * 19 + quantB
32 |     }
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:30:32: error: cannot convert value of type 'Float' to expected argument type 'Double'
28 |         let quantR = Int(floor(signPow(r / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
29 |         let quantG = Int(floor(signPow(g / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
30 |         let quantB = Int(floor(signPow(b / maximumValue, 0.5) * 9 + 9.5).clamped(to: 0.0...18.0))
   |                                `- error: cannot convert value of type 'Float' to expected argument type 'Double'
31 |         return quantR * 19 * 19 + quantG * 19 + quantB
32 |     }
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:62:78: error: cannot convert value of type 'Float' to expected argument type 'Double'
60 |         if ac.count > 0 {
61 |             let actualMaximumValue = ac.map({ Swift.max(abs($0.r), abs($0.g), abs($0.b)) }).max()!
62 |             let quantisedMaximumValue = Int(Swift.max(0, Swift.min(82, floor(actualMaximumValue * 166 - 0.5))))
   |                                                                              `- error: cannot convert value of type 'Float' to expected argument type 'Double'
63 |             maximumValue = Float(quantisedMaximumValue + 1) / 166
64 |             hash += quantisedMaximumValue.encode83(length: 1)
/host/spi-builder-workspace/Sources/Blurhash/RGBFloat.swift:62:97: error: cannot convert value of type 'Float' to expected argument type 'Double'
60 |         if ac.count > 0 {
61 |             let actualMaximumValue = ac.map({ Swift.max(abs($0.r), abs($0.g), abs($0.b)) }).max()!
62 |             let quantisedMaximumValue = Int(Swift.max(0, Swift.min(82, floor(actualMaximumValue * 166 - 0.5))))
   |                                                                                                 `- error: cannot convert value of type 'Float' to expected argument type 'Double'
63 |             maximumValue = Float(quantisedMaximumValue + 1) / 166
64 |             hash += quantisedMaximumValue.encode83(length: 1)
BUILD FAILURE 6.1 android