     
     @nonobjc public var float4Array: [SIMD4<Float>] {
         get {
-            var values = [SIMD4<Float>](repeating: SIMD4<Float>(), count: Int(timeSampleCount))
-            __getFloat4Array(&values[0], maxCount: timeSampleCount)
-            return values
+            return [SIMD4<Float>](unsafeUninitializedCount: timeSampleCount) { ptr in
+                __getFloat4Array(ptr, maxCount: timeSampleCount)
+            }
         }
     }
 
     @nonobjc public var double4Array: [SIMD4<Double>] {
         get {
-            var values = [SIMD4<Double>](repeating: SIMD4<Double>(), count: Int(timeSampleCount))
-            __getDouble4Array(&values[0], maxCount: timeSampleCount)
-            return values
+            return [SIMD4<Double>](unsafeUninitializedCount: timeSampleCount) { ptr in
+                __getDouble4Array(ptr, maxCount: timeSampleCount)
+            }
         }
     }
 }

    
    @nonobjc public var floatArray: [Float] {
        get {
            var values = [Float](repeating: 0, count: Int(timeSampleCount))
            __getFloatArray(&values[0], maxCount: timeSampleCount)
            return values
        }
    }

    @nonobjc public var doubleArray: [Double] {
        get {
            var values = [Double](repeating: 0, count: Int(timeSampleCount))
            __getDoubleArray(&values[0], maxCount: timeSampleCount)
            return values
        }
    }
}

    
    @nonobjc public var float3Array: [SIMD3<Float>] {
        get {
            return [SIMD3<Float>](unsafeUninitializedCount: timeSampleCount) { ptr in
                __getFloat3Array(ptr, maxCount: timeSampleCount)
            }
        }
    }

    @nonobjc public var double3Array: [SIMD3<Double>] {
        get {
            return [SIMD3<Double>](unsafeUninitializedCount: timeSampleCount) { ptr in
                __getDouble3Array(ptr, maxCount: timeSampleCount)
            }
        }
    }
}
