<commit_before>/*
Copyright (c) 2006-2008 Advanced Micro Devices, Inc. All Rights Reserved.
This software is subject to the Apache v2.0 License.
*/

#include "Arithmetic/Def/AddDef.h"
#include "fwImage.h"

using namespace OPT_LEVEL;

FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_8u_C1IRSfs )(  A8U v,    A8U *sd, int sdStep, ASZ roi, int scale)
{
	if(scale == 0 && v == 0)
	{
		return fwStsNoErr;
	}
	else
	{
		if(scale == 0)
		{
			DEF_ADD::ADDC::C1::AddC_8u<0> data(scale, v);
			return OPT_LEVEL::fe<DEF_ADD::ADDC::C1::AddC_8u<0> >(data, sd, sdStep, sd, sdStep, roi);
		}																							
		else if(scale < 0)																			
		{																							
			DEF_ADD::ADDC::C1::AddC_8u<-1> data(scale, v);
			return OPT_LEVEL::fe<DEF_ADD::ADDC::C1::AddC_8u<-1> >(data, sd, sdStep, sd, sdStep, roi);
		}																							
		else																						
		{																							
			DEF_ADD::ADDC::C1::AddC_8u<1> data(scale, v);
			return OPT_LEVEL::fe<DEF_ADD::ADDC::C1::AddC_8u<1> >(data, sd, sdStep, sd, sdStep, roi);
		}
	}
}

FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_8u_C3IRSfs )( cA8U v[3], A8U *sd, int sdStep, ASZ roi, int scale)
{
	if(scale == 0)
	{
		DEF_ADD::ADDC::C3::AddC_8u_scale_zero<0> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C3::AddC_8u_scale_zero<0> >(data, sd, sdStep, sd, sdStep, roi);
	}																											  
	else if(scale < 0)																							  
	{																											  
		DEF_ADD::ADDC::C3::AddC_8u<-1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C3::AddC_8u<-1> >(data, sd, sdStep, sd, sdStep, roi);
	}																											  
	else																										  
	{																											  
		DEF_ADD::ADDC::C3::AddC_8u<1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C3::AddC_8u<1> >(data, sd, sdStep, sd, sdStep, roi);
	}
}
FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_8u_AC4IRSfs)( cA8U v[3], A8U *sd, int sdStep, ASZ roi, int scale)
{
	if(scale == 0)
	{
		DEF_ADD::ADDC::AC4::AddC_8u<0> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::AC4::AddC_8u<0> >(data, sd, sdStep, sd, sdStep, roi);
	}																											  
	else if(scale < 0)																							  
	{																											  
		DEF_ADD::ADDC::AC4::AddC_8u<-1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::AC4::AddC_8u<-1> >(data, sd, sdStep, sd, sdStep, roi);
	}																											  
	else																										  
	{																											  
		DEF_ADD::ADDC::AC4::AddC_8u<1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::AC4::AddC_8u<1> >(data, sd, sdStep, sd, sdStep, roi);
	}
}
FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_8u_C4IRSfs )( cA8U v[4], A8U *sd, int sdStep, ASZ roi, int scale)
{
	if(scale == 0)
	{
		DEF_ADD::ADDC::C4::AddC_8u<0> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C4::AddC_8u<0> >(data, sd, sdStep, sd, sdStep, roi);
	}																											  
	else if(scale < 0)																							  
	{																											  
		DEF_ADD::ADDC::C4::AddC_8u<-1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C4::AddC_8u<-1> >(data, sd, sdStep, sd, sdStep, roi);
	}																											  
	else																										  
	{																											  
		DEF_ADD::ADDC::C4::AddC_8u<1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C4::AddC_8u<1> >(data, sd, sdStep, sd, sdStep, roi);
	}
}

FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_8u_C1RSfs  )( cA8U *s, int sStep,  A8U v,    A8U *d, int dStep, ASZ roi, int scale)
{ 
	if(scale == 0 && v == 0)
	{
		return fwiCopy_8u_C1R(s, sStep, d, dStep, roi);
	}
	else
	{
		if(scale == 0)
		{
			DEF_ADD::ADDC::C1::AddC_8u<0> data(scale, v);
			return OPT_LEVEL::fe<DEF_ADD::ADDC::C1::AddC_8u<0> >(data, s, sStep, d, dStep, roi);
		}																							
		else if(scale < 0)																			
		{																							
			DEF_ADD::ADDC::C1::AddC_8u<-1> data(scale, v);
			return OPT_LEVEL::fe<DEF_ADD::ADDC::C1::AddC_8u<-1> >(data, s, sStep, d, dStep, roi);
		}																							
		else																						
		{																							
			DEF_ADD::ADDC::C1::AddC_8u<1> data(scale, v);
			return OPT_LEVEL::fe<DEF_ADD::ADDC::C1::AddC_8u<1> >(data, s, sStep, d, dStep, roi);
		}
	}
}

FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_8u_C3RSfs  )( cA8U *s, int sStep, cA8U v[3], A8U *d, int dStep, ASZ roi, int scale)
{ 
	if(scale == 0)
	{
		DEF_ADD::ADDC::C3::AddC_8u_scale_zero<0> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C3::AddC_8u_scale_zero<0> >(data, s, sStep, d, dStep, roi);
	}																							
	else if(scale < 0)																			
	{																							
		DEF_ADD::ADDC::C3::AddC_8u<-1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C3::AddC_8u<-1> >(data, s, sStep, d, dStep, roi);
	}																							
	else																						
	{																							
		DEF_ADD::ADDC::C3::AddC_8u<1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C3::AddC_8u<1> >(data, s, sStep, d, dStep, roi);
	}
}
FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_8u_AC4RSfs )( cA8U *s, int sStep, cA8U v[3], A8U *d, int dStep, ASZ roi, int scale)
{ 
	if(scale == 0)
	{
		DEF_ADD::ADDC::AC4::AddC_8u<0> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::AC4::AddC_8u<0> >(data, s, sStep, d, dStep, roi);
	}																							
	else if(scale < 0)																			
	{																							
		DEF_ADD::ADDC::AC4::AddC_8u<-1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::AC4::AddC_8u<-1> >(data, s, sStep, d, dStep, roi);
	}																							
	else																						
	{																							
		DEF_ADD::ADDC::AC4::AddC_8u<1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::AC4::AddC_8u<1> >(data, s, sStep, d, dStep, roi);
	}
}

FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_8u_C4RSfs  )( cA8U *s, int sStep, cA8U v[4], A8U *d, int dStep, ASZ roi, int scale)
{ 
	if(scale == 0)
	{
		DEF_ADD::ADDC::C4::AddC_8u<0> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C4::AddC_8u<0> >(data, s, sStep, d, dStep, roi);
	}																							
	else if(scale < 0)																			
	{																							
		DEF_ADD::ADDC::C4::AddC_8u<-1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C4::AddC_8u<-1> >(data, s, sStep, d, dStep, roi);
	}																							
	else																						
	{																							
		DEF_ADD::ADDC::C4::AddC_8u<1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C4::AddC_8u<1> >(data, s, sStep, d, dStep, roi);
	}
}


FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_16s_C1IRSfs )(  A16S v,    A16S *sd, int sdStep, ASZ roi, int scale)
{
	if(scale == 0 && v == 0)
	{
		return fwStsNoErr;
	}
	else
	{
		if(scale == 0)
		{
			DEF_ADD::ADDC::C1::AddC_16s<0> data(scale, v);
			return OPT_LEVEL::fe<DEF_ADD::ADDC::C1::AddC_16s<0> >(data, sd, sdStep, sd, sdStep, roi);
		}																							
		else if(scale < 0)																			
		{																							
			DEF_ADD::ADDC::C1::AddC_16s<-1> data(scale, v);
			return OPT_LEVEL::fe<DEF_ADD::ADDC::C1::AddC_16s<-1> >(data, sd, sdStep, sd, sdStep, roi);
		}																							
		else																						
		{																							
			DEF_ADD::ADDC::C1::AddC_16s<1> data(scale, v);
			return OPT_LEVEL::fe<DEF_ADD::ADDC::C1::AddC_16s<1> >(data, sd, sdStep, sd, sdStep, roi);
		}
	}
}

FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_16s_C3IRSfs )( cA16S v[3], A16S *sd, int sdStep, ASZ roi, int scale)
{
	if(scale == 0)
	{
		DEF_ADD::ADDC::C3::AddC_16s<0> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C3::AddC_16s<0> >(data, sd, sdStep, sd, sdStep, roi);
	}																											  
	else if(scale < 0)																							  
	{																											  
		DEF_ADD::ADDC::C3::AddC_16s<-1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C3::AddC_16s<-1> >(data, sd, sdStep, sd, sdStep, roi);
	}																											  
	else																										  
	{																											  
		DEF_ADD::ADDC::C3::AddC_16s<1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C3::AddC_16s<1> >(data, sd, sdStep, sd, sdStep, roi);
	}
}
FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_16s_AC4IRSfs)( cA16S v[3], A16S *sd, int sdStep, ASZ roi, int scale)<commit_msg>Summary: Optimized Add functions<commit_after>/*
Copyright (c) 2006-2008 Advanced Micro Devices, Inc. All Rights Reserved.
This software is subject to the Apache v2.0 License.
*/

#include "Arithmetic/Def/AddDef.h"
#include "fwImage.h"

using namespace OPT_LEVEL;

FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_8u_C1IRSfs )(  A8U v,    A8U *sd, int sdStep, ASZ roi, int scale)
{
	if(scale == 0 && v == 0)
	{
		return fwStsNoErr;
	}
	else
	{
		if(scale == 0)
		{
			DEF_ADD::ADDC::C1::AddC_8u<0> data(scale, v);
			return OPT_LEVEL::fe<DEF_ADD::ADDC::C1::AddC_8u<0> >(data, sd, sdStep, sd, sdStep, roi);
		}																							
		else if(scale < 0)																			
		{																							
			DEF_ADD::ADDC::C1::AddC_8u<-1> data(scale, v);
			return OPT_LEVEL::fe<DEF_ADD::ADDC::C1::AddC_8u<-1> >(data, sd, sdStep, sd, sdStep, roi);
		}																							
		else																						
		{																							
			DEF_ADD::ADDC::C1::AddC_8u<1> data(scale, v);
			return OPT_LEVEL::fe<DEF_ADD::ADDC::C1::AddC_8u<1> >(data, sd, sdStep, sd, sdStep, roi);
		}
	}
}

FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_8u_C3IRSfs )( cA8U v[3], A8U *sd, int sdStep, ASZ roi, int scale)
{
	if(scale == 0)
	{
		DEF_ADD::ADDC::C3::AddC_8u_scale_zero<0> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C3::AddC_8u_scale_zero<0> >(data, sd, sdStep, sd, sdStep, roi);
	}																											  
	else if(scale < 0)																							  
	{																											  
		DEF_ADD::ADDC::C3::AddC_8u<-1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C3::AddC_8u<-1> >(data, sd, sdStep, sd, sdStep, roi);
	}																											  
	else																										  
	{																											  
		DEF_ADD::ADDC::C3::AddC_8u<1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C3::AddC_8u<1> >(data, sd, sdStep, sd, sdStep, roi);
	}
}
FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_8u_AC4IRSfs)( cA8U v[3], A8U *sd, int sdStep, ASZ roi, int scale)
{
	if(scale == 0)
	{
		DEF_ADD::ADDC::AC4::AddC_8u<0> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::AC4::AddC_8u<0> >(data, sd, sdStep, sd, sdStep, roi);
	}																											  
	else if(scale < 0)																							  
	{																											  
		DEF_ADD::ADDC::AC4::AddC_8u<-1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::AC4::AddC_8u<-1> >(data, sd, sdStep, sd, sdStep, roi);
	}																											  
	else																										  
	{																											  
		DEF_ADD::ADDC::AC4::AddC_8u<1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::AC4::AddC_8u<1> >(data, sd, sdStep, sd, sdStep, roi);
	}
}
FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_8u_C4IRSfs )( cA8U v[4], A8U *sd, int sdStep, ASZ roi, int scale)
{
	if(scale == 0)
	{
		DEF_ADD::ADDC::C4::AddC_8u<0> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C4::AddC_8u<0> >(data, sd, sdStep, sd, sdStep, roi);
	}																											  
	else if(scale < 0)																							  
	{																											  
		DEF_ADD::ADDC::C4::AddC_8u<-1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C4::AddC_8u<-1> >(data, sd, sdStep, sd, sdStep, roi);
	}																											  
	else																										  
	{																											  
		DEF_ADD::ADDC::C4::AddC_8u<1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C4::AddC_8u<1> >(data, sd, sdStep, sd, sdStep, roi);
	}
}

FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_8u_C1RSfs  )( cA8U *s, int sStep,  A8U v,    A8U *d, int dStep, ASZ roi, int scale)
{ 
	if(scale == 0 && v == 0)
	{
		return fwiCopy_8u_C1R(s, sStep, d, dStep, roi);
	}
	else
	{
		if(scale == 0)
		{
			DEF_ADD::ADDC::C1::AddC_8u<0> data(scale, v);
			return OPT_LEVEL::fe<DEF_ADD::ADDC::C1::AddC_8u<0> >(data, s, sStep, d, dStep, roi);
		}																							
		else if(scale < 0)																			
		{																							
			DEF_ADD::ADDC::C1::AddC_8u<-1> data(scale, v);
			return OPT_LEVEL::fe<DEF_ADD::ADDC::C1::AddC_8u<-1> >(data, s, sStep, d, dStep, roi);
		}																							
		else																						
		{																							
			DEF_ADD::ADDC::C1::AddC_8u<1> data(scale, v);
			return OPT_LEVEL::fe<DEF_ADD::ADDC::C1::AddC_8u<1> >(data, s, sStep, d, dStep, roi);
		}
	}
}

FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_8u_C3RSfs  )( cA8U *s, int sStep, cA8U v[3], A8U *d, int dStep, ASZ roi, int scale)
{ 
	if(scale == 0)
	{
		DEF_ADD::ADDC::C3::AddC_8u_scale_zero<0> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C3::AddC_8u_scale_zero<0> >(data, s, sStep, d, dStep, roi);
	}																							
	else if(scale < 0)																			
	{																							
		DEF_ADD::ADDC::C3::AddC_8u<-1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C3::AddC_8u<-1> >(data, s, sStep, d, dStep, roi);
	}																							
	else																						
	{																							
		DEF_ADD::ADDC::C3::AddC_8u<1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C3::AddC_8u<1> >(data, s, sStep, d, dStep, roi);
	}
}
FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_8u_AC4RSfs )( cA8U *s, int sStep, cA8U v[3], A8U *d, int dStep, ASZ roi, int scale)
{ 
	if(scale == 0)
	{
		DEF_ADD::ADDC::AC4::AddC_8u<0> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::AC4::AddC_8u<0> >(data, s, sStep, d, dStep, roi);
	}																							
	else if(scale < 0)																			
	{																							
		DEF_ADD::ADDC::AC4::AddC_8u<-1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::AC4::AddC_8u<-1> >(data, s, sStep, d, dStep, roi);
	}																							
	else																						
	{																							
		DEF_ADD::ADDC::AC4::AddC_8u<1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::AC4::AddC_8u<1> >(data, s, sStep, d, dStep, roi);
	}
}

FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_8u_C4RSfs  )( cA8U *s, int sStep, cA8U v[4], A8U *d, int dStep, ASZ roi, int scale)
{ 
	if(scale == 0)
	{
		DEF_ADD::ADDC::C4::AddC_8u<0> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C4::AddC_8u<0> >(data, s, sStep, d, dStep, roi);
	}																							
	else if(scale < 0)																			
	{																							
		DEF_ADD::ADDC::C4::AddC_8u<-1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C4::AddC_8u<-1> >(data, s, sStep, d, dStep, roi);
	}																							
	else																						
	{																							
		DEF_ADD::ADDC::C4::AddC_8u<1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C4::AddC_8u<1> >(data, s, sStep, d, dStep, roi);
	}
}


FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_16s_C1IRSfs )(  A16S v,    A16S *sd, int sdStep, ASZ roi, int scale)
{
	if(scale == 0 && v == 0)
	{
		return fwStsNoErr;
	}
	else
	{
		if(scale == 0)
		{
			DEF_ADD::ADDC::C1::AddC_16s<0> data(scale, v);
			return OPT_LEVEL::fe<DEF_ADD::ADDC::C1::AddC_16s<0> >(data, sd, sdStep, sd, sdStep, roi);
		}																							
		else if(scale < 0)																			
		{																							
			DEF_ADD::ADDC::C1::AddC_16s<-1> data(scale, v);
			return OPT_LEVEL::fe<DEF_ADD::ADDC::C1::AddC_16s<-1> >(data, sd, sdStep, sd, sdStep, roi);
		}		
        else if(scale == 1)
        {
			DEF_ADD::ADDC::C1::AddC_16s<2> data(scale, v);
			return OPT_LEVEL::fe<DEF_ADD::ADDC::C1::AddC_16s<2> >(data, sd, sdStep, sd, sdStep, roi);
        }
		else																						
		{																							
			DEF_ADD::ADDC::C1::AddC_16s<1> data(scale, v);
			return OPT_LEVEL::fe<DEF_ADD::ADDC::C1::AddC_16s<1> >(data, sd, sdStep, sd, sdStep, roi);
		}
	}
}

FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_16s_C3IRSfs )( cA16S v[3], A16S *sd, int sdStep, ASZ roi, int scale)
{
	if(scale == 0)
	{
		DEF_ADD::ADDC::C3::AddC_16s<0> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C3::AddC_16s<0> >(data, sd, sdStep, sd, sdStep, roi);
	}																											  
	else if(scale < 0)																							  
	{																											  
		DEF_ADD::ADDC::C3::AddC_16s<-1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C3::AddC_16s<-1> >(data, sd, sdStep, sd, sdStep, roi);
	}																											  
	else																										  
	{																											  
		DEF_ADD::ADDC::C3::AddC_16s<1> data(scale, v);
		return OPT_LEVEL::fe<DEF_ADD::ADDC::C3::AddC_16s<1> >(data, sd, sdStep, sd, sdStep, roi);
	}
}
FwStatus PREFIX_OPT(OPT_PREFIX, fwiAddC_16s_AC4IRSfs)( cA16S v[3], A16S *sd, int sdStep, ASZ roi, int scale)
{'fraction_non_alphanumeric': 0.1658628899334595, 'fraction_numerical': 0.03656675416641231, 'mean_word_length': 2.200859710824541, 'pattern_counts': {'":': 0, '<': 206, '<?xml version=': 0, '>': 186, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5200109', 'n_tokens_mistral': 7554, 'n_tokens_neox': 7017, 'n_words': 1218}