a
    d)                  	   @   s  d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d%eeee edddZd&eeee edddZd'eeee edddZd(eeee edddZd)eeee eedddZd*eeee eeeeef dddZ eeeddd Z!d+eeee edd!d"Z"eeedd#d$Z#dS ),    )OptionalTuple)Tensor)retrieval_average_precision)retrieval_fall_out)retrieval_hit_rate)retrieval_normalized_dcg)retrieval_precision) retrieval_precision_recall_curve)retrieval_r_precision)retrieval_recall)retrieval_reciprocal_rank)_deprecated_root_import_funcN)predstargettop_kreturnc                 C   s   t dd t| ||dS )zWrapper for deprecated import.

    >>> from torch import tensor
    >>> preds = tensor([0.2, 0.3, 0.5])
    >>> target = tensor([True, False, True])
    >>> _retrieval_average_precision(preds, target)
    tensor(0.8333)

    r   	retrievalr   r   r   )r   r   r    r   v/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/torchmetrics/functional/retrieval/_deprecated.py_retrieval_average_precision   s    

r   c                 C   s   t dd t| ||dS )zWrapper for deprecated import.

    >>> from torch import tensor
    >>> preds = tensor([0.2, 0.3, 0.5])
    >>> target = tensor([True, False, True])
    >>> _retrieval_fall_out(preds, target, top_k=2)
    tensor(1.)

    r   r   r   )r   r   r   r   r   r   _retrieval_fall_out   s    

r   c                 C   s   t dd t| ||dS )zWrapper for deprecated import.

    >>> from torch import tensor
    >>> preds = tensor([0.2, 0.3, 0.5])
    >>> target = tensor([True, False, True])
    >>> _retrieval_hit_rate(preds, target, top_k=2)
    tensor(1.)

    r   r   r   )r   r   r   r   r   r   _retrieval_hit_rate-   s    

r   c                 C   s   t dd t| ||dS )zWrapper for deprecated import.

    >>> from torch import tensor
    >>> preds = tensor([.1, .2, .3, 4, 70])
    >>> target = tensor([10, 0, 0, 1, 5])
    >>> _retrieval_normalized_dcg(preds, target)
    tensor(0.6957)

    r   r   r   )r   r   r   r   r   r   _retrieval_normalized_dcg;   s    

r   F)r   r   r   
adaptive_kr   c                 C   s   t dd t| |||dS )zWrapper for deprecated import.

    >>> from torch import tensor
    >>> preds = tensor([0.2, 0.3, 0.5])
    >>> target = tensor([True, False, True])
    >>> _retrieval_precision(preds, target, top_k=2)
    tensor(0.5000)

    r	   r   r   r   r   r   )r   r	   r   r   r   r   _retrieval_precisionI   s    
r   )r   r   max_kr   r   c                 C   s   t dd t| |||dS )ax  Wrapper for deprecated import.

    >>> from torch import tensor
    >>> preds = tensor([0.2, 0.3, 0.5])
    >>> target = tensor([True, False, True])
    >>> precisions, recalls, top_k = _retrieval_precision_recall_curve(preds, target, max_k=2)
    >>> precisions
    tensor([1.0000, 0.5000])
    >>> recalls
    tensor([0.5000, 0.5000])
    >>> top_k
    tensor([1, 2])

    r
   r   r   r   r   r   )r   r
   r   r   r   r   !_retrieval_precision_recall_curveY   s    
r    )r   r   r   c                 C   s   t dd t| |dS )zWrapper for deprecated import.

    >>> from torch import tensor
    >>> preds = tensor([0.2, 0.3, 0.5])
    >>> target = tensor([True, False, True])
    >>> _retrieval_r_precision(preds, target)
    tensor(0.5000)

    r   r   r   r   )r   r   r!   r   r   r   _retrieval_r_precisionn   s    

r"   c                 C   s   t dd t| ||dS )zWrapper for deprecated import.

    >>> from torch import tensor
    >>> preds = tensor([0.2, 0.3, 0.5])
    >>> target = tensor([True, False, True])
    >>> _retrieval_recall(preds, target, top_k=2)
    tensor(0.5000)

    r   r   r   )r   r   r   r   r   r   _retrieval_recall|   s    

r#   c                 C   s   t dd t| |dS )zWrapper for deprecated import.

    >>> from torch import tensor
    >>> preds = tensor([0.2, 0.3, 0.5])
    >>> target = tensor([False, True, False])
    >>> _retrieval_reciprocal_rank(preds, target)
    tensor(0.5000)

    r   r   r!   )r   r   r!   r   r   r   _retrieval_reciprocal_rank   s    

r$   )N)N)N)N)NF)NF)N)$typingr   r   Ztorchr   Z3torchmetrics.functional.retrieval.average_precisionr   Z*torchmetrics.functional.retrieval.fall_outr   Z*torchmetrics.functional.retrieval.hit_rater   Z&torchmetrics.functional.retrieval.ndcgr   Z+torchmetrics.functional.retrieval.precisionr	   Z8torchmetrics.functional.retrieval.precision_recall_curver
   Z-torchmetrics.functional.retrieval.r_precisionr   Z(torchmetrics.functional.retrieval.recallr   Z1torchmetrics.functional.retrieval.reciprocal_rankr   Ztorchmetrics.utilities.printsr   intr   r   r   r   boolr   r    r"   r#   r$   r   r   r   r   <module>   s8     