# LLamaBatch Namespace: LLama.Native A batch allows submitting multiple tokens to multiple sequences simultaneously ```csharp public class LLamaBatch ``` Inheritance [Object](https://docs.microsoft.com/en-us/dotnet/api/system.object) → [LLamaBatch](./llama.native.llamabatch.md) ## Properties ### **TokenCount** The number of tokens in this batch ```csharp public int TokenCount { get; private set; } ``` #### Property Value [Int32](https://docs.microsoft.com/en-us/dotnet/api/system.int32)
### **SequenceCapacity** Maximum number of sequences a token can be assigned to (automatically grows if exceeded) ```csharp public int SequenceCapacity { get; private set; } ``` #### Property Value [Int32](https://docs.microsoft.com/en-us/dotnet/api/system.int32)
## Constructors ### **LLamaBatch()** Create a new batch for submitting inputs to llama.cpp ```csharp public LLamaBatch() ``` ## Methods ### **ToNativeBatch(LLamaNativeBatch&)** ```csharp internal GroupDisposable ToNativeBatch(LLamaNativeBatch& batch) ``` #### Parameters `batch` [LLamaNativeBatch&](./llama.native.llamanativebatch&.md)
#### Returns [GroupDisposable](./llama.native.groupdisposable.md)
### **Add(LLamaToken, LLamaPos, ReadOnlySpan<LLamaSeqId>, Boolean)** Add a single token to the batch at the same position in several sequences ```csharp public int Add(LLamaToken token, LLamaPos pos, ReadOnlySpan sequences, bool logits) ``` #### Parameters `token` [LLamaToken](./llama.native.llamatoken.md)
The token to add `pos` [LLamaPos](./llama.native.llamapos.md)
The position to add it att `sequences` [ReadOnlySpan<LLamaSeqId>](https://docs.microsoft.com/en-us/dotnet/api/system.readonlyspan-1)
The set of sequences to add this token to `logits` [Boolean](https://docs.microsoft.com/en-us/dotnet/api/system.boolean)
#### Returns [Int32](https://docs.microsoft.com/en-us/dotnet/api/system.int32)
The index that the token was added at. Use this for GetLogitsIth **Remarks:** https://github.com/ggerganov/llama.cpp/blob/ad939626577cd25b462e8026cc543efb71528472/common/common.cpp#L829C2-L829C2 ### **Add(LLamaToken, LLamaPos, List<LLamaSeqId>, Boolean)** Add a single token to the batch at the same position in several sequences ```csharp public int Add(LLamaToken token, LLamaPos pos, List sequences, bool logits) ``` #### Parameters `token` [LLamaToken](./llama.native.llamatoken.md)
The token to add `pos` [LLamaPos](./llama.native.llamapos.md)
The position to add it att `sequences` [List<LLamaSeqId>](https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1)
The set of sequences to add this token to `logits` [Boolean](https://docs.microsoft.com/en-us/dotnet/api/system.boolean)
#### Returns [Int32](https://docs.microsoft.com/en-us/dotnet/api/system.int32)
The index that the token was added at. Use this for GetLogitsIth **Remarks:** https://github.com/ggerganov/llama.cpp/blob/ad939626577cd25b462e8026cc543efb71528472/common/common.cpp#L829C2-L829C2 ### **Add(LLamaToken, LLamaPos, LLamaSeqId, Boolean)** Add a single token to the batch at a certain position for a single sequences ```csharp public int Add(LLamaToken token, LLamaPos pos, LLamaSeqId sequence, bool logits) ``` #### Parameters `token` [LLamaToken](./llama.native.llamatoken.md)
The token to add `pos` [LLamaPos](./llama.native.llamapos.md)
The position to add it att `sequence` [LLamaSeqId](./llama.native.llamaseqid.md)
The sequence to add this token to `logits` [Boolean](https://docs.microsoft.com/en-us/dotnet/api/system.boolean)
#### Returns [Int32](https://docs.microsoft.com/en-us/dotnet/api/system.int32)
The index that the token was added at. Use this for GetLogitsIth **Remarks:** https://github.com/ggerganov/llama.cpp/blob/ad939626577cd25b462e8026cc543efb71528472/common/common.cpp#L829C2-L829C2 ### **AddRange(ReadOnlySpan<LLamaToken>, LLamaPos, LLamaSeqId, Boolean)** Add a range of tokens to a single sequence, start at the given position. ```csharp public int AddRange(ReadOnlySpan tokens, LLamaPos start, LLamaSeqId sequence, bool logitsLast) ``` #### Parameters `tokens` [ReadOnlySpan<LLamaToken>](https://docs.microsoft.com/en-us/dotnet/api/system.readonlyspan-1)
The tokens to add `start` [LLamaPos](./llama.native.llamapos.md)
The starting position to add tokens at `sequence` [LLamaSeqId](./llama.native.llamaseqid.md)
The sequence to add this token to `logitsLast` [Boolean](https://docs.microsoft.com/en-us/dotnet/api/system.boolean)
Whether the final token should generate logits #### Returns [Int32](https://docs.microsoft.com/en-us/dotnet/api/system.int32)
The index that the final token was added at. Use this for GetLogitsIth ### **Clear()** Set TokenCount to zero for this batch ```csharp public void Clear() ``` ### **GetLogitPositions(Span<ValueTuple<LLamaSeqId, Int32>>)** Get the positions where logits can be sampled from ```csharp internal Span> GetLogitPositions(Span> dest) ``` #### Parameters `dest` [Span<ValueTuple<LLamaSeqId, Int32>>](https://docs.microsoft.com/en-us/dotnet/api/system.span-1)
#### Returns [Span<ValueTuple<LLamaSeqId, Int32>>](https://docs.microsoft.com/en-us/dotnet/api/system.span-1)