class_docstr: Relative Strength Index
  
  **Default Inputs**: :data:`zipline.pipeline.data.EquityPricing.close`
  
  **Default Window Length**: 15
code: def compute(self, today, assets, out, closes):
      diffs = diff(closes, axis=0)
      ups = nanmean(clip(diffs, 0, inf), axis=0)
      downs = abs(nanmean(clip(diffs, -inf, 0), axis=0))
      return evaluate(
          "100 - (100 / (1 + (ups / downs)))",
          local_dict={"ups": ups, "downs": downs},
          global_dict={},
          out=out,
      )
  
imports: from __future__ import division
  from numpy import abs, average, clip, diff, dstack, inf
  from numexpr import evaluate
  from zipline.pipeline.data import EquityPricing
  from zipline.pipeline.factors import CustomFactor
  from zipline.pipeline.mixins import SingleInputMixin
  from zipline.utils.input_validation import expect_bounded
  from zipline.utils.math_utils import nanargmax, nanargmin, nanmax, nanmean, nanstd, nanmin
  from zipline.utils.numpy_utils import rolling_window
  from .basic import exponential_weights
  from .basic import LinearWeightedMovingAverage, MaxDrawdown, SimpleMovingAverage, VWAP, WeightedAverageValue
label_desc: Use image node_id 1 for calling the RSI obj's underlying member method code with example usage: obj.compute(today, assets, out, closes) and returns: evaluate