Source File
bitmap_ops.go
Belonging Package
github.com/apache/arrow-go/v18/arrow/bitutil
// Licensed to the Apache Software Foundation (ASF) under one// or more contributor license agreements. See the NOTICE file// distributed with this work for additional information// regarding copyright ownership. The ASF licenses this file// to you under the Apache License, Version 2.0 (the// "License"); you may not use this file except in compliance// with the License. You may obtain a copy of the License at//// http://www.apache.org/licenses/LICENSE-2.0//// Unless required by applicable law or agreed to in writing, software// distributed under the License is distributed on an "AS IS" BASIS,// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.// See the License for the specific language governing permissions and// limitations under the License.package bitutilfunc alignedBitAndGo(, , []byte) {var (= len()= 0)if > uint64SizeBytes {// case where we have enough bytes to operate on words:= bytesToUint64([:]):= bytesToUint64([:]):= bytesToUint64([:])for := range {[] = [] & []}+= len() * uint64SizeBytes}// grab any remaining bytes that were fewer than a wordfor ; < ; ++ {[] = [] & []}}func alignedBitAndNotGo(, , []byte) {var (= len()= 0)if > uint64SizeBytes {// case where we have enough bytes to operate on words:= bytesToUint64([:]):= bytesToUint64([:]):= bytesToUint64([:])for := range {[] = [] &^ []}+= len() * uint64SizeBytes}// grab any remaining bytes that were fewer than a wordfor ; < ; ++ {[] = [] &^ []}}func alignedBitOrGo(, , []byte) {var (= len()= 0)if > uint64SizeBytes {// case where we have enough bytes to operate on words:= bytesToUint64([:]):= bytesToUint64([:]):= bytesToUint64([:])for := range {[] = [] | []}+= len() * uint64SizeBytes}// grab any remaining bytes that were fewer than a wordfor ; < ; ++ {[] = [] | []}}func alignedBitXorGo(, , []byte) {var (= len()= 0)if > uint64SizeBytes {// case where we have enough bytes to operate on words:= bytesToUint64([:]):= bytesToUint64([:]):= bytesToUint64([:])for := range {[] = [] ^ []}+= len() * uint64SizeBytes}// grab any remaining bytes that were fewer than a wordfor ; < ; ++ {[] = [] ^ []}}
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |