github.com/apache/arrow/go/v16@v16.1.0/arrow/math/float64_avx2_amd64.go (about)

     1  // Code generated by type_simd_amd64.go.tmpl. DO NOT EDIT.
     2  
     3  // Licensed to the Apache Software Foundation (ASF) under one
     4  // or more contributor license agreements.  See the NOTICE file
     5  // distributed with this work for additional information
     6  // regarding copyright ownership.  The ASF licenses this file
     7  // to you under the Apache License, Version 2.0 (the
     8  // "License"); you may not use this file except in compliance
     9  // with the License.  You may obtain a copy of the License at
    10  //
    11  // http://www.apache.org/licenses/LICENSE-2.0
    12  //
    13  // Unless required by applicable law or agreed to in writing, software
    14  // distributed under the License is distributed on an "AS IS" BASIS,
    15  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  // See the License for the specific language governing permissions and
    17  // limitations under the License.
    18  
    19  //go:build !noasm
    20  // +build !noasm
    21  
    22  package math
    23  
    24  import (
    25  	"unsafe"
    26  
    27  	"github.com/apache/arrow/go/v16/arrow/array"
    28  )
    29  
    30  //go:noescape
    31  func _sum_float64_avx2(buf unsafe.Pointer, len uintptr, res unsafe.Pointer)
    32  
    33  func sum_float64_avx2(a *array.Float64) float64 {
    34  	buf := a.Float64Values()
    35  	var (
    36  		p1  = unsafe.Pointer(&buf[0])
    37  		p2  = uintptr(len(buf))
    38  		res float64
    39  	)
    40  	_sum_float64_avx2(p1, p2, unsafe.Pointer(&res))
    41  	return res
    42  }