]> git.proxmox.com Git - ceph.git/blame - ceph/src/arrow/go/arrow/math/type.go.tmpl
import quincy 17.2.0
[ceph.git] / ceph / src / arrow / go / arrow / math / type.go.tmpl
CommitLineData
1d09f67e
TL
1// Licensed to the Apache Software Foundation (ASF) under one
2// or more contributor license agreements. See the NOTICE file
3// distributed with this work for additional information
4// regarding copyright ownership. The ASF licenses this file
5// to you under the Apache License, Version 2.0 (the
6// "License"); you may not use this file except in compliance
7// with the License. You may obtain a copy of the License at
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing, software
12// distributed under the License is distributed on an "AS IS" BASIS,
13// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14// See the License for the specific language governing permissions and
15// limitations under the License.
16
17package math
18
19import (
20 "github.com/apache/arrow/go/v6/arrow/array"
21)
22
23{{$def := .D}}
24{{with .In}}
25type {{.Name}}Funcs struct {
26 sum func(a *array.{{.Name}}) {{.Type}}
27}
28
29var (
30 {{.Name}} {{.Name}}Funcs
31)
32
33// Sum returns the summation of all elements in a.
34func (f {{.Name}}Funcs) Sum(a *array.{{.Name}}) {{.Type}} {
35 if a.Len() == 0 {
36 return {{.Type}}(0)
37 }
38 return f.sum(a)
39}
40
41func sum_{{.Type}}_go(a *array.{{.Name}}) {{.Type}} {
42 acc := {{.Type}}(0)
43 for _, v := range a.{{.Name}}Values() {
44 acc += v
45 }
46 return acc
47}
48{{end}}