27 RetainPtr<
const CPDF_Number> pExponent = pDict->GetNumberFor(
"N");
31 m_Exponent = pExponent->GetNumber();
34 if (pArray0 && m_nOutputs == 0)
35 m_nOutputs = fxcrt::CollectionSize<uint32_t>(*pArray0);
40 m_BeginValues = DataVector<
float>(Fx2DSizeOrDie(m_nOutputs, 2));
41 m_EndValues = DataVector<
float>(m_BeginValues.size());
42 for (uint32_t i = 0; i < m_nOutputs; i++) {
43 m_BeginValues[i] = pArray0 ? pArray0->GetFloatAt(i) : 0.0f;
44 m_EndValues[i] = pArray1 ? pArray1->GetFloatAt(i) : 1.0f;
48 nOutputs *= m_nInputs;
49 if (!nOutputs.IsValid())
52 m_nOrigOutputs = m_nOutputs;
53 m_nOutputs = nOutputs.ValueOrDie();
57bool CPDF_ExpIntFunc::
v_Call(pdfium::span<
const float> inputs,
58 pdfium::span<
float> results)
const {
59 for (uint32_t i = 0; i < m_nInputs; i++) {
60 for (uint32_t j = 0; j < m_nOrigOutputs; j++) {
61 results[i * m_nOrigOutputs + j] =
63 powf(inputs[i], m_Exponent) * (m_EndValues[j] - m_BeginValues[j]);