def compute_dot(vector1, vector2): | |
""" Compute dot product of two lists | |
@brief Compute the dot product of two numeric lists by iterating over | |
the two lists and adding the elementwise product. | |
Ideally, numpy dot product functionality should be employed. This function | |
can be used in cases where numpy is not accessible. | |
Args: | |
@param vector1 list, List of numbers | |
@param vector2 list, List of numbers | |
Returns: | |
Numeric. Float or int (depending on type of input) | |
If either of the two inputs are invalid or empty then zero is returned. | |
If the lists are of unequal length then the longer list is truncated to | |
the length of the shorter list and then the dot product is returned. | |
""" | |
if not vector1 or not vector2: | |
return 0 | |
# zip is used to truncate longer list to shorter length | |
return sum(p*q for p,q in zip(vector1, vector2)) |