Build Information
Failed to build manifold-swift, reference main (a0942d
), with Swift 6.1 for Android on 31 May 2025 01:59:40 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4606859-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
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[80/80] Compiling Manifold3D BooleanOperation.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-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/23] Compiling Manifold3D CrossSection+Transforms.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[3/23] Compiling Manifold3D CrossSection.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[4/23] Compiling Manifold3D Extensions.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[5/23] Compiling Manifold3D CrossSection+Operations.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:616:52: warning: using integer absolute value function 'abs' when argument is of floating point type
282 | template <class F, int M, class A>
283 | struct apply<F, scalars_t<>, vec<A, M>> {
284 | using type = vec<ret_t<F, A>, M>;
| `- note: in instantiation of template type alias 'ret_t' requested here
285 | enum { size = M, mm = 0 };
286 | template <int... I>
:
614 | struct std_abs {
615 | template <class A>
616 | constexpr auto operator()(A a) const -> decltype(std::abs(a)) {
| |- warning: using integer absolute value function 'abs' when argument is of floating point type
| |- note: use function 'std::abs' instead
| `- note: include the header <cmath> or explicitly provide a declaration for 'std::abs'
617 | return std::abs(a);
618 | }
:
1265 | // be used with return type SFINAE to constrain overload sets
1266 | template <class F, class... A>
1267 | using apply_t = typename detail::apply<F, void, A...>::type;
| `- note: in instantiation of template class 'linalg::detail::apply<linalg::detail::std_abs, void, linalg::vec<double, 3>>' requested here
1268 | template <class F, class... A>
1269 | using mm_apply_t = typename std::enable_if<detail::apply<F, void, A...>::mm,
:
1551 | }
1552 | template <class A>
1553 | constexpr apply_t<detail::std_abs, A> abs(const A& a) {
| `- note: in instantiation of template type alias 'apply_t' requested here
1554 | return apply(detail::std_abs{}, a);
1555 | }
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:27: note: while substituting deduced template arguments into function template 'abs' [with A = vec3]
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
:
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- note: while substituting deduced template arguments into function template 'abs' [with A = vec3]
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:617:12: warning: using integer absolute value function 'abs' when argument is of floating point type
286 | template <int... I>
287 | static constexpr type impl(seq<I...>, F f, const vec<A, M>& a) {
288 | return {f(getter<I>{}(a))...};
| `- note: in instantiation of function template specialization 'linalg::detail::std_abs::operator()<double>' requested here
289 | }
290 | };
:
615 | template <class A>
616 | constexpr auto operator()(A a) const -> decltype(std::abs(a)) {
617 | return std::abs(a);
| |- warning: using integer absolute value function 'abs' when argument is of floating point type
| |- note: use function 'std::abs' instead
| `- note: include the header <cmath> or explicitly provide a declaration for 'std::abs'
618 | }
619 | };
:
1281 | template <class F, class... A>
1282 | constexpr apply_t<F, A...> apply(F func, const A&... args) {
1283 | return detail::apply<F, void, A...>::impl(
| `- note: in instantiation of function template specialization 'linalg::detail::apply<linalg::detail::std_abs, void, linalg::vec<double, 3>>::impl<0, 1, 2>' requested here
1284 | detail::make_seq<0, detail::apply<F, void, A...>::size>{}, func, args...);
1285 | }
:
1552 | template <class A>
1553 | constexpr apply_t<detail::std_abs, A> abs(const A& a) {
1554 | return apply(detail::std_abs{}, a);
| `- note: in instantiation of function template specialization 'linalg::apply<linalg::detail::std_abs, linalg::vec<double, 3>>' requested here
1555 | }
1556 | template <class A>
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:31: note: in instantiation of function template specialization 'linalg::abs<linalg::vec<double, 3>>' requested here
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- note: in instantiation of function template specialization 'linalg::abs<linalg::vec<double, 3>>' requested here
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[6/23] Compiling Manifold3D CrossSection+Properties.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:616:52: warning: using integer absolute value function 'abs' when argument is of floating point type
282 | template <class F, int M, class A>
283 | struct apply<F, scalars_t<>, vec<A, M>> {
284 | using type = vec<ret_t<F, A>, M>;
| `- note: in instantiation of template type alias 'ret_t' requested here
285 | enum { size = M, mm = 0 };
286 | template <int... I>
:
614 | struct std_abs {
615 | template <class A>
616 | constexpr auto operator()(A a) const -> decltype(std::abs(a)) {
| |- warning: using integer absolute value function 'abs' when argument is of floating point type
| |- note: use function 'std::abs' instead
| `- note: include the header <cmath> or explicitly provide a declaration for 'std::abs'
617 | return std::abs(a);
618 | }
:
1265 | // be used with return type SFINAE to constrain overload sets
1266 | template <class F, class... A>
1267 | using apply_t = typename detail::apply<F, void, A...>::type;
| `- note: in instantiation of template class 'linalg::detail::apply<linalg::detail::std_abs, void, linalg::vec<double, 3>>' requested here
1268 | template <class F, class... A>
1269 | using mm_apply_t = typename std::enable_if<detail::apply<F, void, A...>::mm,
:
1551 | }
1552 | template <class A>
1553 | constexpr apply_t<detail::std_abs, A> abs(const A& a) {
| `- note: in instantiation of template type alias 'apply_t' requested here
1554 | return apply(detail::std_abs{}, a);
1555 | }
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:27: note: while substituting deduced template arguments into function template 'abs' [with A = vec3]
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
:
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- note: while substituting deduced template arguments into function template 'abs' [with A = vec3]
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:617:12: warning: using integer absolute value function 'abs' when argument is of floating point type
286 | template <int... I>
287 | static constexpr type impl(seq<I...>, F f, const vec<A, M>& a) {
288 | return {f(getter<I>{}(a))...};
| `- note: in instantiation of function template specialization 'linalg::detail::std_abs::operator()<double>' requested here
289 | }
290 | };
:
615 | template <class A>
616 | constexpr auto operator()(A a) const -> decltype(std::abs(a)) {
617 | return std::abs(a);
| |- warning: using integer absolute value function 'abs' when argument is of floating point type
| |- note: use function 'std::abs' instead
| `- note: include the header <cmath> or explicitly provide a declaration for 'std::abs'
618 | }
619 | };
:
1281 | template <class F, class... A>
1282 | constexpr apply_t<F, A...> apply(F func, const A&... args) {
1283 | return detail::apply<F, void, A...>::impl(
| `- note: in instantiation of function template specialization 'linalg::detail::apply<linalg::detail::std_abs, void, linalg::vec<double, 3>>::impl<0, 1, 2>' requested here
1284 | detail::make_seq<0, detail::apply<F, void, A...>::size>{}, func, args...);
1285 | }
:
1552 | template <class A>
1553 | constexpr apply_t<detail::std_abs, A> abs(const A& a) {
1554 | return apply(detail::std_abs{}, a);
| `- note: in instantiation of function template specialization 'linalg::apply<linalg::detail::std_abs, linalg::vec<double, 3>>' requested here
1555 | }
1556 | template <class A>
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:31: note: in instantiation of function template specialization 'linalg::abs<linalg::vec<double, 3>>' requested here
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- note: in instantiation of function template specialization 'linalg::abs<linalg::vec<double, 3>>' requested here
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[7/23] Compiling Manifold3D CrossSection+Shapes.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:616:52: warning: using integer absolute value function 'abs' when argument is of floating point type
282 | template <class F, int M, class A>
283 | struct apply<F, scalars_t<>, vec<A, M>> {
284 | using type = vec<ret_t<F, A>, M>;
| `- note: in instantiation of template type alias 'ret_t' requested here
285 | enum { size = M, mm = 0 };
286 | template <int... I>
:
614 | struct std_abs {
615 | template <class A>
616 | constexpr auto operator()(A a) const -> decltype(std::abs(a)) {
| |- warning: using integer absolute value function 'abs' when argument is of floating point type
| |- note: use function 'std::abs' instead
| `- note: include the header <cmath> or explicitly provide a declaration for 'std::abs'
617 | return std::abs(a);
618 | }
:
1265 | // be used with return type SFINAE to constrain overload sets
1266 | template <class F, class... A>
1267 | using apply_t = typename detail::apply<F, void, A...>::type;
| `- note: in instantiation of template class 'linalg::detail::apply<linalg::detail::std_abs, void, linalg::vec<double, 3>>' requested here
1268 | template <class F, class... A>
1269 | using mm_apply_t = typename std::enable_if<detail::apply<F, void, A...>::mm,
:
1551 | }
1552 | template <class A>
1553 | constexpr apply_t<detail::std_abs, A> abs(const A& a) {
| `- note: in instantiation of template type alias 'apply_t' requested here
1554 | return apply(detail::std_abs{}, a);
1555 | }
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:27: note: while substituting deduced template arguments into function template 'abs' [with A = vec3]
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
:
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- note: while substituting deduced template arguments into function template 'abs' [with A = vec3]
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:617:12: warning: using integer absolute value function 'abs' when argument is of floating point type
286 | template <int... I>
287 | static constexpr type impl(seq<I...>, F f, const vec<A, M>& a) {
288 | return {f(getter<I>{}(a))...};
| `- note: in instantiation of function template specialization 'linalg::detail::std_abs::operator()<double>' requested here
289 | }
290 | };
:
615 | template <class A>
616 | constexpr auto operator()(A a) const -> decltype(std::abs(a)) {
617 | return std::abs(a);
| |- warning: using integer absolute value function 'abs' when argument is of floating point type
| |- note: use function 'std::abs' instead
| `- note: include the header <cmath> or explicitly provide a declaration for 'std::abs'
618 | }
619 | };
:
1281 | template <class F, class... A>
1282 | constexpr apply_t<F, A...> apply(F func, const A&... args) {
1283 | return detail::apply<F, void, A...>::impl(
| `- note: in instantiation of function template specialization 'linalg::detail::apply<linalg::detail::std_abs, void, linalg::vec<double, 3>>::impl<0, 1, 2>' requested here
1284 | detail::make_seq<0, detail::apply<F, void, A...>::size>{}, func, args...);
1285 | }
:
1552 | template <class A>
1553 | constexpr apply_t<detail::std_abs, A> abs(const A& a) {
1554 | return apply(detail::std_abs{}, a);
| `- note: in instantiation of function template specialization 'linalg::apply<linalg::detail::std_abs, linalg::vec<double, 3>>' requested here
1555 | }
1556 | template <class A>
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:31: note: in instantiation of function template specialization 'linalg::abs<linalg::vec<double, 3>>' requested here
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- note: in instantiation of function template specialization 'linalg::abs<linalg::vec<double, 3>>' requested here
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
error: emit-module command failed with exit code 1 (use -v to see invocation)
[8/25] Emitting module Manifold3D
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:616:52: warning: using integer absolute value function 'abs' when argument is of floating point type
282 | template <class F, int M, class A>
283 | struct apply<F, scalars_t<>, vec<A, M>> {
284 | using type = vec<ret_t<F, A>, M>;
| `- note: in instantiation of template type alias 'ret_t' requested here
285 | enum { size = M, mm = 0 };
286 | template <int... I>
:
614 | struct std_abs {
615 | template <class A>
616 | constexpr auto operator()(A a) const -> decltype(std::abs(a)) {
| |- warning: using integer absolute value function 'abs' when argument is of floating point type
| |- note: use function 'std::abs' instead
| `- note: include the header <cmath> or explicitly provide a declaration for 'std::abs'
617 | return std::abs(a);
618 | }
:
1265 | // be used with return type SFINAE to constrain overload sets
1266 | template <class F, class... A>
1267 | using apply_t = typename detail::apply<F, void, A...>::type;
| `- note: in instantiation of template class 'linalg::detail::apply<linalg::detail::std_abs, void, linalg::vec<double, 3>>' requested here
1268 | template <class F, class... A>
1269 | using mm_apply_t = typename std::enable_if<detail::apply<F, void, A...>::mm,
:
1551 | }
1552 | template <class A>
1553 | constexpr apply_t<detail::std_abs, A> abs(const A& a) {
| `- note: in instantiation of template type alias 'apply_t' requested here
1554 | return apply(detail::std_abs{}, a);
1555 | }
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:27: note: while substituting deduced template arguments into function template 'abs' [with A = vec3]
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
:
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- note: while substituting deduced template arguments into function template 'abs' [with A = vec3]
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:617:12: warning: using integer absolute value function 'abs' when argument is of floating point type
286 | template <int... I>
287 | static constexpr type impl(seq<I...>, F f, const vec<A, M>& a) {
288 | return {f(getter<I>{}(a))...};
| `- note: in instantiation of function template specialization 'linalg::detail::std_abs::operator()<double>' requested here
289 | }
290 | };
:
615 | template <class A>
616 | constexpr auto operator()(A a) const -> decltype(std::abs(a)) {
617 | return std::abs(a);
| |- warning: using integer absolute value function 'abs' when argument is of floating point type
| |- note: use function 'std::abs' instead
| `- note: include the header <cmath> or explicitly provide a declaration for 'std::abs'
618 | }
619 | };
:
1281 | template <class F, class... A>
1282 | constexpr apply_t<F, A...> apply(F func, const A&... args) {
1283 | return detail::apply<F, void, A...>::impl(
| `- note: in instantiation of function template specialization 'linalg::detail::apply<linalg::detail::std_abs, void, linalg::vec<double, 3>>::impl<0, 1, 2>' requested here
1284 | detail::make_seq<0, detail::apply<F, void, A...>::size>{}, func, args...);
1285 | }
:
1552 | template <class A>
1553 | constexpr apply_t<detail::std_abs, A> abs(const A& a) {
1554 | return apply(detail::std_abs{}, a);
| `- note: in instantiation of function template specialization 'linalg::apply<linalg::detail::std_abs, linalg::vec<double, 3>>' requested here
1555 | }
1556 | template <class A>
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:31: note: in instantiation of function template specialization 'linalg::abs<linalg::vec<double, 3>>' requested here
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- note: in instantiation of function template specialization 'linalg::abs<linalg::vec<double, 3>>' requested here
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[9/25] Compiling Manifold3D Manifold+Properties.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[10/25] Compiling Manifold3D Manifold+Shapes.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[11/25] Compiling Manifold3D Manifold+Smoothing.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[12/25] Compiling Manifold3D Geometry.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[13/25] Compiling Manifold3D Manifold+Composition.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[14/25] Compiling Manifold3D Manifold+Operations.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[15/25] Compiling Manifold3D CrossSectionTypes.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[16/25] Compiling Manifold3D Matrices.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[17/25] Compiling Manifold3D Polygon.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[18/25] Compiling Manifold3D Manifold+Transforms.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[19/25] Compiling Manifold3D Manifold+VertexProperties.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[20/25] Compiling Manifold3D Manifold.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[21/25] Compiling Manifold3D Triangle.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[22/25] Compiling Manifold3D Vectors.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[23/25] Compiling Manifold3D MeshGL.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[24/25] Compiling Manifold3D Quality.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
[25/25] Compiling Manifold3D BooleanOperation.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:10: note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
21 | #endif
22 |
23 | #include "linalg.h"
| `- note: in file included from /host/spi-builder-workspace/External/manifold/include/manifold/common.h:23:
24 | #include "optional_assert.h"
25 |
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:190:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
188 | */
189 | constexpr double Scale() const {
190 | vec3 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
191 | return la::max(absMax.x, la::max(absMax.y, absMax.z));
192 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:891:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
889 | };
890 | template <class T>
891 | struct vec<T, 3> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'const vec<double, 3> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 3>, vec<int, 3>>' (aka 'vec<int, 3>') to 'vec<double, 3> &&' for 1st argument
892 | T x, y, z;
893 | constexpr vec() : x(), y(), z() {}
894 | constexpr vec(const T& x_, const T& y_, const T& z_) : x(x_), y(y_), z(z_) {}
895 | constexpr vec(const vec<T, 2>& xy, const T& z_) : vec(xy.x, xy.y, z_) {}
896 | constexpr explicit vec(const T& s) : vec(s, s, s) {}
| `- note: explicit constructor is not a candidate
897 | constexpr explicit vec(const T* p) : vec(p[0], p[1], p[2]) {}
| `- note: explicit constructor is not a candidate
898 | template <class U, int N>
899 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
900 | : vec(static_cast<T>(v.x), static_cast<T>(v.y), static_cast<T>(v.z)) {
901 | static_assert(
:
915 |
916 | template <class U, class = detail::conv_t<vec, U>>
917 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 3>, vec<int, 3>>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
918 | template <class U, class = detail::conv_t<U, vec>>
919 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 3>]: type 'converter<vec<double, 3>, vec<int, 3>>' does not provide a call operator
920 | return converter<U, vec>{}(*this);
921 | }
<module-includes>:1:10: note: in file included from <module-includes>:1:
1 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/common.h"
| `- note: in file included from <module-includes>:1:
2 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/cross_section.h"
3 | #include "/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h"
/host/spi-builder-workspace/External/manifold/include/manifold/common.h:348:10: error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
346 | */
347 | constexpr double Scale() const {
348 | vec2 absMax = la::max(la::abs(min), la::abs(max));
| `- error: no viable conversion from 'vec<ret_t<max, int, int>, [...]>' to 'vec<double, [...]>'
349 | return la::max(absMax.x, absMax.y);
350 | }
/host/spi-builder-workspace/External/manifold/include/manifold/linalg.h:867:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
865 | };
866 | template <class T>
867 | struct vec<T, 2> {
| |- note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'const vec<double, 2> &' for 1st argument
| `- note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'apply_t<detail::max, vec<int, 2>, vec<int, 2>>' (aka 'vec<int, 2>') to 'vec<double, 2> &&' for 1st argument
868 | T x, y;
869 | constexpr vec() : x(), y() {}
870 | constexpr vec(const T& x_, const T& y_) : x(x_), y(y_) {}
871 | constexpr explicit vec(const T& s) : vec(s, s) {}
| `- note: explicit constructor is not a candidate
872 | constexpr explicit vec(const T* p) : vec(p[0], p[1]) {}
| `- note: explicit constructor is not a candidate
873 | template <class U, int N>
874 | constexpr explicit vec(const vec<U, N>& v)
| `- note: explicit constructor is not a candidate
875 | : vec(static_cast<T>(v.x), static_cast<T>(v.y)) {
876 | static_assert(
:
882 |
883 | template <class U, class = detail::conv_t<vec, U>>
884 | constexpr vec(const U& u) : vec(converter<vec, U>{}(u)) {}
| `- note: candidate template ignored: substitution failure [with U = apply_t<detail::max, vec<int, 2>, vec<int, 2>>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
885 | template <class U, class = detail::conv_t<U, vec>>
886 | constexpr operator U() const {
| `- note: candidate template ignored: substitution failure [with U = linalg::vec<double, 2>]: type 'converter<vec<double, 2>, vec<int, 2>>' does not provide a call operator
887 | return converter<U, vec>{}(*this);
888 | }
/host/spi-builder-workspace/Sources/Manifold3D/CrossSection/CrossSection+Operations.swift:2:8: error: could not build C module 'ManifoldCPP'
1 | import Foundation
2 | import ManifoldCPP
| `- error: could not build C module 'ManifoldCPP'
3 | import ManifoldBridge
4 |
BUILD FAILURE 6.1 android