     
     @nonobjc public var float3Array: [SIMD3<Float>] {
         get {
-            var values = [SIMD3<Float>](repeating: SIMD3<Float>(), count: Int(timeSampleCount))
-            __getFloat3Array(&values[0], maxCount: timeSampleCount)
-            return values
+            return [SIMD3<Float>](unsafeUninitializedCount: timeSampleCount) { ptr in
+                __getFloat3Array(ptr, maxCount: timeSampleCount)
+            }
         }
     }
 
     @nonobjc public var double3Array: [SIMD3<Double>] {
         get {
-            var values = [SIMD3<Double>](repeating: SIMD3<Double>(), count: Int(timeSampleCount))
-            __getDouble3Array(&values[0], maxCount: timeSampleCount)
-            return values
+            return [SIMD3<Double>](unsafeUninitializedCount: timeSampleCount) { ptr in
+                __getDouble3Array(ptr, maxCount: timeSampleCount)
+            }
         }
     }
 }

    }
    
    @nonobjc public func floatArray(atTime time: TimeInterval) -> [Float] {
        var values = [Float](repeating: 0, count: Int(elementCount))
        __getFloat(&values[0], maxCount: elementCount, atTime: time)
        return values
    }

    @nonobjc public func doubleArray(atTime time: TimeInterval) -> [Double] {
        var values = [Double](repeating: 0, count: Int(elementCount))
        __getDouble(&values[0], maxCount: elementCount, atTime: time)
        return values
    }

    @nonobjc public func reset(floatArray array:[Float], atTimes times: [TimeInterval]){

    }
    
    @nonobjc public func float3Array(atTime time: TimeInterval) -> [SIMD3<Float>] {
        return [SIMD3<Float>](unsafeUninitializedCount: elementCount) { ptr in
            __getFloat3Array(ptr, maxCount: elementCount, atTime: time)
        }
    }
    
    @nonobjc public func double3Array(atTime time: TimeInterval) -> [SIMD3<Double>] {
        return [SIMD3<Double>](unsafeUninitializedCount: elementCount) { ptr in
            __getDouble3Array(ptr, maxCount: elementCount, atTime: time)
        }
    }
    
    @nonobjc public func reset(float3Array array:[SIMD3<Float>], atTimes times: [TimeInterval]){
