@@ -13,25 +13,27 @@ function Enzyme.EnzymeRules.forward(config::FwdConfig,
1313 y = _y. val
1414 ret = func. val (x, y)
1515 T = typeof (ret)
16- if ! (_x isa Const)
17- dxval = _x. dval * y * (fastpower (x,y - 1 ))
18- else
16+ if ! (_x isa Const)
17+ dxval = _x. dval * y * (fastpower (x, y - 1 ))
18+ else
1919 dxval = make_zero (_x. val)
2020 end
21- if ! (_y isa Const)
22- dyval = x isa Real && x<= 0 ? Base. oftype (float (x), NaN ) : _y. dval* (fastpower (x,y))* log (x)
23- else
21+ if ! (_y isa Const)
22+ dyval = x isa Real && x<= 0 ? Base. oftype (float (x), NaN ) :
23+ _y. dval* (fastpower (x, y))* log (x)
24+ else
2425 dyval = make_zero (_y. val)
25- end
26+ end
2627 if RT <: DuplicatedNoNeed
27- return convert (T,dxval + dyval)
28+ return convert (T, dxval + dyval)
2829 else
2930 return Duplicated (ret, convert (T, dxval + dyval))
3031 end
3132end
3233
33- function EnzymeRules. augmented_primal (config:: Enzyme.EnzymeRules.RevConfigWidth{1} ,
34- func:: Const{typeof(fastpower)} , :: Union{Type{<:Active}, Type{<:Const}} , x:: Union{Const,Active} , y:: Union{Const,Active} )
34+ function EnzymeRules. augmented_primal (config:: Enzyme.EnzymeRules.RevConfigWidth{1} ,
35+ func:: Const{typeof(fastpower)} , :: Union{Type{<:Active}, Type{<:Const}} ,
36+ x:: Union{Const, Active} , y:: Union{Const, Active} )
3537 if EnzymeRules. needs_primal (config)
3638 primal = func. val (x. val, y. val)
3739 else
@@ -40,12 +42,15 @@ function EnzymeRules.augmented_primal(config::Enzyme.EnzymeRules.RevConfigWidth{
4042 return EnzymeRules. AugmentedReturn (primal, nothing , nothing )
4143end
4244
43- function EnzymeRules. reverse (config:: Enzyme.EnzymeRules.RevConfigWidth{1} ,
44- func:: Const{typeof(fastpower)} , dret, tape, _x:: Union{Const,Active} , _y:: Union{Const,Active} )
45+ function EnzymeRules. reverse (config:: Enzyme.EnzymeRules.RevConfigWidth{1} ,
46+ func:: Const{typeof(fastpower)} , dret, tape, _x:: Union{Const, Active} , _y:: Union {
47+ Const, Active})
4548 x = _x. val
4649 y = _y. val
47- dxval = _x isa Const ? nothing : dret. val * y * (fastpower (x,y - 1 ))
48- dyval = _y isa Const ? nothing : (x isa Real && x<= 0 ? Base. oftype (float (x), NaN ) : dret. val * (fastpower (x,y))* log (x))
50+ dxval = _x isa Const ? nothing : dret. val * y * (fastpower (x, y - 1 ))
51+ dyval = _y isa Const ? nothing :
52+ (x isa Real && x<= 0 ? Base. oftype (float (x), NaN ) :
53+ dret. val * (fastpower (x, y)) * log (x))
4954 return (dxval, dyval)
5055end
5156
0 commit comments