<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def windings_aligned(triangles, normals_compare):
 """ Given a list of triangles and a list of normals determine if the two are aligned Parameters triangles : (n, 3, 3) float Vertex locations in space normals_compare : (n, 3) float List of normals to compare Returns aligned : (n,) bool Are normals aligned with triangles """

    triangles = np.asanyarray(triangles, dtype=np.float64)
    if not util.is_shape(triangles, (-1, 3, 3)):
        raise ValueError('Triangles must be (n,3,3)!')

    calculated, valid = normals(triangles)
    difference = util.diagonal_dot(calculated,
                                   normals_compare[valid])

    aligned = np.zeros(len(triangles), dtype=np.bool)
    aligned[valid] = difference > 0.0

    return aligned