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