import PyCA.Core as ca grid = ca.GridInfo(ca.Vec3Di(10, 10, 10)) mType = ca.MEM_DEVICE Im0 = ca.Image3D(grid, mType) Im1 = ca.Image3D(grid, mType) Im2 = ca.Image3D(grid, mType) Im3 = ca.Image3D(grid, mType) Imout = ca.Image3D(grid, mType) ca.SetMem(Im0, 1) ca.SetMem(Im1, 2) ca.SetMem(Im2, 3) ca.SetMem(Im3, 4) c0 = 1 #just a constant c1 = 2 c2 = 3 ca.Add(Imout, Im0, Im1) #Imout = Im0 + Im1 ca.Sub(Imout, Im0, Im1) #Imout = Im0 - Im1 ca.Mul(Imout, Im0, Im1) #Imout = Im0 * Im1 ca.Div(Imout, Im0, Im1) #Imout = Im0 / Im1 ca.AddC(Imout, Im0, c0) #Imout = Im0 + c0 ca.SubC(Imout, Im0, c0) #Imout = Im0 - c0 ca.MulC(Imout, Im0, c0) #Imout = Im0 * c0 ca.DivC(Imout, Im0, c0) #Imout = Im0 / c0 ca.SetMem(Imout, 1.0) ca.Add_I(Imout, Im0) #Imout += Im0 ca.Sub_I(Imout, Im0) #Imout -= Im0 ca.Mul_I(Imout, Im0) #Imout *= Im0 ca.Div_I(Imout, Im0) #Imout /= Im0 ca.AddC_I(Imout, c0) #Imout += c0 ca.SubC_I(Imout, c0) #Imout -= c0 ca.MulC_I(Imout, c0) #Imout *= c0 ca.DivC_I(Imout, c0) #Imout /= c0 Imout += Im0 Imout -= Im0 Imout *= Im0 Imout /= Im0 Imout += c0 Imout -= c0 Imout *= c0 Imout /= c0 ca.AddDiv(Imout, Im0, Im1, Im2) # Imout = (Im0+Im1)/Im2 ca.AddMul(Imout, Im0, Im1, Im2) # Imout = (Im0+Im1)*Im2 ca.AddMulC(Imout, Im0, Im1, c0) # Imout = (Im0+Im1)*c0 ca.AddCMulC(Imout, Im0, c0, c1) # Imout = (Im0+c0)*c1 ca.AddCMulCAddC(Imout, Im0, c0, c1, c2) # Imout = (Im0+c0)*c1 + c2 ca.Add_AddMulC(Imout, Im0, Im1, Im2, c0) # Imout = Im0 + (Im1+Im2)*c0 ca.Add_Mul(Imout, Im0, Im1, Im2) # Imout = (Im0+Im1)*Im2 ca.Add_MulC(Imout, Im0, Im1, c0) # Imout = Im0 + Im1*c0 ca.Add_MulMulC(Imout, Im0, Im1, Im2, c0) # Imout = Im0 + Im1*Im2*c0 ca.Add_SubMulC(Imout, Im0, Im1, Im2, c0) # Imout = Im0 + (Im1-Im2)*c0 ca.MulAdd(Imout, Im0, Im1, Im2) # Imout = Im0*Im1 + Im2 ca.MulCAdd(Imout, Im0, c0, Im1) # Imout = Im0*c0 + Im1 ca.MulCAddC(Imout, Im0, c0, c1) # Imout = Im0*c0 + c1 ca.MulCSub(Imout, Im0, c0, Im1) # Imout = Im0*c0 - Im1 ca.MulC_Add_MulC(Imout, Im0, c0, Im1, c1) # Imout = Im0*c0 + Im1+c1 ca.MulMul(Imout, Im0, Im1, Im2) # Imout = Im0*Im1*Im2 ca.MulMulC(Imout, Im0, Im1, c0) # Imout = Im0*Im1*c0 ca.MulSub(Imout, Im0, Im1, Im2) # Imout = Im0*Im1 - Im2 ca.SubDiv(Imout, Im0, Im1, Im2) # Imout = (Im0-Im1)/Im2 ca.SubMul(Imout, Im0, Im1, Im2) # Imout = (Im0-Im1)*Im2 ca.SubMulC(Imout, Im0, Im1, c0) # Imout = (Im0-Im1)*c0 ca.Sub_AddMulC(Imout, Im0, Im1, Im2, c0) # Imout = Im0 - (Im1+Im2)*c0 ca.Sub_Mul(Imout, Im0, Im1, Im2) # Imout = Im0 - Im1*Im2 ca.Sub_MulMulC(Imout, Im0, Im1, Im2, c0) # Imout = Im0 - Im1*Im2*c0 ca.Sub_SubMulC(Imout, Im0, Im1, Im2, c0) # Imout = Im0 - (Im1-Im2)*c0 ca.Sin(Imout, Im0) ca.Cos(Imout, Im0) ca.Tan(Imout, Im0) ca.Cot(Imout, Im0) ca.Sec(Imout, Im0) ca.Csc(Imout, Im0) ca.Asin(Imout, Im0) ca.Acos(Imout, Im0) ca.Atan(Imout, Im0) ca.Atan2(Imout, Im0, Im1) ca.Atan2C(Imout, Im0, c0) ca.EQ(Imout, Im0, Im1) # Imout = (Im0 == Im1) ca.EQC(Imout, Im0, c0) # Imout = (Im0 == c0) ca.NEQ(Imout, Im0, Im1) # Imout = (Im0 != Im1) ca.NEQC(Imout, Im0, c0) # Imout = (Im0 != c0) ca.LT(Imout, Im0, Im1) # Imout = (Im0 < Im1) ca.LTC(Imout, Im0, c0) # Imout = (Im0 < c0) ca.LTE(Imout, Im0, Im1) # Imout = (Im0 <= Im1) ca.LTEC(Imout, Im0, c0) # Imout = (Im0 <= c0) ca.GT(Imout, Im0, Im1) # Imout = (Im0 > Im1) ca.GTC(Imout, Im0, c0) # Imout = (Im0 > c0) ca.GTE(Imout, Im0, Im1) # Imout = (Im0 >= Im1) ca.GTEC(Imout, Im0, c0) # Imout = (Im0 >= c0) ca.Abs(Imout, Im0) # Imout = |Im0| ca.AbsDiff(Imout, Im0, Im1) # Imout = |Im0 - Im1| ca.SqrDiff(Imout, Im0, Im1) # Imout = (Im0 - Im1)^2 ca.Ramp(Imout, Im0) # Imout(x<0) = 0; Imout(x>=0) = Imout(x) ca.Sgn(Imout, Im0) # Imout(x<0) = -1; Imout(x>0) = Imout(1) ca.Step(Imout, Im0) # Imout(x<0) = 0; Imout(x>0) = Imout(1) ca.Ceil(Imout, Im0) ca.Floor(Imout, Im0) ca.Round(Imout, Im0) ca.Copy(Imout, Im0) # Imout = Im0 ca.Neg(Imout, Im0) # Imout = -Im0 ca.Sqr(Imout, Im0) # Imout = Im0^2 ca.Cube(Imout, Im0) # Imout = Im0^3 ca.PowC(Imout, Im0, c0) # Imout = Im0^c0 ca.Sqrt(Imout, Im0) ca.Exp(Imout, Im0) # Imout = e^Im0 ca.Log(Imout, Im0) # natural log ca.Min(Imout, Im0, Im1) # element-wise minimum ca.MinC(Imout, Im0, c0) # element-wise minimum with a constant ca.Max(Imout, Im0, Im1) # element-wise maximum ca.MaxC(Imout, Im0, c0) # element-wise maximum with a constant print ca.Sum(Im2) # sum(Im2) print ca.Sum2(Im2) # sum2(Im2^2) print ca.Min(Im2) print ca.Max(Im2) print ca.MinMax(Im2)