17f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* 27f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 37f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * 47f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 57f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * you may not use this file except in compliance with the License. 67f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * You may obtain a copy of the License at 77f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * 87f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 97f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * 107f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 117f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 127f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * See the License for the specific language governing permissions and 147f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * limitations under the License. 157f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 167f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 177f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- includes ----------------------------------------------------------- */ 187f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 197f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#include "b_TensorEm/Functions.h" 207f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#include "b_BasicEm/Math.h" 217f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 227f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- related objects --------------------------------------------------- */ 237f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 247f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- typedefs ----------------------------------------------------------- */ 257f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 267f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- constants ---------------------------------------------------------- */ 277f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 287f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 297f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 307f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ========================================================================= */ 317f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* */ 327f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- \ghd{ external functions } ----------------------------------------- */ 337f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* */ 347f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ========================================================================= */ 357f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 367f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 377f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 387f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectuint32 bts_absIntLog2( int32 vA ) 397f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{ 407f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project return bbs_intLog2( bbs_abs( vA ) ); 417f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} 427f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 437f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 447f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 457f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectuint32 bts_maxAbsIntLog2Of2( int32 v1A, int32 v2A ) 467f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{ 477f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project uint32 maxL = bbs_max( ( uint32 )bbs_abs( v1A ), ( uint32 )bbs_abs( v2A ) ); 487f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project return bbs_intLog2( maxL ); 497f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} 507f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 517f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 527f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 537f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectuint32 bts_maxAbsIntLog2Of3( int32 v1A, int32 v2A, int32 v3A ) 547f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{ 557f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project uint32 maxL = bbs_abs( v1A ); 567f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project maxL = bbs_max( maxL, ( uint32 )bbs_abs( v2A ) ); 577f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project maxL = bbs_max( maxL, ( uint32 )bbs_abs( v3A ) ); 587f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project return bbs_intLog2( maxL ); 597f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} 607f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 617f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 627f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 637f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectuint32 bts_maxAbsIntLog2Of4( int32 v1A, int32 v2A, int32 v3A, int32 v4A ) 647f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{ 657f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project uint32 maxL = bbs_abs( v1A ); 667f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project maxL = bbs_max( maxL, ( uint32 )bbs_abs( v2A ) ); 677f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project maxL = bbs_max( maxL, ( uint32 )bbs_abs( v3A ) ); 687f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project maxL = bbs_max( maxL, ( uint32 )bbs_abs( v4A ) ); 697f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project return bbs_intLog2( maxL ); 707f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} 717f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 727f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 73